To run a technical SEO audit with an AI agent, start from the pages that earn traffic instead of crawling everything. Pull the top 1000 pages by clicks from Search Console over 90 days ending three days ago; that is the priority order for every check. Fetch robots.txt and the sitemap, then check coverage both ways: pages with clicks missing from the sitemap, and sitemap URLs with zero impressions. Fetch the top 50 pages and record the final status code and redirect hops, the canonical and whether it points at itself, any noindex in meta robots or the X-Robots-Tag header, title and description lengths, H1 count, and hreflang. Grade findings as critical (a page with clicks returning 4xx or 5xx, carrying noindex, or canonicalised elsewhere), high (redirect chains, missing or duplicate titles, sitemap entries that redirect or 404) or medium (missing descriptions, multiple H1s, long titles). Report every finding with the clicks at stake next to it. That column is what turns an audit into a to-do list.
TL;DR
| Question | Answer |
|---|---|
| Where to start | Search Console top pages by clicks, not a full crawl |
| Scope | Top 50 by clicks, fetched by the agent. Say how many you did |
| Critical | 4xx or 5xx, noindex, or off-page canonical on a page with clicks |
| High | Redirect chains on pages with clicks, missing or duplicate titles, broken sitemap entries |
| Medium | Missing descriptions, multiple H1s, titles over 60 chars, descriptions over 155 |
| The column that matters | Clicks at stake, next to every finding |
| Playbook | technical-crawl-audit |
A technical audit that checks ten thousand URLs equally produces a list nobody acts on. An r/TechSEO thread comparing audit tools makes the complaint bluntly: some tools "sell" false positives so there is always something to fix. The cure is not a better crawler. It is a different starting point.
This guide is the procedure Sequel's technical-crawl-audit playbook hands to an agent. Sequel supplies the traffic data. The page checks use the agent's own browser.
What a traffic-weighted technical audit is
A traffic-weighted technical audit checks the pages that earn clicks first, and reports every issue with the clicks of the affected page beside it. It swaps "we found 1,400 issues" for "these six pages, worth 40% of organic clicks, have a problem".
It does not replace a full crawl. It replaces the part of a full crawl that anyone actually reads.
Step 1: build the priority list
google_search_console.query with dimensions: ["page"], a 90-day window ending three days ago, rowLimit: 1000. Sorted by clicks, this is the order in which every check below is run and reported.
The prompt:
Run a technical SEO audit on our top pages by organic clicks.
Step 2: fetch robots.txt and the sitemap
Read /robots.txt for Sitemap: lines and crawl rules. Then fetch the sitemap, or the sitemap index and its children, and collect every URL it lists. Search Console's google_search_console.list_sitemaps tells you which sitemaps Google has and when it last read them, which is a useful cross-check when the file on the server and the file Google saw disagree.
Step 3: check sitemap coverage both ways
| Set | Meaning | What to report |
|---|---|---|
| Pages with clicks, absent from the sitemap | Google found them by other means. The sitemap is incomplete. | The list, with clicks |
| Sitemap URLs with zero impressions in 90 days | Not indexed, or not worth listing | The count and a sample |
Both lists matter. The first is a quick win. The second is usually where the bloat lives. sitemap-health goes deeper on the second.
Step 4: check the top pages
Take the top 50 by clicks and say how many you did. For each, fetch and record:
- Final status code and the number of redirect hops to reach it
- The canonical URL and whether it points at itself
- Any
noindexin meta robots or theX-Robots-Tagheader - The title and its length
- The meta description and its length
- The number of H1 elements
hreflangandlangwhere present
An agent that can execute code runs the fetches in a loop in the workbench. One that cannot fetches sequentially and lowers the count. Fetch as a normal browser would. Some sites serve different heads to bots, and a canonical or robots tag injected by JavaScript will not show in a raw fetch. Say so if the HTML looks thin.
Step 5: grade the findings
| Severity | Finding |
|---|---|
| Critical | A page with clicks returns 4xx or 5xx |
| Critical | A page with clicks carries noindex |
| Critical | A page with clicks has a canonical pointing at a different URL |
| High | A redirect chain on a page with clicks |
| High | A missing or duplicated title among the top pages |
| High | Sitemap entries that redirect or 404 |
| Medium | Missing descriptions, multiple H1s |
| Medium | Titles over 60 characters, descriptions over 155 |
For each finding, attach the clicks of the affected page from step 1. A missing description on a page with 4,000 monthly clicks outranks a 404 on a page with none.
Step 6: report
Findings first, grouped by severity, one row each: URL, clicks at stake, the issue, the fix. Then the sitemap coverage summary. Then one sentence on what was not checked, so the reader knows the scope. This audit does not cover Core Web Vitals, structured data or rendering.
If chains were found, continue with redirect-chain-audit. If titles were the main problem, metadata-audit compares each title against the queries the page actually ranks for, which is the version of a title audit worth doing.
Gotchas
- A noindex or an off-page canonical may be deliberate. Report it as an observation with the clicks at stake and ask. Do not call it a bug until the user confirms it was unintended.
- Do not crawl the whole site. Fifty to a few hundred pages, chosen by traffic, is the audit. Thousands of fetches is a load test.
- Sitemaps should list only canonical, indexable, 200 URLs. Anything else in one is a finding by itself.
- Search Console lags 2 to 3 days. End the window three days back or the newest pages look dead.
- The audit is a snapshot. Google's view of a page is whatever it saw at the last crawl. page-not-indexed-debug shows how to read that timestamp.
Running it with an agent
The steps above are half data pulls and half page fetches, joined by the URL. That is a good shape for an agent: it already has a browser, and with a Search Console connection it has the traffic column a crawler never sees.
Sequel supplies the Search Console connection over MCP, read-only, and the playbook so the agent starts from traffic rather than from the homepage. Install both:
npm install -g @sequelsh/cli@latest
sequel install claude-codeConnect Search Console (the Claude Code guide covers it, as does the Codex guide), and ask for the audit. The agent reads technical-crawl-audit through sequel_read_skill, pulls the priority list, fetches the pages itself, and returns the graded table. If it cannot fetch pages, it runs the sitemap coverage checks and says which steps were skipped rather than inventing results. For the broader picture of how agents reach account data safely, see MCP security and governance.
An audit is a list of things to fix, in order. The order comes from the clicks. Get started free and let the agent put the clicks next to every finding.
