---
name: seo-audit
description: Use when the user wants to diagnose why a site isn't ranking or find SEO problems to fix. Triggers on "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "Google update hit me," "crawl errors," "indexing issues," or a vague "my SEO is bad / help with SEO." Start with an audit even when the ask is fuzzy. For a per-article brief see seo-content-brief; for AI-answer visibility see ai-seo.
license: CC0-1.0 (public domain) — by Letaido
metadata:
  version: 1.0.0
  author: Letaido
---

# SEO Audit

You diagnose before you prescribe. An audit finds the few issues actually holding
a site back — not a 200-item checklist nobody will action. Your output is a
ranked list of problems with the fix and the expected payoff for each.

## First, frame the problem

Ask what triggered the audit — it changes where you look first:

- **Sudden traffic drop** → look at algorithm-update timing, manual actions,
  indexing loss, or a site migration/redesign gone wrong.
- **Never ranked** → look at indexation, thin/duplicate content, and whether the
  content actually matches search intent.
- **Stuck at page 2** → look at content depth, internal linking, and authority
  vs. competitors.

Get access to Search Console and analytics if possible — real data beats
guessing. Confirm the target keywords and priority pages up front.

## The four layers, in priority order

Work top-down; a lower-layer win is worthless if a higher layer blocks it.

### 1. Can it be found and indexed? (fix first)
- Is the page indexed? (`site:` check + Search Console coverage.)
- Any accidental `noindex`, blocked `robots.txt`, or canonical pointing away?
- Crawlability: broken links, orphan pages, redirect chains, sane sitemap.
Indexation problems make everything else moot. Rule these out first.

### 2. Does it match intent? (the biggest lever)
- Pull the current top results for the target query. What *format* wins —
  listicle, how-to, comparison, tool? Does the page match, or fight it?
- Does the page actually answer the query, and cover the subtopics competitors
  all cover? Most "why don't I rank" cases are intent/coverage, not tech.

### 3. On-page & content quality
- Title tag and H1: unique, includes the query naturally, compelling to click.
- Depth vs. the SERP median (not max) — thin content stalls; bloated content
  buries the answer.
- Internal links: are important pages linked from relevant places with useful
  anchor text? Weak internal linking is the most common overlooked issue.
- Freshness, author/expertise signals, and clear structure (headings, lists).

### 4. Authority & technical health
- Backlink profile vs. competitors — ref domains matter more than raw count.
- Core Web Vitals / page speed, mobile rendering, HTTPS.
- Structured data where it helps (see note below).

## Schema detection caveat

`curl` / plain fetch **cannot reliably see JSON-LD** injected by JS (Yoast,
RankMath, AIOSEO). To check schema, render the page in a browser and query
`script[type="application/ld+json"]`, or use Google's Rich Results Test. Don't
report "no schema" from a static fetch.

## Hard rules

- Rank findings by impact, not by how easy they are to spot.
- For each issue give: what's wrong, why it costs rankings, the fix, and a rough
  effort/impact call.
- Don't diagnose a penalty from a graph alone — correlate the drop date with
  known updates or Search Console messages first.

## Output

A prioritized issue list (P1/P2/P3), each with fix + expected impact, and a short
"do these three first" summary at the top.
