SEO audit checklist: 218 checks across four layers

An SEO audit checklist is the full list of checks that explain why a site ranks below its potential, covering crawling and indexing, topical coverage, competitor results pages and AI visibility. This one holds 218 checks in 38 categories, each with the method, the tool and the pass criteria, in the order we run them on client sites.

  • 218 checks
  • 4 layers
  • No email required
Khairuzzaman Sharia, founder of Evariko

Khairuzzaman ShariaFounder, Evariko · Last reviewed

The full SEO audit checklist

All 218 checks are listed below, grouped into 38 categories across the four layers. Work through the layers in order, because coverage means nothing on a site that cannot be crawled.

  • Critical

    Blocks indexing or ranking across the site. Fix before anything else.

  • High

    Holds back rankings on important pages. Fix in the first month.

  • Medium

    Limits performance. Fix once Critical and High are cleared.

  • Low

    Housekeeping. Fix when convenient.

1

Crawling and indexing

Can search engines reach, read and index your pages?

115 checks

Every later layer depends on this one. A page that is blocked, duplicated or too slow to render is invisible regardless of how well it answers a question.

Robots and directives

10
Robots and directives checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-001 robots.txt returns 200 and is reachable at the domain root Open /robots.txt in a browser and check the HTTP status Browser, Screaming Frog File loads with status 200; not 404, 5xx or a redirect loop Critical
CI-002 robots.txt does not block pages that should rank Test key URLs against robots.txt rules Search Console robots.txt report, Screaming Frog No Disallow rule matches an indexable, ranking page Critical
CI-003 CSS, JavaScript and image files are not blocked Check Disallow rules against /wp-content/, /assets/ and similar paths Search Console URL Inspection Rendered page in URL Inspection matches the live page High
CI-004 robots.txt declares the XML sitemap location Look for a Sitemap: line in robots.txt Browser Absolute sitemap URL listed Low
CI-005 No accidental site-wide noindex Search source of the homepage and key templates for noindex View Source, Screaming Frog No noindex on pages intended to rank Critical
CI-006 CMS 'discourage search engines' setting is off Check WordPress Settings > Reading or the CMS equivalent CMS admin Setting unticked on production Critical
CI-007 No conflicting robots directives on the same URL Compare meta robots, X-Robots-Tag header and robots.txt Screaming Frog, curl -I One consistent directive per URL High
CI-008 X-Robots-Tag headers set only where intended Inspect response headers on HTML, PDF and image URLs curl -I, Screaming Frog No noindex header on indexable resources High
CI-009 Staging and development sites are blocked from indexing Search site: for staging subdomains Google search, Search Console No staging URLs in Google's index High
CI-010 AI crawler access is a deliberate decision Check robots.txt rules for GPTBot, Google-Extended, PerplexityBot, ClaudeBot Browser Allow or block chosen on purpose and documented Medium

XML sitemaps

7
XML sitemaps checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-011 XML sitemap exists and returns 200 Open the sitemap URL Browser Valid XML, status 200 High
CI-012 Sitemap is submitted in Search Console Check the Sitemaps report Search Console Status 'Success' with a recent read date High
CI-013 Sitemap contains only indexable, canonical, 200 URLs Crawl the sitemap list mode Screaming Frog list mode No redirects, 404s, noindex or non-canonical URLs High
CI-014 Every indexable page appears in a sitemap Compare crawl of indexable URLs against sitemap URLs Screaming Frog (Sitemaps tab) No indexable orphans missing from sitemaps Medium
CI-015 Sitemap stays under 50,000 URLs and 50 MB per file Count entries and file size Browser, Screaming Frog Split into a sitemap index where limits are reached Low
CI-016 lastmod dates reflect real content changes Compare lastmod against actual edit dates Browser lastmod changes only when content changes Low
CI-017 Image and video sitemaps present where media drives traffic Check for image or video sitemap entries Browser Present on media-heavy sites Low

Indexation

