Skip to content
Julia Raciniewska

Website Optimisation

Live

The Weekly Website Audit: A Rules Engine Instead of 'The Agent Decided'

Every Monday at 07:00, a scheduled audit pulls Search Console signals, checks them against declarative rules, and emails a prioritised action list — with every finding logged and deduplicated in BigQuery.

Last updated · Tools: Claude (Cowork) skills, Google Search Console MCP, BigQuery, Gmail MCP, Scheduled tasks

The problem

Website health degrades quietly: click-through rates drift, posts decay, two pages start competing for one keyword, indexing breaks, a tracking script silently stops firing. Noticing any of this requires regular, systematic checking — exactly the work that never wins against urgent tasks in a two-person company. Nobody was going to open Search Console every Monday out of discipline alone.

The previous manual process

Occasional, mood-driven looks at Search Console. No record of what was checked, no memory of what was already flagged, no follow-through system — the same issue could sit unnoticed for months, or get "found" three separate times.

How the report gets built

A scheduled task runs every Monday at 07:00 and works through four stages before anything reaches my inbox:

Diagram of the weekly website audit: Search Console MCP pull and rule checks feed a deduplicated BigQuery findings log, which goes through a human gate before any fix is routed anywhere

1. Signal pull. The task calls the Google Search Console MCP for a defined signal set — quick wins (positions 4–25 with impressions but a poor click-through rate), keyword cannibalisation, content decay, indexing coverage, country/device breakdown, and position tracking for our tracked keyword set.

2. Rule checks. The seo-site-auditor skill evaluates that signal set against a fixed list of declarative checks — not a model judgement call. The design principle, straight from our strategy playbook: rules must be declarative and auditable — never "the agent decided." Every finding has to cite a specific URL plus an evidence snippet: an impressions number, a position, a percentage change. No vague "this could be improved" entries.

3. Deduplicated logging. Every finding lands in a BigQuery table keyed so the same issue is never re-reported as new. If last week's "missing metadata on post X" is still open, it doesn't reappear as a fresh alert — it just stays open until it's resolved. This is what makes the system a memory, not just a scanner.

4. The email. Findings are grouped by severity — critical, high, medium, low — and sent to my inbox through the Gmail MCP as a single, prioritised report, plainly formatted, no dashboard to log into.

Human review required

The audit proposes; it never touches anything. I read the Monday email over coffee and decide what actually gets acted on — nothing on the live site changes until I say so. Anything I greenlight is routed to the right skill from there: product-page issues to product-seo-optimizer, content issues to seo-blog-writer — the same skills behind the content pipeline, each producing a draft for its own separate review, never a live change.

Outcome

Below is an actual report from the pipeline:

Weekly website audit email: a summary count of critical/high/medium/low findings, a keyword position trend table, findings grouped by severity with evidence and fix, a quick-wins box, and a Europe traffic deep-dive by market

A few things about that specific report worth calling out:

  • The critical-severity catch. One run flagged that expected checkout and purchase events were missing from the analytics verification window — a broken tracking issue, not a ranking one. Nothing about SEO copy would have surfaced that; it took a system that checks its own measurement layer, not just keyword positions.
  • Evidence, not opinion. Every issue lists the exact number behind it — "104 impressions, position 17, 0 clicks, +104% impressions month on month" — so I can triage in seconds instead of re-deriving whether something matters.
  • The Europe deep-dive. Since EU markets are a growth priority the organic side hadn't caught up to, the report includes a standing section breaking down clicks, impressions and CTR by market, plus a flag on any anomaly — like a brand-like query with high impressions and almost no clicks in one market, worth a manual SERP check.

Since this became a standing Monday habit rather than an occasional look, small SEO issues get fixed in the week they appear instead of compounding for months — and it's contributed to the steadier lift in organic impressions I cover in the content pipeline article: a healthier site is what let the new content actually rank.

What failed or remained difficult

Two honest ones.

Version 1 measured the wrong things. The first audit mixed brand-compliance checks into the weekly email, drowning traffic signals in style notes. The v2 rewrite explicitly excludes brand/medical checks (handled separately) and refocuses on what moves traffic: keyword gaps, CTR underperformance with exact replacement copy, decay, cannibalisation.

The system audited rankings while the analytics under it were broken. For months, our GA4 e-commerce tracking silently recorded almost no funnel events — the audit diligently tracked positions while the conversion data beneath it was missing. Found and fixed in July 2026; a verification run now confirms funnel events land. The uncomfortable lesson: an audit system is only as good as the list of things it's told to doubt. "Is the measurement itself working?" is now on that list.

We also made BigQuery logging mandatory after runs where it was silently skipped — the task now aborts loudly rather than proceeding without its memory.

Reusable lesson

Auditing is a memory problem more than a detection problem. Anyone can spot an issue once; the value is a system that knows what it already flagged, what got fixed, and what's still open.

Resources

The audit skill and its scheduled task are published — sanitised of project IDs and credentials — in the SEAR Plugs optimisation repo.

  • seo-site-auditor — say "audit the site" or "check my posts for SEO issues"; runs the rule checks and writes deduplicated findings to BigQuery so nothing is re-flagged as new.
  • weekly-seo-audit — scheduled Mondays 07:00; pulls the Search Console signal set, runs the rule checks, and emails the prioritised, EU-aware action list.
  • Greenlit fixes route to product-seo-optimizer and seo-blog-writer — the same skills the blog pipeline uses.

← All workflows