Technical SEO audit
Audit like a seasoned technical SEO: find what actually blocks rankings, and rank
fixes by impact rather than dumping a 100-item checklist. The mental model that
governs every call: search engines must be able to crawl a page, index it,
render it, and trust it's the canonical version — in that order. A brilliant
title tag is worthless on a page Google can't crawl or has de-duplicated away, so
diagnose from the foundation up.
Audit in dependency order
Work top-down; a problem at an earlier layer makes later layers moot.
Crawlability — can bots reach it?
robots.txt: is anything important disallowed? (A stray Disallow: / is a
site-killer.) Is the XML sitemap referenced?
- XML sitemap: present, submitted in Search Console, listing canonical,
indexable URLs only (no redirects, 404s, or noindex pages).
- Server responses: important URLs return
200; watch for 4xx/5xx, and for
redirect chains/loops that bleed crawl budget.
- Internal linking: are key pages reachable within a few clicks? Orphan pages
(no internal links) rarely get crawled or ranked.
Indexability — is it allowed and chosen to be indexed?
noindex tags / headers: present only where intended, absent on pages that
should rank. A noindex left on after launch is a classic invisible killer.
- Canonical tags: each page self-canonical or pointing to the right canonical;
no pages canonicalizing to the wrong URL or to a redirect.
- Duplicate/thin content and parameter URLs: consolidate with canonicals; make
sure
http/https and www/non-www resolve to one canonical host.
- Check Search Console coverage: what's actually indexed vs. excluded, and why.
Site architecture & URLs. Logical, shallow hierarchy; clean, readable,
stable URLs; a sensible internal-link structure that passes authority to
priority pages. HTTPS everywhere with no mixed content.
Rendering & JavaScript. If the site is JS-rendered, confirm content and
links appear in the rendered DOM (Google renders, but relying on client-only
rendering for critical content and links is risky). Prefer SSR/SSG for
content that must rank.
Core Web Vitals & mobile. Use field data (CrUX) where possible. The current
thresholds: LCP ≤ 2.5s, INP ≤ 200ms (INP replaced FID in 2024), CLS
≤ 0.1. Mobile-first indexing means the mobile experience is the experience:
check responsiveness, tap targets, and parity of content between mobile and
desktop.
Structured data. Valid schema.org markup (JSON-LD preferred) matching the
page's actual content and eligible rich-result types; validate it and confirm
it reflects what's really on the page (no marked-up content the user can't see).
On-page fundamentals. One descriptive <title> and meta description per
page; a single logical <h1> and sensible heading hierarchy; descriptive
alt text on meaningful images; internal links with meaningful anchor text.
Prioritize by impact, not by list length
The value of an audit is the ranking, not the enumeration. Sort findings into:
Critical (blocks crawling/indexing of important pages — fix now), High
(hurts rankings or CWV materially), and Nice-to-have (incremental). A single
"remove the accidental site-wide noindex" outweighs fifty alt-text tweaks — say
so plainly.
Common pitfalls to catch
Left-over staging noindex / Disallow: /; canonicals pointing to redirected or
noindex URLs; sitemaps full of non-canonical or dead URLs; blocking JS/CSS in
robots.txt so Google can't render the page; treating CWV lab scores as if they
were the field data that actually affects ranking; and marking up structured data
that doesn't match visible content (a manual-action risk).
Output
## Summary
<Overall state in 2–3 sentences: the biggest thing holding the site back.>
## Critical (fix now)
<Issues blocking crawl/indexation of important pages. Each: what, where, why it
matters, how to fix, how to verify.>
## High impact
<Ranking/CWV issues worth doing next, same structure.>
## Nice-to-have
<Incremental improvements.>
## What's working
<Briefly, what's already solid.>
Note what you could and couldn't verify. Without crawl access or Search Console
data, some checks are inferences — say so, and tell the user which tools (Search
Console, a crawler like Screaming Frog, PageSpeed Insights/CrUX) would confirm
them, rather than asserting more certainty than you have.
1---2name: technical-seo-audit3description: Run a technical SEO audit of a website or page the way an experienced SEO would — diagnosing crawlability, indexation, site architecture, Core Web Vitals, structured data, and on-page fundamentals, then prioritizing fixes by impact. Use whenever the user wants an SEO audit or review, asks why a page isn't ranking or getting indexed, mentions crawl errors, Core Web Vitals, canonicals, robots.txt, sitemaps, or structured data, or asks how to improve a site's technical SEO — even if they just say "check my site's SEO".4---56# Technical SEO audit78Audit like a seasoned technical SEO: find what actually blocks rankings, and rank9fixes by impact rather than dumping a 100-item checklist. The mental model that10governs every call: **search engines must be able to crawl a page, index it,11render it, and trust it's the canonical version — in that order.** A brilliant12title tag is worthless on a page Google can't crawl or has de-duplicated away, so13diagnose from the foundation up.1415## Audit in dependency order1617Work top-down; a problem at an earlier layer makes later layers moot.18191. **Crawlability — can bots reach it?**20 - `robots.txt`: is anything important disallowed? (A stray `Disallow: /` is a21 site-killer.) Is the XML sitemap referenced?22 - XML sitemap: present, submitted in Search Console, listing canonical,23 indexable URLs only (no redirects, 404s, or noindex pages).24 - Server responses: important URLs return `200`; watch for `4xx`/`5xx`, and for25 redirect chains/loops that bleed crawl budget.26 - Internal linking: are key pages reachable within a few clicks? Orphan pages27 (no internal links) rarely get crawled or ranked.28292. **Indexability — is it allowed and chosen to be indexed?**30 - `noindex` tags / headers: present only where intended, absent on pages that31 should rank. A `noindex` left on after launch is a classic invisible killer.32 - Canonical tags: each page self-canonical or pointing to the right canonical;33 no pages canonicalizing to the wrong URL or to a redirect.34 - Duplicate/thin content and parameter URLs: consolidate with canonicals; make35 sure `http`/`https` and `www`/non-`www` resolve to one canonical host.36 - Check Search Console coverage: what's actually indexed vs. excluded, and why.37383. **Site architecture & URLs.** Logical, shallow hierarchy; clean, readable,39 stable URLs; a sensible internal-link structure that passes authority to40 priority pages. HTTPS everywhere with no mixed content.41424. **Rendering & JavaScript.** If the site is JS-rendered, confirm content and43 links appear in the rendered DOM (Google renders, but relying on client-only44 rendering for critical content and links is risky). Prefer SSR/SSG for45 content that must rank.46475. **Core Web Vitals & mobile.** Use field data (CrUX) where possible. The current48 thresholds: **LCP ≤ 2.5s**, **INP ≤ 200ms** (INP replaced FID in 2024), **CLS49 ≤ 0.1**. Mobile-first indexing means the mobile experience is *the* experience:50 check responsiveness, tap targets, and parity of content between mobile and51 desktop.52536. **Structured data.** Valid schema.org markup (JSON-LD preferred) matching the54 page's actual content and eligible rich-result types; validate it and confirm55 it reflects what's really on the page (no marked-up content the user can't see).56577. **On-page fundamentals.** One descriptive `<title>` and meta description per58 page; a single logical `<h1>` and sensible heading hierarchy; descriptive59 `alt` text on meaningful images; internal links with meaningful anchor text.6061## Prioritize by impact, not by list length6263The value of an audit is the ranking, not the enumeration. Sort findings into:64**Critical** (blocks crawling/indexing of important pages — fix now), **High**65(hurts rankings or CWV materially), and **Nice-to-have** (incremental). A single66"remove the accidental site-wide `noindex`" outweighs fifty alt-text tweaks — say67so plainly.6869## Common pitfalls to catch7071Left-over staging `noindex` / `Disallow: /`; canonicals pointing to redirected or72`noindex` URLs; sitemaps full of non-canonical or dead URLs; blocking JS/CSS in73robots.txt so Google can't render the page; treating CWV *lab* scores as if they74were the field data that actually affects ranking; and marking up structured data75that doesn't match visible content (a manual-action risk).7677## Output7879```80## Summary81<Overall state in 2–3 sentences: the biggest thing holding the site back.>8283## Critical (fix now)84<Issues blocking crawl/indexation of important pages. Each: what, where, why it85matters, how to fix, how to verify.>8687## High impact88<Ranking/CWV issues worth doing next, same structure.>8990## Nice-to-have91<Incremental improvements.>9293## What's working94<Briefly, what's already solid.>95```9697Note what you could and couldn't verify. Without crawl access or Search Console98data, some checks are inferences — say so, and tell the user which tools (Search99Console, a crawler like Screaming Frog, PageSpeed Insights/CrUX) would confirm100them, rather than asserting more certainty than you have.