9
Indexation checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-018 Indexed page count matches expectations Compare Search Console indexed count with the intended page count Search Console Pages report Gap under 10% and explained High
CI-019 'Crawled, currently not indexed' pages reviewed Export the report and sample URLs Search Console Pages report Cause identified for each pattern High
CI-020 'Discovered, currently not indexed' pages reviewed Export and sample URLs Search Console Pages report Cause identified; internal links or quality addressed High
CI-021 Key pages indexed individually Inspect the ten most important URLs Search Console URL Inspection All report 'URL is on Google' Critical
CI-022 No low-value pages indexed (tags, search results, filters) site: searches for parameter and archive patterns Google search, Search Console Low-value templates noindexed or excluded Medium
CI-023 'Duplicate, Google chose different canonical' reviewed Export and compare canonicals Search Console Pages report Google's choice matches the declared canonical High
CI-024 Soft 404s identified Export soft 404 list Search Console Pages report No thin or empty pages returning 200 Medium
CI-025 Manual actions checked Open the Manual actions report Search Console No manual actions Critical
CI-026 Security issues checked Open the Security issues report Search Console No security issues reported Critical

Status codes and redirects

11
Status codes and redirects checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-027 No internal links point to 4xx pages Crawl and filter by 4xx response Screaming Frog Zero internal links to 4xx High
CI-028 No 5xx server errors during crawl Crawl and filter by 5xx Screaming Frog, server logs Zero 5xx responses Critical
CI-029 Redirects use 301 for permanent moves Check redirect types Screaming Frog No 302 or 307 used for permanent changes Medium
CI-030 No redirect chains longer than one hop Run the redirect chains report Screaming Frog Every redirect resolves in one hop Medium
CI-031 No redirect loops Run the redirect chains report Screaming Frog Zero loops Critical
CI-032 Internal links point to final URLs, not redirects Filter inlinks to 3xx URLs Screaming Frog Internal links updated to destination URLs Medium
CI-033 Deleted pages with backlinks redirect to a relevant page Cross-check 404s against backlink data Ahrefs or Semrush, Screaming Frog Linked 404s redirect to the closest equivalent High
CI-034 Custom 404 page returns a true 404 status Request a non-existent URL curl -I Status 404 with a helpful page Medium
CI-035 HTTP redirects to HTTPS in one hop Request http:// version curl -I Single 301 to https:// High
CI-036 www and non-www resolve to one version Request both hostnames curl -I One hostname; the other 301s to it High
CI-037 Trailing slash handled consistently Request URLs with and without trailing slash curl -I One version 200, the other 301s Medium

Canonicalisation

6
Canonicalisation checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-038 Every indexable page has a self-referencing canonical Crawl and check canonical column Screaming Frog Canonical present and matches the URL High
CI-039 Canonicals use absolute URLs Inspect canonical values Screaming Frog Full https:// URLs Low
CI-040 No canonical points to a redirect, 404 or noindex URL Filter canonical targets by status Screaming Frog All canonical targets return 200 and are indexable High
CI-041 Only one canonical tag per page Check for multiple canonical tags Screaming Frog Exactly one Medium
CI-042 Parameter URLs canonicalise to the clean URL Crawl with parameters Screaming Frog Tracking and sort parameters canonicalise to base URL Medium
CI-043 Canonical is in the raw HTML, not only injected by JavaScript Compare raw and rendered HTML Screaming Frog (JS rendering), View Source Canonical present in raw HTML Medium

Duplicate content

6
Duplicate content checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-044 No exact duplicate pages Run duplicate content analysis Screaming Frog (Content > Duplicates) Zero exact duplicates High
CI-045 Near-duplicate pages reviewed Check near-duplicates above 90% similarity Screaming Frog Merged, differentiated or canonicalised Medium
CI-046 No duplicate title tags across indexable pages Filter duplicate titles Screaming Frog Every title unique Medium
CI-047 No duplicate H1s across indexable pages Filter duplicate H1 Screaming Frog Every H1 unique Medium
CI-048 Printer, AMP or session-ID versions do not create duplicates Search for alternate URL patterns Screaming Frog, site: search Alternates canonicalised or removed Low
CI-049 Boilerplate content does not outweigh main content Compare template text to unique text on thin templates Manual review Unique main content dominates each page Medium

Site architecture

