The Technical SEO Audit Checklist for 2026
A prioritised, testable checklist for auditing crawlability, indexation, rendering, architecture, performance and structured data — with what to fix first, how to prove each fix, and how often to repeat it.
Every page you publish depends on a chain of machine decisions you never see: can the page be fetched, does it render into something readable, is it kept in the index, is it understood, and does it load fast enough to count. A technical audit checks each link in that chain. When one link is broken, everything published above it is quietly lost.
This checklist is the one we run at the start of every engagement. It is organised in the order that matters — crawlability before indexation, indexation before rendering, and so on — because a fault lower in the chain makes the checks above it meaningless. Each item states what to look at, what good looks like and how to confirm the fix. You can run the whole thing in a working week with free tools and a crawler.
Key takeaways
- Audit in dependency order: crawlability → indexation → rendering → architecture → performance → structured data → international → hygiene. A fault lower down invalidates everything above it.
- Google Search Console’s Pages report is the single most important artefact in the audit. Read every exclusion reason before you touch a crawler.
- The most expensive faults are usually the quietest: a
noindexleft on a template, a canonical pointing at the wrong version, or content that only exists after JavaScript runs. - Core Web Vitals pass at LCP ≤ 2.5 s, INP ≤ 200 ms and CLS ≤ 0.1, measured on real users (field data), not in the lab.
- Prioritise by *pages affected × commercial value*, not by how many issues a tool lists. Ten template-level faults usually outweigh a thousand page-level warnings.
- Every fix needs a proof: a recrawl, a URL inspection, a log line or a field-data improvement. A fix nobody verified is a fix nobody can rely on.
In this article
- Key takeaways
- Why a technical audit comes before content
- What you need before you start
- 1. Crawlability — can bots reach every page that matters?
- 2. Indexation — is the right set of pages in the index?
- 3. Rendering — does the content exist after JavaScript runs?
- 4. Architecture and internal links
- 5. Performance and Core Web Vitals
- 6. Structured data and entity clarity
- 7. International and language versions
- 8. Security, redirects and hygiene
- Prioritising: what to fix first
- How often to audit
- The bottom line
- FAQ
- Sources
Why a technical audit comes before content
It is tempting to start an organic programme by writing. Writing is visible, it feels productive and it is easy to buy. But content only counts if the systems that read it can reach it, render it, keep it and understand it. Those four conditions are technical, and they are checked by machines long before any human reads a word.
In the businesses we have worked with, the ceiling on organic growth was more often technical than editorial. Pages that were never indexed, pages that competed with their own duplicates, product listings that only existed in the browser after a script ran — none of these problems are solved by publishing more. They are solved by finding the fault, fixing it at the template level and proving the fix. The reasoning is set out in our essay on the commercial cost of technical debt; this guide is the practical version.
What you need before you start
A useful audit needs five sources of evidence. Tool brands do not matter much; what matters is that you have each kind of evidence and that you compare them. A crawler tells you what *could* be found; Search Console tells you what Google *did* with it; server logs tell you what bots *actually* requested.
| Source | What it tells you | Typical cost |
|---|---|---|
| Google Search Console (and Bing Webmaster Tools) | What was crawled, indexed and excluded, and why. Core Web Vitals field data. Manual actions. | Free |
| A site crawler (Screaming Frog, Sitebulb, Lumar or similar) | Every URL reachable from the home page: status codes, canonicals, titles, links, depth, rendered vs raw HTML. | Free tier or a modest licence |
| Server or CDN logs | Which bots requested which URLs, how often, and what they got back. The only source that shows crawl waste. | Free if you already keep them |
| PageSpeed Insights / CrUX | Lab and field performance for a URL or an origin, against the Core Web Vitals thresholds. | Free |
| A browser with developer tools | Rendering, JavaScript errors, redirect chains, response headers, mobile viewport behaviour. | Free |
You also need two lists from the business: the pages that make money (products, services, category pages, key landing pages) and the pages that are meant to be excluded (internal search, filters, admin, staging). Without those two lists you cannot tell a healthy exclusion from a damaging one.
1. Crawlability — can bots reach every page that matters?
Crawlability is whether a search engine can request your pages and receive them. It sounds trivial and is failed constantly, usually by a rule written for a different purpose: a robots directive from a staging environment, a firewall that challenges bots, or a navigation built entirely from JavaScript events.
- robots.txt exists, returns
200, and disallows only what should be disallowed. Check that it does not block CSS, JavaScript or image paths that pages need in order to render. - XML sitemaps list only canonical, indexable,
200URLs; are referenced in robots.txt; are under 50,000 URLs and 50 MB each; and carry accuratelastmoddates. A sitemap full of redirects ornoindexpages teaches the crawler to distrust it. - Status codes are honest:
200for live pages,301/308for moved pages,404or410for gone pages. No soft 404s (a ‘not found’ message served with a200). - Redirect chains and loops are eliminated. One hop, not three. Chains waste crawl budget and leak link equity at every step.
- Bot protection (CDN firewalls, rate limiting, JavaScript challenges) allows verified search-engine crawlers. Check the logs for
403and429responses to Googlebot and Bingbot. - Internal links are real
<a href>elements. Links that only work viaonclickhandlers or form submissions are invisible to crawlers. - Crawl waste is under control: faceted navigation, calendar pages, session parameters and infinite scroll are not generating millions of near-identical URLs.
How to verify: compare the sitemap URL list with the crawler’s discovered URL list and with Search Console’s indexed URL list. The three sets should be nearly identical. Where they diverge, you have found either a crawl gap or crawl waste.
2. Indexation — is the right set of pages in the index?
Indexation is whether a crawled page is kept and made eligible to appear. The Search Console Pages report lists every reason a URL was excluded. Reading each reason and deciding whether it is healthy or harmful is the heart of the audit.
| Reason | What it usually means | Action |
|---|---|---|
| Discovered – currently not indexed | Google knows the URL but has not crawled it. Common on new or low-authority sites and on very large ones. | Improve internal links to the page, make sure it is in the sitemap, and reduce crawl waste elsewhere. Request indexing for a handful of money pages only. |
| Crawled – currently not indexed | Google fetched the page and chose not to keep it: thin, duplicative or low-value content, or too many similar pages. | Consolidate or improve. Ask whether the page deserves to exist as a separate URL. |
| Duplicate without user-selected canonical | Two or more URLs serve the same content and none declares a canonical. | Choose one, set rel=canonical on all versions, and link only to the chosen one internally. |
| Duplicate, Google chose different canonical than user | You declared a canonical; Google disagreed, usually because internal links or content point elsewhere. | Align internal links, sitemaps and content with the canonical you want. |
| Excluded by ‘noindex’ tag | A meta robots or X-Robots-Tag noindex is present. | Healthy for utility pages. Harmful if it is on a template that also serves money pages — the most expensive fault in this list. |
| Page with redirect | The URL redirects. | Healthy after a migration. Remove redirected URLs from sitemaps and internal links. |
| Not found (404) | The page does not exist. | Healthy if the page was meant to go. Redirect if it had links or traffic. |
| Soft 404 | An empty or ‘no results’ page served with 200. | Return a real 404/410, or add content that justifies the page. |
| Alternate page with proper canonical tag | A non-canonical version correctly pointing at its canonical. | Healthy. No action. |
| Blocked by robots.txt | Crawling is disallowed. | Healthy for utility paths. Check the list for money pages and assets. |
- Every money page returns
200, is indexable, declares a self-referencing canonical, and is the URL that internal links point to. - No
noindexon templates that serve valuable pages — check category, product, article and pagination templates individually. rel=canonicalis absolute, points at a200URL, and is consistent between the HTML and any HTTP header.- Parameterised, uppercase, trailing-slash and
httpversions all resolve to one canonical form with a single redirect. - Pagination pages are crawlable and indexable (or deliberately noindexed with a stated reason), and page 2+ does not canonicalise to page 1.
- Search-engine-facing copies of the site (staging, preview, CDN test hostnames) are not indexable.
How to verify: URL-inspect ten money pages in Search Console. Each should show ‘URL is on Google’, the canonical you intended, and a recent crawl date. Then export the Pages report and classify every excluded URL as healthy, harmful or unknown.
3. Rendering — does the content exist after JavaScript runs?
Modern sites often deliver an empty shell and build the page in the browser. Search engines can execute JavaScript, but rendering is queued, costly and not guaranteed for every URL. Anything that matters — titles, headings, body copy, links, structured data, canonicals — should be present in the HTML the server sends.
- Compare the raw HTML (view source) with the rendered DOM (developer tools) for each template. Main content, navigation links and metadata should be in both.
- Server-side rendering, static generation or pre-rendering is in place for indexable templates. Client-only rendering is reserved for interactive, non-indexable states.
- Canonicals,
noindexand hreflang are not injected by client-side scripts that can fail or run late. - JavaScript errors in the console do not prevent the main content from rendering.
- Lazy-loaded content that should be indexed (product grids, article bodies) loads without user interaction.
- Search Console’s URL Inspection Test live URL shows the rendered HTML with the content present and no blocked resources.
4. Architecture and internal links
Architecture decides where crawl attention and authority go. A page that is four clicks deep with one incoming link will be crawled rarely and ranked weakly, whatever its content. The audit asks whether the structure of the site reflects the structure of the business — the argument made in The Architecture of Organic Growth.
Click depth
- Money pages are reachable within three clicks of the home page. Use the crawler’s depth report and sort by commercial value.
- Category and hub pages link to everything beneath them without relying on ‘load more’ interactions.
Orphans and dead ends
- No indexable page has zero internal links pointing at it (compare sitemap URLs with the crawl).
- No indexable page has zero outgoing internal links.
- Broken internal links (
404) and links to redirects are fixed at source, not just tolerated.
Faceted navigation and filters
- Filter combinations that have search demand are indexable, static URLs with unique content; everything else is canonicalised, noindexed or kept out of the crawl.
- Sort orders, view modes and session parameters never create indexable URLs.
Anchor text and link placement
- Anchor text describes the destination (‘technical SEO services’, not ‘click here’).
- Key pages receive links from body copy, not only from navigation and footers.
- Breadcrumbs are present, consistent with the hierarchy, and marked up with
BreadcrumbList.
5. Performance and Core Web Vitals
Performance is a ranking signal, a conversion factor and a crawl-efficiency factor. Google assesses it with three Core Web Vitals, measured on real users over the previous 28 days. Lab tools help you find causes; only field data tells you whether you pass.
| Metric | Measures | Good | Needs improvement | Poor |
|---|---|---|---|---|
| Largest Contentful Paint (LCP) | How long the main content takes to appear | ≤ 2.5 s | 2.5 – 4.0 s | > 4.0 s |
| Interaction to Next Paint (INP) | How quickly the page responds to input | ≤ 200 ms | 200 – 500 ms | > 500 ms |
| Cumulative Layout Shift (CLS) | How much the layout moves while loading | ≤ 0.1 | 0.1 – 0.25 | > 0.25 |
Thresholds as published by Google and web.dev. A page group passes when it is ‘Good’ on all three at the 75th percentile.
- The Search Console Core Web Vitals report shows no ‘Poor’ URL groups on mobile for money templates.
- The LCP element is server-rendered, not lazy-loaded, and its image is sized, compressed and preloaded where appropriate.
- Fonts are subset, limited to the weights actually used, and loaded with
font-display: swapor an equivalent that avoids invisible text. - Third-party scripts (tags, chat widgets, consent tools) are loaded after the main content, and each one has an owner who can justify it.
- Images and embeds carry explicit dimensions so nothing shifts when they load.
- Long JavaScript tasks are split or deferred; total blocking time on the main templates is under control.
- Caching headers and a CDN serve static assets; HTML responds quickly (server response time under roughly 600 ms is a reasonable target).
6. Structured data and entity clarity
Structured data tells machines what a page *is* — an organisation, a product, an article, a set of questions — and connects it to entities elsewhere. It earns rich results in search and, increasingly, it helps answer engines parse and attribute your content, which we cover in How to Get Cited by AI Answer Engines.
- An
Organization(or the relevant subtype) is declared once, site-wide, with a stable@id, name, logo, URL andsameAslinks to the profiles that describe the company elsewhere. - Each template declares the type that matches its content:
Productwith offers and availability,Articlewith author and dates,Service,FAQPage,BreadcrumbList. - Every property in the markup is visible on the page. Marking up content the user cannot see is a spam-policy risk.
- Markup validates in the Rich Results Test and the Schema Markup Validator with no errors; warnings are reviewed, not ignored.
- Search Console’s enhancement reports show no invalid items for the templates that matter.
- Names, addresses, product names and prices in the markup match the visible page and the rest of the web.
7. International and language versions
If you serve more than one language or market, the audit must check that each version is discoverable, distinguishable and correctly related. Hreflang faults are common because they are easy to get half right.
- Each language or market version lives at its own crawlable URL (subdirectory, subdomain or ccTLD) — never behind a cookie, IP detection or a JavaScript switch alone.
hreflangannotations are reciprocal (every version lists every other version, including itself) and use valid language-region codes.- An
x-defaultis declared for the fallback or language-selector page. - Hreflang targets are canonical, indexable
200URLs — not redirects, not noindexed pages. - Automatic redirection by IP or browser language does not prevent crawlers from reaching every version.
- Content is genuinely localised for the market, not machine-translated word for word; search demand and terminology differ by country.
8. Security, redirects and hygiene
- The whole site is served over HTTPS,
http://redirects tohttps://in one hop, and there is no mixed content. - One hostname is canonical (
wwwor not); the other redirects permanently. - Security headers are set (
Strict-Transport-Security,Content-Security-Policyor at leastX-Content-Type-OptionsandReferrer-Policy). - Titles are unique and descriptive per page; meta descriptions exist for money pages; no template leaves them empty.
- One
<h1>per page that describes the page; headings form a sensible outline. - Images have descriptive
alttext where they carry meaning. - Custom
404page returns a real404status and links back into the site. - Legacy URLs from previous designs or domains still redirect to their current equivalents.
- No accidental indexable duplicates of the site (mirrors, CDN hostnames, print versions, AMP leftovers).
Prioritising: what to fix first
Crawlers produce long lists. The audit’s job is to turn the list into a short, ordered backlog. Rank each finding by the number of pages it affects, the commercial value of those pages and the effort to fix it. Template-level faults on money pages come first; page-level warnings on utility pages come last or never.
| Order | Class of issue | Why it comes here |
|---|---|---|
| 1 | Money pages not indexable (noindex, robots block, wrong canonical, soft 404) | Nothing else matters for a page that is not in the index. |
| 2 | Content missing from server HTML on indexable templates | The page is indexed as something far thinner than it is. |
| 3 | Duplicate URL sets without canonicals; redirect chains | Authority is split or leaked across versions. |
| 4 | Architecture: orphaned or deep money pages, broken internal links | Determines how much of the site’s authority reaches the pages that earn. |
| 5 | Core Web Vitals ‘Poor’ groups on mobile | A ranking, conversion and crawl-efficiency factor across whole templates. |
| 6 | Structured data errors on eligible templates | Rich results and entity clarity — valuable, but only after the above. |
| 7 | Hreflang, hygiene, titles and descriptions | Important at scale; rarely the ceiling on their own. |
Day 1 — Evidence
Export the Search Console Pages, Sitemaps and Core Web Vitals reports. Run a full crawl with JavaScript rendering enabled. Pull the last 30 days of bot requests from the logs.
Day 2 — Crawlability and indexation
Classify every excluded URL. URL-inspect the top money pages. Check robots.txt, sitemaps, canonicals and status codes against the checklist above.
Day 3 — Rendering and architecture
Compare raw and rendered HTML per template. Map click depth, orphans and internal link counts for money pages.
Day 4 — Performance, structured data and international
Review field data by template. Validate markup. Check hreflang reciprocity if applicable.
Day 5 — Backlog and proof plan
Write the prioritised backlog. For each item, state the template, the fix, the owner and the evidence that will prove it worked.
How often to audit
A full audit belongs at the start of an engagement, before any migration or redesign, and annually thereafter. Between full audits, a lighter monitor is enough: the Search Console Pages and Core Web Vitals reports reviewed monthly, a crawl of the money templates after every release, and an alert on any change to robots.txt, sitemaps or the noindex state of key templates.
The most damaging technical faults we see are introduced by releases — a rebuilt template, a new framework version, a plugin update — rather than by slow decay. Treating a technical check as part of the release process costs a few minutes and prevents most of them. If you are planning a replatform, read Website Migration Without Losing Organic Traffic before you start.
The bottom line
- A technical audit checks the chain of machine decisions between your codebase and the index: fetch, render, keep, understand, load. Work through it in that order.
- Start from Search Console’s Pages report and classify every exclusion as healthy or harmful before running anything else.
- Fix at the template level, prioritise by pages affected × commercial value, and record the evidence that will prove each fix.
- Pass Core Web Vitals on field data, by template, on mobile.
- Re-run the full audit before any migration and once a year; monitor monthly and after every release in between.
Frequently asked questions
- How long does a technical SEO audit take?
- For a site of a few hundred to a few thousand pages, a thorough audit takes about a working week using the day-by-day plan above. Very large sites (hundreds of thousands of URLs) take longer because crawl waste and log analysis dominate, but the method is the same.
- Which free tools are enough to run this audit?
- Google Search Console, Bing Webmaster Tools, PageSpeed Insights, the Rich Results Test and a browser’s developer tools cover most of it. A crawler with a free tier (Screaming Frog crawls 500 URLs free) covers the rest for small sites. Server logs come from your hosting or CDN.
- How do I know if a fix worked?
- Define the proof before you make the change. For indexation faults, use URL Inspection and the Pages report after a recrawl. For rendering, compare raw and rendered HTML again. For performance, watch the 28-day field data for the affected template. For architecture, re-crawl and compare depth and link counts.
- Should I request indexing for every page after fixing something?
- No. Manual indexing requests are rate-limited and are best reserved for a small number of high-value new or changed pages. For everything else, an accurate sitemap with updated
lastmoddates and good internal links is faster and more reliable. - Does a technical audit cover content quality?
- Only at the edges — thin or duplicate pages show up as indexation faults. Content quality, intent match and information architecture are a separate review; our Content & Information Architecture work covers that side.
- What is the single most common expensive fault?
- A
noindexor a wrong canonical on a template that also serves money pages, usually left over from a staging environment or a redesign. It is invisible to users, easy to introduce, and it removes whole sections of a site from search at once.
How this guide was put together
- The checklist is the one used at the start of Lucidens engagements, refined across ground-up builds and existing sites. Thresholds and exclusion reasons are taken from Google’s public documentation, linked below.
- The example in the rendering section is anonymised from practice; it describes a pattern, not a named client result.
Sources
- Google Search Central — Robots.txt introduction and guide
- Google Search Central — Consolidate duplicate URLs (canonicalisation)
- Google Search Central — JavaScript SEO basics
- Google Search Central — Page indexing report
- Google Search Central — Core Web Vitals and Google Search results
- web.dev — Web Vitals
- Google Search Central — Managing multi-regional and multilingual sites
- Google Search Central — Structured data general guidelines
- Lucidens — Technical SEO service
Founder of Lucidens. A decade of organic-search practice across English-, French- and Arabic-speaking markets, with a particular interest in measurement and in how answer engines choose their sources.
Related capabilities
- Technical SEO
Crawlability, rendering, performance and indexation — engineered so nothing you publish is lost.
- Measurement & Intelligence
Attribution you can defend to a board, and the evidence to decide what to do next.
- Content & Information Architecture
What you say, how it is organised, and how each part supports the whole.
Related case studies
- Turning an existing ecommerce site into an organic growth channel
Improving search visibility and building a stronger path from Google discovery to commercial outcomes.
- Building search visibility for a digital-product marketplace
Helping an existing creator platform turn organic discovery into a scalable acquisition channel.
Related research
- How to Get Cited by AI Answer Engines
A practical guide to becoming a source that Google’s AI Overviews, ChatGPT, Perplexity, Copilot and Gemini can retrieve, verify and cite — covering crawler access, answer-first structure, verifiable facts, entity clarity, authority and measurement.
- Website Migration Without Losing Organic Traffic
The complete checklist for a replatform, redesign, URL restructure or domain change — baseline, redirect map, staging parity, launch day and the first eight weeks — so that the demand you have earned survives the move.
- How to Measure SEO ROI: A Board-Level Framework
A four-tier measurement framework that turns organic search from a rankings report into a number a CFO will accept — baseline, attribution, incrementality, the ROI formula with a worked example, and what to report to whom.
Want us to run this audit for you?
We deliver the prioritised backlog, the proof plan and the template-level fixes with your engineers. A first conversation is forty-five minutes with a partner.