seo-audit
Audit and optimize public-facing web pages for search engines and AI search. Covers technical SEO audits (crawlability, Core Web Vitals, structured data), local SEO (LocalBusiness schema, geo-metadata
Files2
View on GitHubSKILL.mdskills/seo-audit/SKILL.md
GitHubSEO Audit & Optimization
Leading words: technical SEO audit, crawlability, Core Web Vitals, structured data, LocalBusiness, schema drift, IndexNow, robots.txt governance.
A phase-separated audit workflow for any public-facing page (local-business
public profiles, landing pages, marketing pages). Depth lives in
references/ and in the companion everything-seo skill.
Phase 1 — Crawl
- [ ] GET /robots.txt is text/plain 200. Allow retrieval bots (OAI-SearchBot,
ChatGPT-User, AppleBot, PerplexityBot) when search=yes; block training
scrapers if policy says so (GPTBot, ClaudeBot, Bytespider); keep
Googlebot fully allowed.
- [ ] Content-Signal on robots.txt matches those User-agent lines, or
n/a: policy not declared yet (name the skip reason).
- [ ] GET /sitemap.xml is XML 200 listing canonical public URLs (not only
"submitted to GSC").
- [ ] Sitemap submitted to Google Search Console + Bing Webmaster Tools.
- [ ] IndexNow implementation present (Bing + Yandex push).
🛑 Checkpoint: Confirm the crawl surface is mapped. Do not proceed to
Audit until robots.txt (served + policy) + sitemap served + IndexNow
status are each named. Well-known agent cards → agent-ready.
Phase 2 — Audit
- [ ] Page titles: format "[Business Name] in [City] | [Value Prop]" for
local-business public profiles.
- [ ] Meta descriptions: 120-160 chars, value prop + CTA verb, city if natural.
- [ ] Structured data: LocalBusiness JSON-LD validates in Google Rich Results
Test + Bing Webmaster Tools.
- [ ] Core Web Vitals: INP < 200ms, LCP < 2.5s, CLS < 0.1.
- [ ] Schema drift check: does the JSON-LD match the rendered page content?
(Cypress/Puppeteer test that compares rendered text to JSON-LD fields.)
- [ ] Heading hierarchy: exactly one H1, logical H2/H3 nesting, no skipped
levels.
Pull references/local_seo_checklist.md for the full LocalBusiness JSON-LD field list and common mistakes.
🛑 Checkpoint: List every audit failure with the page URL + the specific failure. Do not proceed to Fix until the failure list is enumerated.
Phase 3 — Fix
- [ ] Fix each Phase 2 failure in order: titles → meta → schema → vitals → drift.
- [ ] Bump CONTENT_VERSION (or whatever signal the site uses) so AI indexers
re-fetch.
- [ ] Update llms.txt if new pages were added or page roles changed.
- [ ] Re-run schema validation on every changed page.
Phase 4 — Verify
- [ ] Re-run Google Rich Results Test on every changed page — green.
- [ ] Verify robots.txt changes with Google's robots.txt tester.
- [ ] Run a single-page Core Web Vitals check (Lighthouse or field data).
- [ ] Submit changed URLs via IndexNow for Bing + Yandex.
- [ ] Re-check schema drift on the changed pages.
Any miss → back to Phase 3.
What NOT to do
- No black-hat SEO. No keyword stuffing, no hidden text, no cloaking, no link-buying, no private blog networks. Algorithmic penalties are recoverable but expensive.
- Do not ignore Bing. Bing + Yandex still drive meaningful traffic in some niches and regions. IndexNow submission is cheap.
- Do not use client-side rendering for content that needs to rank. Use SSR/ISR so the HTML the crawler receives contains the content. CSR-only pages may not be indexed reliably.
- Do not skip the schema drift check. Valid JSON-LD that contradicts the rendered page is worse than no JSON-LD — it signals inconsistency to both classical search and AI extractors.
References
| File | Use it for |
|---|---|
| references/local_seo_checklist.md | LocalBusiness JSON-LD field list, common mistakes, Bing considerations, robots.txt patterns |
../everything-seo/references/semantic_intent.md |
AEO/GEO patterns for AI search |
../everything-seo/references/content_automation.md |
Content quality + AI writing detection |
../everything-seo/references/technical_seo.md |
Deep technical SEO (bot governance, IndexNow, INP) |
../agent-ready/SKILL.md |
Well-known agent discovery (not a page-SEO audit) |