6
Site architecture checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-050 Important pages within three clicks of the homepage Check crawl depth Screaming Frog (Crawl depth) Core pages at depth 3 or less High
CI-051 No orphan pages Compare crawl with sitemap and analytics URLs Screaming Frog with GA4 and GSC connected Every indexable page has at least one internal link High
CI-052 Navigation reflects the site's topical hierarchy Map main navigation against core sections Manual review Core section reachable from main navigation Medium
CI-053 Breadcrumbs present and consistent Check templates for breadcrumbs Manual review, Screaming Frog custom extraction Breadcrumbs on all inner pages, matching URL hierarchy Low
CI-054 Internal links use HTML anchor tags crawlers can follow Check for links built with onclick or buttons Screaming Frog, View Source Navigational links are <a href> elements High
CI-055 Footer and sidebar links kept minimal Count sitewide links Screaming Frog (Inlinks) No bloated sitewide link blocks Low

URL structure

5
URL structure checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-056 URLs are lowercase, hyphen-separated and readable Review URL list Screaming Frog No uppercase, underscores or encoded characters Low
CI-057 URLs reflect the site hierarchy Review folder structure Screaming Frog Folders mirror the topical structure Medium
CI-058 No words repeated within one URL Scan URL paths Screaming Frog export Each word appears once per URL Low
CI-059 URL length kept short Filter URLs over 100 characters Screaming Frog Core URLs short and descriptive Low
CI-060 No dynamic parameters on indexable pages Filter URLs containing ? Screaming Frog Indexable pages use clean URLs Medium

JavaScript rendering

5
JavaScript rendering checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-061 Main content present in raw HTML or rendered reliably Compare raw and rendered text Screaming Frog JS rendering, URL Inspection Main content visible in Google's rendered HTML Critical
CI-062 Internal links present after rendering Compare link counts raw vs rendered Screaming Frog No links that exist only after user interaction High
CI-063 No content hidden behind clicks that crawlers cannot trigger Test tabs, accordions and load-more buttons URL Inspection, View Source Content in the DOM on load Medium
CI-064 Lazy-loaded content uses crawler-safe methods Check lazy-load implementation URL Inspection Content loads without scroll events Medium
CI-065 Titles, meta and canonicals not rewritten client-side Compare raw vs rendered head Screaming Frog Head tags identical in raw and rendered HTML Medium

Page speed and Core Web Vitals

11
Page speed and Core Web Vitals checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-066 Largest Contentful Paint under 2.5 seconds Check field data PageSpeed Insights, Search Console CWV report 75th percentile LCP ≤ 2.5s High
CI-067 Interaction to Next Paint under 200 ms Check field data PageSpeed Insights, Search Console CWV report 75th percentile INP ≤ 200ms High
CI-068 Cumulative Layout Shift under 0.1 Check field data PageSpeed Insights, Search Console CWV report 75th percentile CLS ≤ 0.1 Medium
CI-069 Server response time (TTFB) under 800 ms Test key templates PageSpeed Insights, WebPageTest TTFB ≤ 800ms Medium
CI-070 Images compressed and served in modern formats Check image weights and formats PageSpeed Insights, Screaming Frog WebP or AVIF; no image over 200 KB without reason Medium
CI-071 Images have width and height attributes Check img tags Screaming Frog custom extraction Dimensions declared to prevent layout shift Low
CI-072 Render-blocking CSS and JavaScript minimised Check opportunities in PSI PageSpeed Insights Critical CSS inline; non-critical deferred Medium
CI-073 Unused fonts and font weights removed List loaded font files Browser DevTools Network tab Only weights in use are loaded Low
CI-074 Fonts served locally with font-display: swap Check font source and CSS DevTools Fonts from own domain with swap Low
CI-075 Caching and compression enabled Check response headers curl -I, GTmetrix Brotli or Gzip on; cache headers set on static assets Medium
CI-076 Third-party scripts audited List third-party requests DevTools, WebPageTest Every script justified; unused removed Medium

Mobile

