Technical SEO has a packing problem. Every year the checklist grows: more schema types, more Core Web Vitals nuances, more JavaScript frameworks, more parameter combinations. Teams respond by running longer crawls and exporting longer spreadsheets. The spreadsheet gets thicker. The decisions do not.
This guide is a filter for mid-2026. It names the checks that usually change organic outcomes, and the checks that can wait. It assumes you want an audit as a working product for engineering and SEO operators, not a score to screenshot.
Crawl access before on-page polish
If Googlebot cannot fetch a URL class cleanly, title rewrites will not save it. Start with robots.txt, HTTP status patterns, host canonicalisation (http/https, www/non-www), and accidental authentication walls on staging leftovers that still attract links.
- Confirm robots.txt allows the sections you want crawled and blocks only intentional traps.
- Sample status codes by template: 200, 3xx chains, soft 404 HTML on 200, real 404/410 policy.
- Check whether XML sitemaps list only canonical, indexable URLs you still want fetched.
- Look for crawl traps: calendars, facets, sort params, and session IDs with unbounded growth.
Server logs, when you can get a sample, beat guesswork. They show what bots actually request versus what your sitemap advertises. A technical SEO audit that never reconciles those two views is incomplete for large sites.
Index intent: what should compete in search
Crawlable is not the same as index-worthy. Many sites invite Google into parameter space, tag archives, printer views, and thin variants, then wonder why strong category pages look weak. Index intent means writing an explicit policy per URL class.
| URL class | Desired state | Primary control | Audit question |
|---|---|---|---|
| Category templates | Indexed | Self-canonical + internal links | Are facets spawning competing indexables? |
| Product detail pages | Indexed when in stock / available | Canonical + availability rules | Do variants create duplicates? |
| Filter and sort URLs | Not indexed | noindex or canonical to clean URL | Does navigation still expose infinite combinations? |
| Internal search results | Not indexed | noindex,follow or robots block | Are they still in sitemaps? |
| Utility and account pages | Not indexed | noindex | Do they attract accidental external links? |
Validate the policy against Search Console coverage samples, not only against your CMS settings. Settings drift. Plugins override headers. Edge rules disagree with HTML robots meta. When large sections show “Crawled - currently not indexed,” dig into quality and duplication causes with this diagnosis guide rather than mass-resubmitting sitemaps.
Rendering and HTML fidelity
Modern front ends often ship a shell first. If primary copy, product data, or internal links arrive only after client-side work, some crawls see less than users see. Your audit should sample critical templates in both raw HTML and rendered DOM.
What to compare on each sample
- Title, meta robots, and canonical in source versus rendered output.
- Presence of main content blocks and key headings.
- Internal links that appear only after interaction or hydration.
- Structured data that is injected late or duplicated after render.
- Soft failure states: empty product grids, skeleton screens that never fill for bots.
You do not need to render every URL. You need representative samples per template and a clear note when a framework pattern fails. That note should become an engineering ticket with acceptance tests, not a vague “JS SEO issue” line in a deck.
Pseudo-check: compare canonical values before and after render
// Conceptual check used during template sampling
function getCanonical(doc) {
const link = doc.querySelector('link[rel="canonical"]');
return link ? link.href : null;
}
const sourceCanonical = getCanonical(sourceDocument);
const renderedCanonical = getCanonical(renderedDocument);
if (sourceCanonical !== renderedCanonical) {
// Flag: template emits conflicting signals across render stages
}Canonicals, duplicates, and consolidation
Canonical tags are easy to deploy and easy to deploy wrong. Common failure modes in 2026 still include self-canonical loops across parameter variants, absolute/relative inconsistencies, canonicals pointing to redirected URLs, and CMS defaults that canonicalise everything to the homepage during incidents.
Duplicate clusters are not only URL parameters. They include HTTP mirrors, trailing-slash pairs, print pages, UTM-indexed accidents, and regional pages that reuse the same body with a city name swapped. For ecommerce catalogues, variant handling deserves its own pass inside an ecommerce SEO audit because PDP duplication can quietly split reviews, links, and rankings.
If two URLs can rank for the same intent and both remain indexable, decide which one should win and enforce that decision everywhere: links, sitemaps, canonicals, and redirects.
Internal links and information architecture signals
Internal links are still how you tell crawlers which pages matter. Audits that only count orphan URLs miss the more common failure: important pages exist, but they sit behind weak nav paths, paginated voids, or JavaScript menus that never expose hrefs in the rendered HTML.
- Map click depth from the homepage to money templates.
- Check whether breadcrumbs reflect the preferred hierarchy.
- Find high-value pages with few meaningful inlinks from relevant hubs.
- Remove or nofollow only when there is a clear reason; do not “sculpt PageRank” as theatre.
Index bloat often starts as an internal linking problem. If every tag, facet, and archive is one click away from the blog index, bots will spend time there. For measurement approaches, see index bloat: find it and what it costs.
Performance where it changes crawl or conversion
Core Web Vitals still matter, but a technical audit should not become a vanity race against lab scores. Prioritise templates with organic traffic and conversion value. Identify the owner of the delay: hero images, third-party tags, font loading, client-side routing, or oversized above-the-fold scripts.
Field data beats a single Lighthouse run on a laptop. Use CrUX or Search Console experience reports to see where real users struggle. Then tie recommendations to components engineers recognise. “Compress images” is weak. “The category template loads three unresized hero variants before first paint” is strong.
What can wait until the foundations hold
Optional work is not worthless. It is just later. After crawl access, index intent, render fidelity, canonical consolidation, internal linking, and money-template performance are under control, you can schedule nicer schema coverage, meta description generation at scale, and edge-case hreflang tidy-ups.
Also decide whether you need a one-time audit or an operating rhythm. Some sites change weekly. Others are stable for months. Match the audit cadence to release frequency so findings do not rot between crawls.
Finally, keep findings ticket-ready. A technical audit that ends with “improve site architecture” without naming templates, URL rules, and verification steps will lose to every product feature in the backlog. The checks above matter because they translate into concrete changes with observable outcomes in crawl stats, index coverage, and landing-page performance.
