---
title: "Master SEO audit checklist"
slug: "audit-checklist"
category: "seo"
tags: ["seo", "audit", "checklist", "pre-launch", "quarterly-review", "qa"]
status: "stable"
last_updated: 2026-05-15
summary: "Ten-category SEO audit for pre-launch and quarterly review: quick 30-minute pass and full quarterly pass, each row stating the check, pass condition, and tool."
related: ["[[seo/technical]]", "[[seo/discoverability-files]]", "[[seo/helpful-content-update]]", "[[seo/core-web-vitals]]", "[[seo/e-e-a-t]]", "[[seo/structured-data]]", "[[howto/audit-site-for-core-web-vitals]]", "[[howto/master-google-search-console]]", "[[seo/glossary]]", "[[howto/launch-a-new-site]]"]
---

## Overview

An SEO audit is a structured pass over the site that surfaces every issue blocking ranking or click-through. Run the quick version before every launch and the full version every quarter. Treat each row as pass-fail; do not move to the next category until the current one is green. The deep-dive pages in this folder explain the why; this page is the operational checklist.

## Crawl and index

Verify that Google can find, fetch, and index every page that should rank.

| Check | Pass if | Tool |
|---|---|---|
| `robots.txt` at site root | Returns 200; no `Disallow: /` line | `curl -I` |
| `sitemap.xml` at site root | Returns 200; lists every canonical URL with `<lastmod>` | Browser, GSC Sitemaps |
| Sitemap submitted | GSC shows "Success" with discovered URLs > 0 | GSC Sitemaps |
| Indexed count vs sitemap | Within 10% of sitemap URL count | GSC Pages report |
| No orphan pages | Every URL has at least one internal inbound link | Screaming Frog |
| No `noindex` on indexable pages | Production `<head>` has no `<meta name="robots" content="noindex">` | View source |
| Canonical present and self-referential | Every page declares its own URL as canonical | View source |

See [[seo/technical]] for the canonical and `robots` rules in detail.

## Performance

Field metrics from real users decide ranking eligibility; lab metrics do not.

| Check | Pass if | Tool |
|---|---|---|
| LCP 75th percentile | Under 2.5 seconds | GSC Core Web Vitals, PageSpeed |
| INP 75th percentile | Under 200 milliseconds | GSC Core Web Vitals |
| CLS 75th percentile | Under 0.1 | GSC Core Web Vitals |
| TTFB 75th percentile | Under 800 milliseconds | PageSpeed Insights |
| Total JS shipped | Under 200 KB compressed for content pages | Chrome DevTools Coverage |
| LCP image preloaded | `<link rel="preload" as="image" fetchpriority="high">` set | View source |

See [[seo/core-web-vitals]] and [[howto/audit-site-for-core-web-vitals]] for the fix loop.

## On-page

The per-page elements that decide whether a page can rank for its target query.

| Check | Pass if | Tool |
|---|---|---|
| One `<h1>` per page | Exactly one; matches page intent | View source |
| Heading order | H2 to H3 to H4 with no skips | axe DevTools |
| Title tag length | 50-60 characters; primary keyword included | View source |
| Meta description | 130-160 characters; unique per page | View source |
| Image `alt` attributes | Every content image has descriptive `alt` text | axe DevTools |
| Internal anchor text | Descriptive, not "click here" or "read more" | Screaming Frog |

See [[seo/title-tags]] and [[seo/internal-linking]].

## Structured data

JSON-LD that powers rich results and clarifies the page entity to Google.

| Check | Pass if | Tool |
|---|---|---|
| Valid JSON-LD on every page type | Passes Rich Results Test | Rich Results Test |
| BreadcrumbList on every page below root | Present and labels match visible crumbs | Rich Results Test |
| Schema matches body | No FAQPage schema for pages without an FAQ section | Manual review |
| No structured data errors in GSC | Enhancements reports show Error: 0 | GSC Enhancements |

See [[seo/structured-data]] and [[seo/schema-markup-deep]].

## Discoverability files

The root-served text files that crawlers and AI agents read first.

| Check | Pass if | Tool |
|---|---|---|
| `/llms.txt` | Returns 200; lists primary pages with summaries | `curl` |
| `/ai.txt` | Returns 200; states crawl preferences | `curl` |
| `/humans.txt` | Optional; present if the site is editorial | `curl` |
| `/favicon.ico` | Returns 200; not a redirect | `curl -I` |