6
Mobile checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-077 Site is responsive on all templates Test key templates at mobile widths Chrome DevTools device mode No horizontal scroll or clipped content High
CI-078 Mobile and desktop content are equivalent Compare content on both Manual review Same main content, headings and links High
CI-079 Tap targets adequately sized and spaced Check buttons and links Lighthouse Targets at least 48x48 px Low
CI-080 Text readable without zoom Check body font size Lighthouse Body text 16px or larger Low
CI-081 Viewport meta tag set correctly View source View Source width=device-width, initial-scale=1 Medium
CI-082 No intrusive interstitials on mobile Load pages from search on mobile Manual review No full-screen pop-ups blocking content on entry Medium

Security

5
Security checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-083 HTTPS on every page Crawl for http:// URLs Screaming Frog All pages served over HTTPS Critical
CI-084 No mixed content Crawl for insecure resources Screaming Frog (Security tab), DevTools Zero http:// resources on https:// pages Medium
CI-085 SSL certificate valid and not near expiry Check certificate details Browser, SSL Labs Valid, auto-renewing High
CI-086 HSTS header set Check response headers curl -I, securityheaders.com Strict-Transport-Security present Low
CI-087 CMS, theme and plugins up to date Check update status CMS admin No outdated or abandoned plugins Medium

Structured data

9
Structured data checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-088 Organization schema on the homepage Test homepage Rich Results Test, Schema Markup Validator Valid Organization with name, logo, url, sameAs High
CI-089 BreadcrumbList schema on inner pages Test sample pages Rich Results Test Valid, matching visible breadcrumbs Low
CI-090 Article schema on editorial content Test sample articles Rich Results Test Valid with author, datePublished, dateModified Medium
CI-091 Product schema on product pages Test sample products Rich Results Test Valid with price, availability, reviews where real High
CI-092 LocalBusiness schema where a physical location exists Test contact and location pages Rich Results Test Valid with NAP matching Google Business Profile Medium
CI-093 FAQPage schema matches visible text exactly Compare schema text with page text Rich Results Test, manual review Word-for-word match Medium
CI-094 No duplicate schema blocks of the same type View source for multiple JSON-LD blocks View Source, Schema Markup Validator One block per type per page Medium
CI-095 No schema errors in Search Console enhancements Check Enhancements reports Search Console Zero invalid items Medium
CI-096 Schema describes only content visible on the page Compare markup with page Manual review No hidden or invented claims in markup High

Internationalisation

6
Internationalisation checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-097 hreflang present where multiple languages or regions exist Check head or sitemap for hreflang Screaming Frog (hreflang tab) Every language version annotated High
CI-098 hreflang tags are reciprocal Run hreflang report Screaming Frog Every alternate links back High
CI-099 hreflang codes valid (ISO 639-1 / 3166-1) Validate language and region codes Screaming Frog, hreflang validator No invalid codes such as en-UK Medium
CI-100 x-default declared Check hreflang set Screaming Frog x-default present Low
CI-101 hreflang URLs are canonical and return 200 Filter hreflang targets Screaming Frog No redirects or non-canonical targets Medium
CI-102 No automatic redirects based on IP or language Load site with different locations VPN, curl Users and crawlers can reach every version High

Pagination and faceted navigation

5
Pagination and faceted navigation checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-103 Paginated pages are indexable and self-canonical Check page 2+ of listings Screaming Frog Page 2+ not canonicalised to page 1 Medium
CI-104 Paginated pages linked with crawlable links Check pagination markup View Source <a href> links to next pages Medium
CI-105 Faceted filters do not create unlimited indexable URLs Crawl filter combinations Screaming Frog, log files Low-value combinations noindexed, canonicalised or blocked Critical
CI-106 High-demand filter combinations have indexable landing pages Match filter combinations to search demand Keyword tool, Search Console Demand-backed facets exposed as clean URLs Medium
CI-107 Infinite scroll has paginated fallback URLs Disable JS and test listing pages Browser Each chunk has a unique crawlable URL Medium

Log files and crawl budget

