SEO Audit Checklist: A Prioritised Technical and Content Guide
A technical and content SEO audit checklist: how to run an audit step by step, from crawling and rendering to backlinks and AI search, in a copy-ready table.

Short answer
A useful SEO audit checklist works in priority order: first confirm important pages can be crawled, rendered and indexed; then check site architecture and internal links; then on-page elements, content quality and cannibalisation; then Core Web Vitals, structured data, international setup and AI-search readiness. Fix blockers before polish, and tie every finding to pages that drive revenue.
Key takeaways
- Audit in priority order: crawlability and indexing first, because nothing else matters if Google cannot see the page.
- Compare the rendered HTML with the raw HTML; content that only appears after JavaScript runs is a common hidden ranking problem.
- Keyword cannibalisation and orphan pages are among the most frequent issues found on mature sites.
- Google's AI features have no special technical requirements beyond normal SEO; pages must be indexed and eligible for a snippet.
- An audit is only useful if every finding has an owner, a priority and a clear definition of done.
In this article (8 sections)
- 1How to do an SEO audit, step by step
- 2Before you start: define scope and gather data
- 3Priority 1: crawling, indexing and rendering
- 4Priority 2: architecture, on-page and content
- 5Priority 3: performance, structured data, international and AI search
- 6The complete SEO audit checklist (copy-ready table)
- 7What most SEO audits miss
- 8Turning the audit into action
Most SEO audits fail for a simple reason: they are exports, not decisions. A tool produces 3,000 warnings, someone pastes them into a spreadsheet, and the development team ignores the lot. This SEO audit checklist is the prioritised version I actually use, ordered so the problems that block growth come before the ones that polish it. If you would rather have it done for you, with findings prioritised against your own data, that is what my SEO audit services cover.
It works as a technical SEO audit for most sites, from a 200-page B2B site to a large catalogue. Scale changes the tooling, not the order.
How to do an SEO audit, step by step
This is the order I work in, from scope to tickets:
- Set the scope. Which site, sections, markets and goals are in, and what changed recently.
- Gather access and data. Search Console, GA4, a full crawl, backlink data and the list of pages that make money.
- Check crawling, indexing and rendering. Can Google find, render and store the pages that matter?
- Review architecture, on-page and content. Internal links, templates, intent and cannibalisation.
- Check backlinks, manual actions and competitors. What supports or holds back your authority, and who outranks you.
- Check performance, structured data, international and AI search. The factors that decide close contests and AI answers.
- Prioritise and write tickets. Every finding gets an owner, a priority and a definition of done.
As a rough guide, an audit takes about two weeks for a small site, and three to six weeks for a large or multi-market site.
Before you start: define scope and gather data
Get these in place before you crawl anything:
- Owner access to Google Search Console and GA4, plus a list of the pages or templates that drive revenue.
- A full crawl with Screaming Frog (or a similar crawler) with JavaScript rendering enabled for a sample.
- Backlink and keyword data from Ahrefs or SEMrush.
- Business context: which sections convert, what is being launched, what changed recently.
That last point is underrated. A traffic drop that lines up with a redesign is a very different audit from one that lines up with a core update.
Priority 1: crawling, indexing and rendering
These are blockers. If they are broken, nothing further down the list will move the needle, so I always check them first and fix them before anything else.
Crawling and indexing: can Google find and store your pages?
This is where the most expensive problems live. Check:
- robots.txt is not blocking important sections, CSS or JavaScript (test it with the robots.txt and AI crawler checker).
- Important pages are not set to noindex by accident, which often happens after a staging push.
- Canonical tags point to the right URL and are not all pointing to the homepage.
- XML sitemaps contain only indexable, 200-status, canonical URLs (the sitemap checker samples them for you).
- The Page indexing report in Search Console: look at "Crawled – currently not indexed" and "Discovered – currently not indexed" for patterns by template.
- Redirect chains and loops, especially after migrations; see the site migration checklist, or SEO migration services if a move is coming up.
- Parameter and faceted URLs creating near-infinite crawl paths.
- Every page served over HTTPS, HTTP versions redirecting to HTTPS, and no mixed content (images, scripts or styles still loaded over HTTP).
- Mobile-first parity: Google indexes the mobile version, so check it carries the same content, links, structured data and meta tags as desktop.
- The Crawl stats report in Search Console: server errors (5xx), host availability problems and slow response times.
Rendering: does the content exist without JavaScript?
On modern frameworks, this is the issue I find most often that nobody else has spotted. Google can render JavaScript, but it adds delay and fragility, and many other crawlers, including several AI crawlers, do not render it reliably.
- Compare the raw HTML with the rendered HTML (URL Inspection in Search Console, or a crawler with rendering on).
- Confirm titles, headings, body copy, canonical tags and internal links are present in the server response.
- For React, Vue or similar apps, prefer server-side rendering (SSR) or static generation for indexable pages.
- Check that links are real anchor elements with href values, not click handlers.
Priority 2: architecture, on-page and content
Once Google can see the pages, the question becomes whether it understands which ones matter and what each one is for.
Site architecture and internal links
- Important pages should be reachable within three or four clicks from the homepage.
- Find orphan pages: URLs in the sitemap or analytics that no internal link points to.
- Check that navigation and breadcrumbs reflect how customers think, not the org chart.
- Review anchor text: descriptive, varied, and aligned with the target page's topic.
- Look for internal links pointing to redirects or 404s.
Internal linking is the cheapest lever in SEO and usually the most neglected.
On-page elements
- Unique, descriptive title tags and meta descriptions on key templates (preview them with the SERP and Open Graph checker).
- One clear H1 per page, matching the page's intent.
- Headings that structure the content rather than decorate it.
- Images with meaningful alt text and sensible file sizes.
- Clean, readable URLs, consistent in trailing slash and case.
Content quality and cannibalisation
- Cannibalisation: in Search Console, filter by a query and see whether several URLs share impressions. Consolidate or differentiate them.
- Thin or near-duplicate pages, often from templates, tags or location variants with swapped city names.
- Intent mismatch: a blog post trying to rank for a commercial query, or a product page for an informational one.
- Outdated content on pages that still earn impressions.
- Evidence of experience: author information, specifics and original insight, not rewritten summaries.
Backlinks, manual actions and competitors
- Manual actions first. Check the Manual actions report in Search Console before anything else in this section. If there is one, it comes before every other fix.
- Who links to you, and what you have lost. Review referring domains and lost links in Ahrefs or SEMrush, especially links to pages that used to rank.
- Spikes of junk links. A sudden rise in links from unrelated or low-quality sites is worth understanding, even if you never asked for them.
- The sites that outrank you. Compare your pages and links with the two or three sites that rank above you for your most valuable searches. The gap is usually clearer there than in any tool score.
Penalty work shows why scale and order matter. For a lifestyle publisher with a Google penalty, we audited 5,800+ URLs before the reconsideration request was approved; the penalty recovery case study has the detail.
Priority 3: performance, structured data, international and AI search
These rarely explain a collapse on their own, but they decide close contests and determine whether your pages are eligible for richer results and AI-generated answers.
Core Web Vitals and performance
- Check field data (Chrome UX Report) in Search Console's Core Web Vitals report, by template.
- Largest Contentful Paint: usually hero images, fonts or slow server response.
- Interaction to Next Paint: heavy JavaScript and third-party scripts.
- Cumulative Layout Shift: images without dimensions, late-loading banners.
Treat performance as a tie-breaker and a user-experience issue, not a magic ranking switch.
Structured data, international and AI-search readiness
- Structured data: validate Organization, Product, Article, FAQ, Breadcrumb or LocalBusiness markup in the Rich Results Test, and make sure it matches visible content.
- International: hreflang with reciprocal return links, self-references and an x-default fallback, per Google's localised versions guide. See the international and enterprise SEO service for complex setups.
AI-search readiness: Read, Know, Recommend
Google states that AI Overviews and AI Mode have no special requirements beyond normal SEO: a page must be indexed and eligible for a snippet (Google's AI features documentation). Beyond that, I check AI search with three questions I call Read–Know–Recommend:
- Readable by AI (Read). Can the AI crawlers you want fetch your pages, parse them without running JavaScript, and understand what each one is about? Check you are not blocking snippets with nosnippet by accident.
- Known and corroborated (Know). Are your brand, products and facts stated clearly and consistently, and confirmed by sources AI systems already trust?
- Recommended in the answer (Recommend). When a buyer asks for the best option, does your name appear, and ahead of your competitors?
My GEO consultant page covers this in more depth, and an AI visibility audit goes deeper still.
The complete SEO audit checklist (copy-ready table)
Copy this table into a spreadsheet or your project tool. Owner and Status are left blank for you to fill in as you work through it.
| Check | How to check | Tool | Priority | Owner | Status |
|---|---|---|---|---|---|
| Manual actions | Manual actions report | GSC | Critical | — | — |
| Key pages noindexed or blocked | Crawl + URL Inspection | Screaming Frog, GSC | Critical | — | — |
| robots.txt blocking sections, CSS or JS | Review robots.txt, test key URLs | GSC, Screaming Frog | Critical | — | — |
| Content only in rendered HTML | Compare raw vs rendered | GSC, Screaming Frog | Critical | — | — |
| Wrong canonicals | Crawl canonical column | Screaming Frog | Critical | — | — |
| Google-selected canonical differs from yours | URL Inspection: compare user-declared and Google-selected canonical on key pages | GSC | High | — | — |
| Server errors (5xx) and host problems | Crawl stats report, crawl status codes | GSC, Screaming Frog | Critical | — | — |
| HTTPS and mixed content | Crawl for HTTP URLs and insecure resources | Screaming Frog | High | — | — |
| Mobile-first parity | Compare mobile and desktop content, links and markup | GSC URL Inspection, Screaming Frog | High | — | — |
| Pages not indexed by template | Page indexing report | GSC | High | — | — |
| XML sitemap quality | Only indexable, 200-status, canonical URLs | Screaming Frog, GSC | High | — | — |
| Sitemap location not listed in robots.txt | Check for a Sitemap: line in robots.txt | Manual review | Low | — | — |
| Redirect chains and loops | Crawl redirect report | Screaming Frog | High | — | — |
| Parameter and faceted crawl traps | Crawl URL patterns, crawl stats | Screaming Frog, GSC | High | — | — |
| Links not crawlable (no href) | Check rendered link elements | Screaming Frog | High | — | — |
| Key pages too deep | Crawl depth report | Screaming Frog | High | — | — |
| Orphan pages | Crawl vs sitemap vs GA4 | Screaming Frog, GA4 | High | — | — |
| Internal links to redirects or 404s | Crawl inlinks report | Screaming Frog | Medium | — | — |
| Keyword cannibalisation | Query to multiple URLs | GSC, SEMrush | High | — | — |
| Intent mismatch on key pages | Compare page type with ranking results | GSC, manual review | High | — | — |
| Thin or near-duplicate pages | Crawl word count, duplicates, GSC | Screaming Frog | Medium | — | — |
| Outdated content still earning impressions | Pages report by impressions | GSC | Medium | — | — |
| Weak titles and meta descriptions | Crawl, GSC CTR | Screaming Frog, GSC | Medium | — | — |
| Missing or multiple H1s | Crawl H1 report | Screaming Frog | Medium | — | — |
| Evidence of experience missing | Review authors, specifics, original insight | Manual review | Medium | — | — |
| Lost links to ranking pages | Lost referring domains | Ahrefs, SEMrush | High | — | — |
| Spikes of junk links | Referring domains over time | Ahrefs, SEMrush | Medium | — | — |
| Competitor gap | Compare pages and links with top 2–3 rivals | Ahrefs, SEMrush | High | — | — |
| hreflang errors | Crawl hreflang report | Screaming Frog | High (if multi-market) | — | — |
| Poor Core Web Vitals | Field data by template | GSC, PageSpeed Insights | Medium | — | — |
| Invalid structured data | Validate key templates | Rich Results Test | Medium | — | — |
| Snippets blocked (nosnippet) | Crawl meta robots and headers | Screaming Frog | High | — | — |
| AI crawlers blocked | Review robots.txt and server logs | Manual review | Medium | — | — |
| Brand facts unclear or inconsistent | Compare site, profiles and listings | Manual review | Medium | — | — |
| Not named in AI answers for buyer questions | Run a fixed set of prompts | ChatGPT, Gemini, AI Overviews | Medium | — | — |
| Missing alt text | Crawl image report | Screaming Frog | Low | — | — |
| Messy URLs (case, trailing slash) | Crawl URL report | Screaming Frog | Low | — | — |
What most SEO audits miss
Automated tools are good at counting problems and poor at judging them. The findings that usually matter most never appear as a red warning:
- Template-level patterns. Fifty unindexed pages are noise; fifty unindexed product pages from one template are a strategy problem.
- Business weighting. A broken canonical on the pricing page matters more than a thousand missing alt attributes on the blog.
- Recent changes. Releases, CMS plugins, CDN rules and consent banners that quietly changed what Google receives.
- Process gaps. No pre-launch SEO check, so the same issue returns after every release.
That last one is why I treat an audit as an operations problem as much as a technical one. When I led international delivery, lifting execution quality from roughly 70% to 98% depended on QA checklists run before work went live, not after. I describe that approach in SEO quality at scale.
Turning the audit into action
An audit is finished when every finding has an owner, an effort estimate and a clear definition of done. I group findings into three lists: fix this sprint, plan this quarter, and monitor. Developers get tickets with acceptance criteria, not a spreadsheet. Repeatable checks, such as indexing status and broken links, are worth automating; I cover which in which SEO tasks to automate.
If you would rather have someone run this with you, SEO audit services are usually where I start every SEO consultant engagement. And if you are wondering what an audit should cost, SEO pricing in India gives market ranges.


