The Complete Technical SEO Audit Checklist for 2026
The 52-point checklist our auditors run on every site, grouped by crawlability, indexation, rendering, performance, structured data and mobile, with the tools and the fix for each item.
The Complete Technical SEO Audit Checklist for 2026
A technical SEO audit answers one question: can search engines find, render, understand and rank every page that matters on your site? Everything else, keywords, links, content, only works once the technical layer is sound.
This is the checklist our auditors run on every engagement. It is organized in the order problems compound: a crawl problem hides an indexation problem, which hides a rendering problem, which hides a performance problem. Work top to bottom.
1. Crawlability
If Googlebot cannot reach a URL, nothing after that matters.
robots.txt
- The file is reachable at
/robots.txtand returns200. A5xxmakes Google stop crawling the entire site. - No accidental
Disallow: /from a staging template. - CSS, JavaScript and image paths are not blocked. Google needs them to render.
Sitemap:directive points at the live sitemap URL.
Crawl traps
- Faceted navigation (
?color=red&size=m&sort=price) is either canonicalized, blocked by parameter rules or rendered as non-crawlable controls. - Calendar and pagination widgets do not generate infinite URLs.
- Session IDs and tracking parameters never appear in internal links.
- Internal search result pages (
/search?q=) are blocked ornoindex.
Redirects and status codes
| Check | Target |
|---|---|
| Redirect chains | 1 hop maximum |
| Redirect loops | 0 |
| Internal links to redirects | 0 (link to the final URL) |
| Soft 404s (200 status, "not found" content) | 0 |
| Internal links to 404s | 0 |
| HTTP to HTTPS | Single 301, HSTS enabled |
Crawl budget signals
For sites over roughly 10,000 URLs, pull server logs and compare what Googlebot actually requests against what you want indexed. If more than 20% of crawl requests land on parameter URLs, redirects or 404s, you have a crawl budget problem.
2. Indexation
The goal is a one-to-one match between the URLs you want ranked and the URLs in Google's index.
Sitemaps
- XML sitemap contains only canonical, indexable,
200URLs. - No
noindexURLs, redirects or 404s in the sitemap. lastmodis accurate (Google ignores it when it is always "today").- Submitted in Search Console and the "Discovered" count is close to the submitted count.
Canonicals
- Every indexable page has a self-referencing
<link rel="canonical">. - Canonical URLs are absolute and match the protocol, host and trailing-slash convention of internal links.
- Paginated series point to themselves, not to page 1.
- No canonical to a
noindexpage or to a redirect. - Parameter variants canonicalize to the clean URL.
Index directives
noindexis not present on money pages. Check the rendered HTML, not just the source: tag managers and A/B testing tools can inject it.- No
noindexcombined with a canonical to another URL (conflicting signals). X-Robots-Tagheaders are not accidentally set on HTML responses.
Search Console coverage
Review the Pages report. The patterns that matter most:
- Crawled, currently not indexed: usually thin or duplicate content.
- Discovered, currently not indexed: crawl budget or internal linking.
- Duplicate, Google chose different canonical: your canonical signals disagree with each other.
3. Rendering and JavaScript
Google renders pages with a recent Chromium, but rendering is deferred and budgeted.
- Primary content and internal links are present in the initial HTML, or at least in the rendered DOM without user interaction.
- Links are real
<a href>elements, notonClickhandlers. - No content behind "Load more" buttons that only fires on click.
- Lazy-loaded images use native
loading="lazy"or an IntersectionObserver that Googlebot can trigger. - The rendered page in the URL Inspection tool matches what users see.
- Hydration does not change titles, canonicals or meta robots after load.
<!-- Good: crawlable link -->
<a href="/collections/running-shoes">Running shoes</a>
<!-- Bad: invisible to crawlers -->
<span onclick="router.push('/collections/running-shoes')">Running shoes</span>
4. On-page elements
| Element | Rule |
|---|---|
| Title | Unique per page, 50 to 60 characters, primary topic first |
| Meta description | Unique, 140 to 160 characters, includes a reason to click |
| H1 | Exactly one, describes the page, not the brand |
| Heading hierarchy | H2 under H1, H3 under H2, no skipped levels |
| Image alt | Present on content images, empty (alt="") on decorative ones |
| Internal anchor text | Descriptive, not "click here" |
Duplicated titles are the single most common on-page issue we find, almost always caused by parameter URLs or templated category pages. Fix the canonical first and the titles usually resolve themselves.
5. Performance and Core Web Vitals
Google uses field data from the Chrome UX Report, not your lab score. Check both.
- LCP at the 75th percentile under 2.5 seconds on mobile.
- INP under 200 milliseconds.
- CLS under 0.1.
- TTFB under 800 milliseconds (not a ranking signal by itself, but it caps LCP).
For each failing template, identify:
- The LCP element and its load chain.
- The longest tasks blocking input.
- The elements that shift and why.
We cover each metric in depth in the Core Web Vitals developer guide and the LCP playbook.
6. Structured data
- JSON-LD, not microdata, in the
<head>or at the end of<body>. - Organization schema on the homepage with
sameAslinks. - BreadcrumbList on every inner page.
- Product, Article, FAQ, LocalBusiness or Event schema where the content type applies.
- Zero errors in the Rich Results Test; warnings reviewed.
- Schema matches visible content. Marking up reviews that users cannot see is a manual action risk.
7. Mobile
Google indexes the mobile version. Test key templates on a real mobile profile.
- Viewport meta tag present:
<meta name="viewport" content="width=device-width, initial-scale=1">. - No horizontal scroll.
- Tap targets at least 48 by 48 pixels with 8 pixels between them.
- Base font size at least 16 pixels.
- No intrusive interstitials on landing.
- Content parity: everything on desktop is on mobile, including structured data and internal links.
8. Security and hosting
- HTTPS everywhere, valid certificate, HSTS header.
- No mixed content.
- HTTP/2 or HTTP/3 enabled.
- Compression (Brotli preferred) on text assets.
- Security headers present:
Content-Security-Policy,X-Content-Type-Options,Referrer-Policy.
9. International (if applicable)
hreflangannotations are reciprocal: if page A points to B, B points back to A.- Each cluster includes a self-reference and an
x-default. - Language-region codes are valid (
en-GB, noten-UK). - Canonicals within a cluster are self-referencing, never cross-language.
10. Internal linking
- Every indexable page is reachable within 3 clicks of the homepage.
- No orphan pages (pages only in the sitemap).
- Priority pages receive links from high-authority pages, not just the footer.
- The main navigation links to fewer than 100 URLs.
Putting it together
A technical audit is only useful if it turns into shipped fixes. For every issue you find, record four things: the URLs affected, the severity, the estimated effort and the owner. Then sort by impact per hour of effort and work the top of the list.
In our experience, three or four items from this checklist account for most of the lost visibility on a typical SMB site: a missing canonical pattern, an oversized LCP image, a noindex that should not be there and a sitemap full of redirects. Find those first.
Get Your SEO Audit
Every issue in this article, checked on your site by an auditor and delivered as a prioritized roadmap within 48-72 hours.
See pricing