4
Log files and crawl budget checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-108 Server logs available for analysis Request 30 days of access logs Hosting provider Logs obtained Low
CI-109 Googlebot crawls important pages frequently Analyse Googlebot hits by section Screaming Frog Log File Analyser Core section receives the largest share of crawls Medium
CI-110 Crawl budget not wasted on parameters or low-value URLs Group Googlebot hits by URL pattern Log File Analyser Under 10% of crawls on low-value URLs Medium
CI-111 Crawl stats show no host or availability problems Open Crawl stats Search Console Settings > Crawl stats Host status green; no spikes in failed requests High

Images and media

4
Images and media checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CI-112 All meaningful images have descriptive alt text Filter images missing alt Screaming Frog Alt text on every content image Medium
CI-113 Image file names describe the image Review file names Screaming Frog No IMG_1234 style names on key images Low
CI-114 Decorative images use empty alt Check decorative images Manual review alt="" on decorative images Low
CI-115 Videos have transcripts or text summaries Review video pages Manual review Text equivalent on page Low
2

Topical coverage

Which questions in your subject does the site answer?

55 checks

Coverage is judged against what a complete treatment of your subject requires, not against your page count. The gaps are usually where the demand is.

Source context and central entity

6
Source context and central entity checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
TC-001 Source context defined Write why the site exists in search and how it earns Workshop, About page One-sentence source context agreed Critical
TC-002 Central entity identified and recognised Search '[entity] Wikipedia' and check Knowledge Graph Google search, Wikidata Entity recognised by Google High
TC-003 Central search intent stated Combine source context with central entity as predicate + entity Workshop CSI written and used across templates High
TC-004 Central entity appears site-wide Check templates for entity in titles, headings, boilerplate Screaming Frog custom search Entity present on every indexable template Medium
TC-005 Core and outer sections defined Split topics into monetising core and supporting outer Topical map Every page assigned to core or outer High
TC-006 About page states source context and entity Review About page Manual review Brand, entity and purpose stated plainly Medium

Query network

6
Query network checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
TC-007 Seed queries collected for the central entity Pull queries from Search Console, keyword tools and SERPs Search Console, Ahrefs, Semrush Seed list covers all prominent attributes High
TC-008 Entity attributes listed and filtered List attributes, score for prominence, popularity and relevance Spreadsheet, Wikidata Attributes ranked by relevance to source context High
TC-009 People Also Ask and related searches captured Scrape PAA and related searches for seed queries SERP tools, AlsoAsked Questions logged against attributes Medium
TC-010 Queries clustered by SERP overlap Cluster by shared ranking URLs Keyword Insights, Semrush clustering Clusters reviewed manually High
TC-011 Sequential and correlative queries mapped Trace what users search before and after key queries Search Console, SERP related searches Query paths documented Medium
TC-012 Search demand verified before creating new pages Check volume and trend for each cluster Keyword tool, Google Trends Separate pages only where demand exists Medium

Content mapping

6
Content mapping checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
TC-013 Every existing page mapped to one cluster Map URLs to clusters Spreadsheet One primary cluster per page High
TC-014 Missing clusters identified Compare clusters with existing pages Topical map Gap list sequenced by demand and relevance Critical
TC-015 Thin clusters identified Flag clusters served by short or partial pages Screaming Frog word count, manual review Thin pages flagged for expansion or merge High
TC-016 One macro context per page Read each page against its target cluster Manual review Each page answers one main question High
TC-017 Quality nodes identified and linked from homepage List the most important core pages Topical map, Screaming Frog Quality nodes one click from the homepage High
TC-018 Publication sequence set Order gaps into blocks that close one area at a time Topical map Sequence agreed Medium

Cannibalisation

3
Cannibalisation checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
TC-019 No two pages target the same primary query Search Console queries with multiple ranking URLs Search Console, Semrush cannibalisation report One ranking URL per primary query High
TC-020 Overlapping pages merged or differentiated Review each overlap pair Manual review Merged with 301, or intents separated High
TC-021 Service pages and guides target different intents Compare commercial pages with informational ones Manual review Commercial and informational intents separated Medium

Content quality

