SEO Metadata Audit Loop
A Google SEO loop for AI agents that need to verify server-rendered metadata before publishing or requesting URL inspection.
Use loop copies the kickoff prompt. Copy Markdown and Download loop include the complete Markdown page with context, source attribution, anchors, and guardrails. Cursor / Claude Code buttons prepare the shorter kickoff prompt only.
Supported agents
Goal
Ensure SEO-critical pages have unique, server-rendered metadata and indexable content.
Feedback gate
curl -sL $URL | head -80Stop condition
Each target page has unique title, description, canonical, visible H1, and no accidental noindex.
Give the agent these inputs before it starts the loop. This keeps discovery bounded and prevents vague retries.
The loop assumes these commands or integrations are available. Missing tools should be reported as blockers, not ignored.
Two separate pieces: the kickoff prompt starts the loop, while the downloaded Markdown carries the complete reference page.
1. Copy or download
Use the kickoff for a fast agent run. Download the full Markdown when you need source, context, and attribution in one file.
2. Paste into the agent
Start a fresh agent session in the target repo and provide the requested project context if the loop asks for it.
3. Let it self-pace
The agent should act, check evidence, retry only when the gate fails, and stop at the stated exit condition.
The diagram shows the order. This checklist keeps only the action, command, and failure handling needed during a real pass.
1. Fetch server HTML
Inspect the response HTML, not only hydrated UI.
curl -sL $URL | head -802. Check metadata uniqueness
Verify title and description match the page intent and are not duplicated templates.
3. Check canonical/indexability
Verify canonical URL and absence of accidental noindex.
4. Patch and re-check
Fix route head metadata and rerun the checks.
This is the text copied by Use loop. It is intentionally shorter than the Markdown export.
Audit SEO metadata from server-rendered HTML for the target pages. Verify title, description, canonical, H1, Open Graph, and indexability, then fix and re-check.
Goal: Ensure SEO-critical pages have unique, server-rendered metadata and indexable content.
Check command: curl -sL $URL | head -80
Exit condition: Each target page has unique title, description, canonical, visible H1, and no accidental noindex.
Max iterations: 5
Guardrails:
- Do not weaken, skip, delete, or rewrite the validation command to force success.
- Do not claim completion until the stated exit condition is actually satisfied.
- If blocked, report the blocker, evidence, and next safest action instead of gaming the metric.
- Do not rely only on client-rendered metadata for SEO-critical pages. Verify server HTML.Quality
92/100
Safety
94/100
Expected output
A page-by-page metadata audit with pass/fail and fix list.
Related loops
Browse allProgrammatic SEO Page QA Loop
Review generated SEO pages for thin content, duplicate metadata, broken internal links, and missing structured data.
Kickoff preview
Audit a sample of generated SEO pages for uniqueness, helpfulness, metadata, internal links, and schema. Fix template/data issues before publishing at scale. Goal: Ensure template-generated pages provide distinct value and are safe to index. Check command: curl -sL $URL Exit condition: Sampled generated pages have unique metadata, useful body content, and valid internal links. Max iterations: 5 Guardrails: - Do not weaken, skip, delete, or rewrite the validation command to force success. - Do not claim completion until the stated exit condition is actually satisfied. - If blocked, report the blocker, evidence, and next safest action instead of gaming the metric. - Do not create large numbers of thin pages solely to manipulate search ranking.
Sitemap Freshness Check
Verify that important public pages are present in sitemap.xml with canonical URLs and reasonable lastmod values.
Kickoff preview
Fetch sitemap.xml, compare it against expected public URLs, check exclusions, patch the generator, and re-fetch until coverage is correct. Goal: Ensure sitemap.xml includes canonical public pages and excludes private/admin/API routes. Check command: curl -sL $SITE_URL/sitemap.xml Exit condition: Sitemap contains important public URLs and excludes private/API/admin pages. Max iterations: 3 Guardrails: - Do not weaken, skip, delete, or rewrite the validation command to force success. - Do not claim completion until the stated exit condition is actually satisfied. - If blocked, report the blocker, evidence, and next safest action instead of gaming the metric. - Do not include private, admin, API, or duplicate query URLs in sitemap.
FAQ Schema Verification Loop
Ensure FAQ content is visible on the page and structured data matches the rendered questions and answers.
Kickoff preview
Verify visible FAQ content and JSON-LD structured data match exactly. Fix mismatches and avoid marking up hidden content. Goal: Keep FAQ structured data accurate and visible. Check command: curl -sL $URL | rg "application/ld\+json|FAQPage" Exit condition: FAQ JSON-LD matches visible questions and answers on the page. Max iterations: 3 Guardrails: - Do not weaken, skip, delete, or rewrite the validation command to force success. - Do not claim completion until the stated exit condition is actually satisfied. - If blocked, report the blocker, evidence, and next safest action instead of gaming the metric. - Do not mark up hidden, misleading, or unrelated FAQ content.
Ship PR Until Green
Implement a scoped change, open or update a pull request, inspect CI, and continue until all required PR checks pass.
Kickoff preview
Take this branch to a green pull request. Implement the requested change, run local verification, open or update the PR, run `gh pr checks`, inspect failures, fix root causes, and repeat until every required check passes or you hit the iteration cap. Goal: Open or update a pull request and stop only when all required PR checks are green. Check command: gh pr checks Exit condition: All required pull request checks are successful and the PR is ready for review or merge. Max iterations: 10 Guardrails: - Do not weaken, skip, delete, or rewrite the validation command to force success. - Do not claim completion until the stated exit condition is actually satisfied. - If blocked, report the blocker, evidence, and next safest action instead of gaming the metric. - Do not disable required checks, edit loops to skip jobs, or remove tests to make CI green. - Do not merge the PR unless the user explicitly asked for merge authority.