AI SEO Change Kit

Copy-ready toolkit for multi-client SEO + AI SEO audits, staged implementation, and central Google Sheet change logging.

Quick Setup

Use one central template and one Apps Script webhook for all clients.

  1. Click Open Template and make a central copy.
  2. Add client columns at the start of the Change Log if they are not already present: client_id, client_name, site_url, environment.
  3. In the copied sheet: Extensions > Apps Script > Deploy as Web App.
  4. Set access to Anyone, then deploy one shared /exec webhook.
  5. Use client_id and environment on every row to filter work by client and staging/live state.
  6. Copy the webhook test prompt below and send it to AI with your copied PHP snippet.

Multi-Client Mode

Use the same Google Sheet and webhook for every client. Client separation happens through required payload fields, not separate webhook URLs.

  1. Every audit, change, and promotion row must include client_id, client_name, site_url, and environment.
  2. Use stable machine-readable IDs such as northshore-roof-repairs; do not rely on client names for matching.
  3. Use a unique batch_id per client run, such as northshore-roof-repairs-2026-05-p2.
  4. The Apps Script webhook should update an existing row when change_id matches, or fall back to matching from_url + to_url.
  5. The webhook response should be checked for action: insert or action: update after each log attempt.

Human Actions Checklist

  1. Set up one central Google Sheet and Apps Script Web App webhook (or redeploy if script code changed).
  2. Confirm the Sheet headings start with client_id, client_name, site_url, and environment.
  3. Paste the latest Web App /exec webhook URL into the WordPress PHP snippet for the target site, or keep it in a local environment variable for CLI logging.
  4. Fill in the Client / Project Context before copying prompts.
  5. Run Prompt 1 (Audit Only) and review findings by priority.
  6. Approve the exact change list before any implementation work starts.
  7. Run Prompt 2 (Implementation) on staging only.
  8. For each attempted change, verify the result and record evidence.
  9. Ensure a Google Sheet row is inserted or updated after every attempt.
  10. If validation fails, roll back immediately and record rollback details.
  11. Only mark rows live-ready after staging verification is complete.
  12. Promote only approved and verified rows to live, then update live_status.

Assigned operator (human) is responsible for approvals, validation, and promotion decisions.

Client / Project Context

Complete this for each client run. These values should appear in every Google Sheet row and copied prompt.

Install Skills

Single-line install commands. Copy and run in terminal.

WordPress PHP Webhook Logger

Run this combined prompt to add the snippet and test the central webhook in one pass:

Combined implementation + webhook test prompt

Prompt 1: Audit Only (No Changes)

Use this first to gather findings and recommendations.

Recommendation Intake (If You Already Have Findings)

Use this when you already have audit findings and want to write them to the Google Sheet before any implementation work starts.

  1. Paste the audit findings and the client config into the prompt below.
  2. Require one Google Sheet row per distinct finding and URL group.
  3. Use change_type = audit_finding and staging_status = planned.
  4. Do not edit the website during this intake step.
  5. After rows are logged, use Prompt 3 only for findings that have been approved for implementation.

Prompt 2: Log Audit Findings to Sheet

Paste audit findings into this prompt. When copied, it uses the Webhook URL (/exec) textbox above.

Prompt 3: Implement Approved Changes (Easy Version)

Use this after approval. This is the main practical implementation prompt.

When You Are Ready for Live

Use the Google Sheet as the source of truth for production rollout.

  1. Filter rows by the active client_id, then staging_status = verified and approved for promotion.
  2. Copy only those verified rows into a live-promotion AI prompt.
  3. Instruct AI to apply only the listed rows on live (no extra inferred changes).
  4. After each live change, validate and update live_status + live_verified_at through the same webhook.
  5. Check the webhook response for action: update when promoting existing rows.
  6. Add evidence/notes for each promoted row.

This keeps live rollout controlled and prevents re-auditing from scratch.

Ready.