9
Content quality checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
TC-022 Main answer stated in the first paragraph Read opening of key pages Manual review Definitive answer in the first two sentences High
TC-023 First sentence after each heading answers that heading Review subordinate text Manual review Direct answer under every heading Medium
TC-024 Content covers the entities and attributes competitors cover Compare entity coverage with top results Manual review, NLP tools No major entity or attribute missing High
TC-025 Claims use definitive language where facts are settled Scan for may, might, could on settled facts Manual review Modal verbs only where uncertainty is real Medium
TC-026 Numbers, dates and units are specific Scan for vague quantities Manual review Figures stated with units and sources Medium
TC-027 No contradictions between pages Compare repeated facts across the site Manual review Same fact stated the same way everywhere High
TC-028 Original value present (data, examples, case evidence) Review key pages Manual review Each key page holds something competitors lack Medium
TC-029 Spelling and grammar checked Run a proofreading pass Grammarly, LanguageTool No errors on key pages Low
TC-030 AI-assisted content reviewed and fact-checked Check editorial workflow Editorial policy Human review before publishing Medium

Title tags

4
Title tags checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
TC-031 Every page has a unique title tag Filter missing and duplicate titles Screaming Frog Unique title on every indexable page High
TC-032 Title states the page's entity and attribute Review titles against macro context Manual review Title matches the page's main question High
TC-033 Titles 50 to 60 characters Filter by length Screaming Frog Core titles within range Low
TC-034 Google is not rewriting titles on key pages Compare SERP titles with declared titles Google search Displayed title matches declared title Medium

Meta descriptions

2
Meta descriptions checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
TC-035 Unique meta description on key pages Filter missing and duplicate descriptions Screaming Frog Unique on every core page Low
TC-036 Description reflects the page's order of sections Compare description with headings Manual review Description summarises the page in order Low

Headings

5
Headings checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
TC-037 One H1 per page Filter missing and multiple H1 Screaming Frog Exactly one H1 Medium
TC-038 Heading hierarchy logical (H2 > H3 > H4) Review heading outline Screaming Frog, HeadingsMap extension No skipped levels Medium
TC-039 Headings phrased as questions where users ask questions Compare headings with PAA questions Manual review Question headings on informational pages Low
TC-040 Contextual flow from first to last heading Read headings alone as an outline Manual review Outline reads as one connected argument Medium
TC-041 Headings not used for styling Check for headings on non-heading text View Source Headings only mark sections Low

Internal linking

6
Internal linking checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
TC-042 Every page links to its parent and related nodes Review inlinks and outlinks per page Screaming Frog Links follow the topical map hierarchy High
TC-043 Supporting pages link to the core section Check outer-section outlinks Screaming Frog Every outer page links to a core page High
TC-044 Anchor text descriptive and varied Export anchor text Screaming Frog (Inlinks) No 'click here'; same anchor used at most three times per page Medium
TC-045 Links justified by preceding context Read the sentence before each link Manual review Anchor terms introduced before the link Low
TC-046 Internal link count per page reasonable Count outlinks in main content Screaming Frog Around 15 or fewer contextual links Low
TC-047 No internal links set to nofollow Filter nofollow internal links Screaming Frog Zero internal nofollow Medium

E-E-A-T

5
E-E-A-T checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
TC-048 Named authors with author pages Check article bylines Manual review Author name, bio and credentials on each article Medium
TC-049 Published and updated dates visible Check article templates Manual review Both dates shown and match schema Medium
TC-050 Sources cited for claims and statistics Check outbound citations Manual review Authoritative sources linked Medium
TC-051 Editorial policy published Check for policy page Manual review Policy linked from footer Low
TC-052 Contact details and business identity visible Check contact and About pages Manual review Name, email and business details present Medium

Freshness

3
Freshness checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
TC-053 Key pages reviewed on a schedule Check last updated dates Screaming Frog custom extraction, CMS Core pages reviewed within 12 months Medium
TC-054 Outdated facts, prices and years updated Scan for stale years and figures Screaming Frog custom search No outdated years or figures Medium
TC-055 Declining pages identified Compare clicks year on year by page Search Console Declining pages listed for refresh Medium
3

Competitor SERPs

Who ranks above you, and what do their pages hold?

26 checks

