Skip to main content
AC
SEO & AEO5.4 KBMIT licensed

seo-audit

Rewritten from patterns in an open SaaS marketing skills pack (MIT)

Diagnose and prioritize SEO issues across crawlability, indexation, technical health, on-page, and content quality. Use when the user says "SEO audit", "why am I not ranking", "traffic dropped", "core web vitals", "crawl errors", or anything vague like "my SEO is bad". Not for pages at scale: use programmatic-seo. Not for structured data: use schema. Not for AI answer engines: use ai-seo. Not for page hierarchy planning: use site-architecture.

  • seo
  • audit

SKILL.md

SEO Audit

An audit is only useful if it produces a ranked fix list with evidence. Find what blocks indexing first, what slows the site second, what weakens pages third. Everything else is commentary.

Intake

If a product marketing context file exists (.agents/product-marketing.md or .claude/product-marketing.md), read it before asking anything. Then confirm: site type and business goal, known issues or recent migrations, scope (full site or specific pages), and whether Search Console or analytics access exists. Missing answers narrow the audit; say so in the report.

Priority Order

Audit in this sequence. A fast site that Google cannot index still gets zero traffic.

  1. Crawlability and indexation. robots.txt blocks, sitemap health, noindex on important pages, canonical direction, redirect chains, soft 404s, orphan pages, site: count vs expected.
  2. Technical foundations. Core Web Vitals (LCP < 2.5s, INP < 200ms, CLS < 0.1), TTFB, HTTPS and mixed content, mobile rendering, URL hygiene.
  3. On-page optimization. Unique titles (50-60 chars, keyword early), unique meta descriptions, one H1 per page with logical heading hierarchy, image alt text, internal links with descriptive anchors, no keyword cannibalization.
  4. Content quality. Search intent match, depth vs top competitors, E-E-A-T signals (author, sourcing, transparency), thin and stale pages.
  5. Authority. Only after the above; links cannot rescue an unindexable site.

Read references/audit-checklists.md for the full per-area checklists and common issues by site type (SaaS, e-commerce, content, multilingual, local).

The Schema Detection Trap

Plain curl and HTML-to-text fetchers cannot reliably detect structured data. Many CMS plugins (Yoast, Rank Math, AIOSEO) inject JSON-LD client-side, and text-mode fetchers strip <script> tags entirely. Reporting "no schema found" from static HTML alone is a false finding.

Verify schema with one of: a rendering browser (document.querySelectorAll('script[type="application/ld+json"]')), Google's Rich Results Test, or a Screaming Frog crawl with JS rendering. For fixing or writing markup, hand off to the schema skill.

Report Format

Deliver in this order:

  1. Executive summary. Health verdict, top 3-5 issues, quick wins.
  2. Findings by area. For each: Issue, Impact (High/Medium/Low), Evidence (how you found it), Fix (specific action), Priority.
  3. Action plan. Critical fixes blocking indexing or ranking, then high-impact items, then quick wins, then long-term work.

Every finding needs evidence. "Titles could be better" is not a finding. "14 of 40 blog posts share the title '<BRAND> Blog'" is.

Verification

Before delivering, spot-check your own findings:

  • Run curl -sI https://<DOMAIN>/ and one important inner page. Expect HTTP 200, HTTPS, and a single redirect hop at most from the www or http variant. A chain of two-plus redirects confirms a redirect finding; a 200 contradicts a "page is down" claim.
  • Fetch https://<DOMAIN>/robots.txt. Expect important paths not disallowed and a sitemap line present. If your report says robots.txt blocks a section, quote the exact line.
  • For any "not indexed" claim, check site:domain.com/path or the Search Console coverage report. If it is indexed, cut the finding.

Good vs Bad

Bad: "Your site needs more backlinks and better content" delivered to a site whose staging robots.txt shipped to production with Disallow: /. The audit ranked cosmetics over a total indexing block.

Good: The audit opens with the robots.txt block as the single critical finding, evidence quoted, fix specified (deploy corrected file, request recrawl), and defers link advice until indexing recovers.

Footguns

  • False "no schema" findings. Text fetchers strip script tags. Fix: verify with a rendering tool before reporting, per the trap section above.
  • Lab-only performance data. A single PageSpeed run on one page is not the field experience. Fix: prefer CrUX field data in PageSpeed Insights and the Search Console CWV report; test key templates, not just the homepage.
  • Auditing the redirect target, not the source. Testing only the final URL hides chains and loops. Fix: test the www, http, and trailing-slash variants users and links actually hit.
  • Recommending URL changes without a redirect plan. Restructuring URLs without 301s burns existing equity. Fix: every renamed URL ships with a mapped 301.

Completion Checklist

  • [ ] Crawlability and indexation checked before anything else
  • [ ] Every finding has evidence, impact, and a specific fix
  • [ ] Schema claims verified with a rendering tool, not raw HTML
  • [ ] Action plan ordered: blockers, high-impact, quick wins, long-term
  • [ ] Sibling handoffs named where relevant (schema, ai-seo, programmatic-seo, site-architecture)

Any box unchecked: not done. Fix or say so.

Reference files

More in SEO & AEO

All skills