See [[seo/discoverability-files]] for the full list and format.

## Content quality

The signals that drive the Helpful Content classifier and human raters.

| Check | Pass if | Tool |
|---|---|---|
| Original information per editorial page | At least one number, screenshot, or command output | Manual review |
| Intent match | H1 answers the target query verbatim | SERP comparison |
| Site-wide topical focus | Each section has 5 or more pages on one topic | Folder count |
| `last_updated` reflects real edits | Date matches the latest meaningful body change | Git log |
| AI-assisted drafts edited | Every paragraph has been rewritten with specifics | Manual review |

See [[seo/helpful-content-update]] and [[seo/e-e-a-t]].

## Internal linking

The link graph that distributes equity and tells Google what each page is about.

| Check | Pass if | Tool |
|---|---|---|
| Every page reachable in 3 clicks from home | Crawler depth report shows max depth = 3 | Screaming Frog |
| No orphan pages | Inbound internal links > 0 for every URL | Screaming Frog |
| Anchor text descriptive and varied | No bulk identical anchors to one URL | Screaming Frog |
| MOC pages link to every child | Each folder index lists every page in the folder | Manual review |

See [[seo/internal-linking]] and [[seo/site-architecture]].

## Mobile

Google indexes the mobile version of every page.

| Check | Pass if | Tool |
|---|---|---|
| Mobile-friendly | No horizontal scroll, tap targets >= 48 px | GSC, PageSpeed |
| Viewport meta tag | `<meta name="viewport" content="width=device-width, initial-scale=1">` | View source |
| Mobile and desktop content parity | Same content, same structured data, same links | Mobile-Friendly Test |

See [[seo/technical]] for the mobile-first rule set.

## Security

HTTPS is a ranking signal and a trust signal.

| Check | Pass if | Tool |
|---|---|---|
| HTTPS on every URL | Every `http://` 301 redirects to `https://` | `curl -I` |
| Valid certificate | No browser warning; expiry > 30 days | `openssl s_client` |
| No mixed content | Page and all subresources served over HTTPS | DevTools Console |
| HSTS header | `Strict-Transport-Security: max-age=31536000` | `curl -I` |

## Analytics

Confirm the measurement plane is intact before judging any other signal.

| Check | Pass if | Tool |
|---|---|---|
| GSC Domain property verified | Property switcher shows the domain | GSC |
| Bing Webmaster Tools verified | Sitemap submitted, no verification warnings | BWT |
| Web analytics installed | Tag fires on every page; bounce rate plausible | Plausible, GA4, etc. |
| Server logs retained 90+ days | Bot traffic by user-agent extractable | Hosting dashboard |

## 30-minute quick audit

Use before every deploy. Skip rows that did not change in this release.

1. Crawl and index: confirm `sitemap.xml` and `robots.txt` return 200.
2. Performance: PageSpeed Insights on the home page and one content page; both Good.
3. On-page: spot-check one new page for one H1, valid title length, descriptive `alt` attributes.
4. Structured data: Rich Results Test on one new page; no errors.
5. Discoverability: `curl /llms.txt` and `curl /ai.txt` both return 200.
6. Analytics: GSC URL Inspection on one new page shows "URL is on Google" or "Submitted and indexed" on next crawl.

## Full quarterly audit

Use every 90 days. Every row, every category.

1. Run a full-site crawl with Screaming Frog or Sitebulb.
2. Export the depth, orphan, and broken-link reports.
3. Pull 90 days of GSC Performance, Coverage, Core Web Vitals, and Enhancements data.
4. Walk every category table top to bottom; mark pass or fail in a shared sheet.
5. Open one ticket per fail. Assign by category.
6. Schedule the next audit before closing the current one.

## Related

- [[seo/technical]]
- [[seo/discoverability-files]]
- [[seo/helpful-content-update]]
- [[seo/core-web-vitals]]
- [[seo/e-e-a-t]]
- [[seo/structured-data]]
- [[howto/audit-site-for-core-web-vitals]]
- [[howto/master-google-search-console]]
- [[seo/glossary]]
- [[howto/launch-a-new-site]]: the launch twin of this audit checklist