Rankings are relative. A page fails not because it is weak but because other pages answer the query more completely, and the results page shows exactly how.

Search intent

4
Search intent checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CS-001 Dominant intent identified for each priority query Read the top 10 results Google search (incognito, target location) Intent labelled: informational, commercial, transactional, navigational Critical
CS-002 Page format matches the format ranking Compare your page type with ranking page types Manual review Same format as the majority of top results High
CS-003 Content angle matches what ranks Compare angles (beginner, comparison, list, guide) Manual review Angle aligned with the SERP Medium
CS-004 Mixed-intent SERPs handled Identify SERPs with split intent Manual review Page serves the larger intent share Medium

SERP features

6
SERP features checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CS-005 Featured snippet holders identified Record who holds snippets for priority queries Semrush, Ahrefs, manual search Snippet opportunities listed Medium
CS-006 Snippet-ready answers written Check for 40 to 50 word answers under question headings Manual review Concise answer under each target question Medium
CS-007 People Also Ask questions answered on page Compare PAA with page headings AlsoAsked, manual review Relevant PAA questions covered Medium
CS-008 AI Overview presence recorded for priority queries Search priority queries and note AI Overviews Google search Queries with AI Overviews flagged Medium
CS-009 Image and video pack opportunities identified Check SERPs for image and video results Google search Media created where packs appear Low
CS-010 Local pack presence recorded where relevant Check local queries Google search, local rank tracker Local pack status known Medium

Competitor content

6
Competitor content checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CS-011 True search competitors identified List domains ranking across your priority queries Semrush, Ahrefs competitor reports Top 5 search competitors named High
CS-012 Competitor topical coverage compared Crawl competitor sitemaps and map to your clusters Screaming Frog, sitemap export Coverage gaps against each competitor listed High
CS-013 Entities and attributes in ranking pages extracted Read top 3 pages per priority query Manual review, NLP tools Missing entities listed per page High
CS-014 Content depth compared Compare sections, word count and media Manual review, Screaming Frog Depth gap documented Medium
CS-015 Competitor publishing pace measured Count new pages per month from sitemaps Sitemap lastmod, Ahrefs Publishing pace known Low
CS-016 Queries competitors rank for and you do not Run a keyword gap Semrush, Ahrefs keyword gap Gap list added to the topical map High

Authority and backlinks

6
Authority and backlinks checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CS-017 Referring domains compared with competitors Compare referring domain counts Ahrefs, Semrush, Majestic Authority gap quantified Medium
CS-018 Link profile quality reviewed Sample referring domains for relevance and spam Ahrefs No large share of spam or irrelevant links Medium
CS-019 Toxic or manipulative links assessed Review suspicious patterns Ahrefs, Search Console Links report Disavow only where a manual action or clear risk exists Low
CS-020 Pages with the most backlinks return 200 Check status of top linked pages Ahrefs Best by links, Screaming Frog Linked pages live or redirected High
CS-021 Unlinked brand mentions found Search brand mentions without links Ahrefs Content Explorer, Google Alerts Mentions logged for outreach Low
CS-022 Competitor link sources reviewed Run a link intersect Ahrefs Link Intersect Relevant link opportunities listed Low

Local search

4
Local search checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
CS-023 Google Business Profile claimed and verified Check profile ownership Google Business Profile Verified, correct primary category High
CS-024 NAP consistent across the web Compare name, address and phone on key citations BrightLocal, manual search Identical NAP everywhere Medium
CS-025 Location pages exist for each served area Check location pages Manual review Unique page per location with local detail Medium
CS-026 Reviews monitored and answered Check review count and responses Google Business Profile Recent reviews answered Low
4

AI visibility

Do AI assistants name your brand or a competitor?

22 checks

A growing share of buyers read an answer instead of clicking a result. If an assistant names three companies in your category and none is yours, rankings alone will not fix it.

AI assistant mentions

7
AI assistant mentions checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
AI-001 Category questions tested in ChatGPT Ask 10 category questions a buyer would ask ChatGPT Brand mentions and cited sources recorded High
AI-002 Category questions tested in Gemini Ask the same 10 questions Gemini Brand mentions and cited sources recorded High
AI-003 Category questions tested in Perplexity Ask the same 10 questions Perplexity Brand mentions and cited sources recorded High
AI-004 AI Overviews checked for priority queries Search priority queries in Google Google search Cited sources in each AI Overview recorded High
AI-005 Competitors cited instead of you listed Compile brands named across all assistants Spreadsheet Competitor citation frequency known High
AI-006 Facts stated about your brand are accurate Ask assistants to describe your business ChatGPT, Gemini, Perplexity No wrong prices, services, locations or dates High
AI-007 Baseline saved for re-testing Save prompts, answers and dates Spreadsheet Same prompts re-run quarterly Medium

Entity consistency

4
Entity consistency checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
AI-008 Brand name identical across all profiles Compare name on site, social, directories Manual search One exact brand name everywhere Medium
AI-009 Business description consistent across profiles Compare About text on key profiles Manual review Same core description of what the business does Medium
AI-010 sameAs links connect official profiles Check Organization schema sameAs Schema Markup Validator All official profiles listed Medium
AI-011 Founder and key people linked to the brand Check Person schema and profile links Schema Markup Validator, LinkedIn People connected to the Organization entity Low

Knowledge graph

3
Knowledge graph checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
AI-012 Brand appears in Google's Knowledge Graph Search brand name for a knowledge panel Google search, Knowledge Graph Search API Knowledge panel or KG entity present Medium
AI-013 Wikidata entry exists and is accurate Search Wikidata for the brand Wikidata Entry with correct statements and official website Low
AI-014 Listed in relevant industry directories Check key directories and associations Manual search Present in authoritative directories for the sector Low

Extractability

5
Extractability checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
AI-015 Answers stated in self-contained sentences Read key answers out of context Manual review Each answer makes sense when quoted alone High
AI-016 Entities named rather than referred to by pronoun Scan key paragraphs Manual review Subject named in each key sentence Medium
AI-017 Tables and lists used for comparisons and steps Review comparison and process content Manual review Structured formats where data is structured Medium
AI-018 Statistics carry sources and dates Check figures on key pages Manual review Every statistic sourced and dated Medium
AI-019 Author and publish date visible on content Check templates Manual review Both visible on every article Medium

AI crawler access

3
AI crawler access checks, with method, tool, pass criteria and severity
IDCheckHow to checkToolPass criteriaSeverity
AI-020 AI crawlers can reach content you want cited Check robots.txt and firewall rules for AI user agents robots.txt, CDN or firewall settings Allowed for pages meant to be cited High
AI-021 Key content not dependent on JavaScript to render Fetch pages without JavaScript curl, text-only browser Main content present in raw HTML High
AI-022 llms.txt considered Decide whether to publish an llms.txt file Manual review Decision documented Low

How to use the audit checklist

The spreadsheet tracks progress as you work and separates the problems that block everything else from the ones that can wait. Use one copy per site.

  1. Work through the layers in order

    Start with crawling and indexing. A coverage gap matters little on a page a search engine cannot reach, so the layers are sequenced by what depends on what.

  2. Mark each check

    Set each check to Pass, Fail or N/A. For every Fail, record how many pages it affects, what you found, who owns the fix and a target date.

  3. Work the fix-first list

    The Fix-first sheet collects every Critical and High problem, Critical first. That list is the plan; the rest is the backlog.

What a checklist cannot do for you

The checklist finds problems. Three things decide whether finding them changes anything, and none of them fit in a spreadsheet.

  • Ranking the findings

    An audit that returns 40 problems is a list nobody acts on until someone decides which three matter most. Severity gives you a starting order; your own context decides the rest.

  • Judging coverage against demand

    Layer two asks which questions your subject requires. Answering it means building the query network first, which our SEO audit service does as part of the work.

  • Access to tools and data

    Search Console access covers most of layer one. A crawler covers structure, and the paid tools matter mainly for layer three. The checklist names which tool each check needs, and which are free.

  • Time to run it properly

    218 checks is a working week for someone who has run audits before, and longer the first time. Skimming it produces a list of symptoms rather than a diagnosis.

More free SEO checklists

Scroll to Top