WebEngine

0%
SEO & Analytics

Technical SEO Audit: What to Check, in What Order

Indexation, canonicals, hreflang, redirects, URL structure, JavaScript rendering. An audit order that surfaces expensive problems before cosmetic ones.

Pavlo9 min read

Half the "technical audits" that land on our desk for a second opinion are 400-row crawler exports where a missing alt attribute sits next to the fact that an entire catalogue is blocked from indexing. The document is formally correct and practically useless, because it never says what to fix first. What follows is the order we run on client projects: everything that removes pages from search first, and the things worth a couple of percent last.

80%

of the value sits in level one — indexation

3–5

days to audit a site under 10,000 URLs

10k

URLs — where crawl budget starts to matter

0

value from edits to a page outside the index

The order that saves weeks

Technical problems form a hierarchy, and a fault at the top invalidates every fix below it. Rewriting title tags is pointless if the page returns a 404 to the crawler, and shaving tenths of a second off LCP is pointless if half the catalogue is canonicalised into the homepage.

  1. 1

    Level 1 — can the crawler see the site at all

    robots.txt, the robots meta tag, the X-Robots-Tag header, response codes, availability from different IP ranges. One stray directive here costs more than every other finding combined.

  2. 2

    Level 2 — has the site multiplied itself

    Canonicals, filter parameters, www variants, trailing slashes, pagination, language versions. Duplicates do not "lower rankings" — they force Google to choose for you, and it picks the wrong page.

  3. 3

    Level 3 — does the structure lead anywhere

    Redirect chains, broken internal links, orphan pages, click depth, and the sitemap measured against the site as it actually exists.

  4. 4

    Level 4 — rendering and speed

    JavaScript rendering, lazily injected content, Core Web Vitals, the mobile experience. It matters, but fixing it before levels 1–3 is money on the wrong problem.

Indexation: where sites disappear most quietly

The standard disaster runs like this. Developers stand up staging with indexing disabled, then ship that config to production. The site works, customers browse, forms submit — and for two months nobody notices organic traffic decaying. That is why every audit starts here.

First pass on indexation

  • /robots.txt resolves, returns 200, and has no Disallow: / under User-agent: *
  • No production page carries <meta name="robots" content="noindex">
  • No X-Robots-Tag header arrives from the server or CDN — invisible in view-source, visible only in the HTTP response
  • The Page Indexing report in Search Console shows no spike in "Discovered — currently not indexed"
  • The sitemap contains only canonical URLs returning 200, and is referenced from robots.txt
  • The server does not return 5xx under crawler load — verified in logs, not in a browser
# Common mistake: trying to "hide" pages from the index via robots.txt
User-agent: *
Disallow: /catalog/

# This only blocks crawling. Pages that are linked from anywhere will stay
# in the index with no description — and Google never sees your noindex,
# because it is not allowed to fetch the page.

# Correct: allow crawling and set noindex in the meta tag
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml

That distinction deserves its own paragraph, because experienced teams still trip over it. Disallow controls crawling. noindex controls the index. Blocking a page that is already indexed is the fastest way to leave it in there permanently as an empty snippet.

Duplicates, canonicals and language versions

Duplication is rarely deliberate. It emerges from filters, sort orders, tracking parameters, print views and translated copies. The symptom is always the same: search shows a different page from the one you have been building links to.

SymptomLikely causeFix
A ?sort=price URL appears in resultsParameters crawlable with no canonicalCanonical to the clean URL, filter links via rel="nofollow" or POST
Both www and non-www versions liveNo 301 to a canonical hostOne server-level 301, then update sitemap and Search Console
Category dropped, pagination remainsCanonical pointing from page 1 onto all othersSelf-referencing canonical on every paginated page
Wrong language served to visitorsMissing hreflang, or one-directional tagsReciprocal hreflang across all versions plus x-default
Fifty pages share one titleTemplate without unique variable substitutionTitle formula using product, category and location
Resolve in this order: host and parameters first, then pagination, meta templates last.
  • A canonical is a hint, not an instruction. If the pages differ meaningfully, Google ignores it and indexes both; if they are genuinely identical, it is honoured.
  • Hreflang must be reciprocal: if page A points to B, B is obliged to point back. One-directional tags are discarded entirely — the most common fault on multilingual sites.
  • Canonical and hreflang do not conflict: canonicals work inside one language version, hreflang between versions. A canonical from the German page to the English one breaks both at once.
  • Tracking parameters create no duplicates as long as pages carry a self-referencing canonical. Five lines in a template close an entire class of problems.

Redirects and URL structure

Redirect chains accumulate over years: an HTTPS migration, then a catalogue restructure, then someone removes trailing slashes. The result is one external link travelling four hops, with the crawler losing interest around the third.

  1. 1Find every chain longer than one hop and rewrite the rules so the old URL lands on the final destination directly. One rule instead of three also removes 300–600 ms of time to first byte.
  2. 2Check that your 301s have not quietly become 302s. A temporary redirect left in place for a year means lost link signals, because equity transfers less reliably through it.
  3. 3Remove internal links pointing at redirects. Linking to old URLs from inside your own site burns crawl budget daily for no reason.
  4. 4Settle on one URL form: lowercase, with or without a trailing slash — applied identically everywhere, including sitemap, canonicals and internal links.

JavaScript rendering and speed

Google renders JavaScript, but does it in a second pass with no guaranteed timing. On a client-rendered site the typical gap between crawl and content appearing in the index runs from several days to several weeks. For a news project that is fatal; for a corporate site it is tolerable. How to read the specific indexing statuses and what to do about each is covered in our piece on indexing problems.

  • Test with URL Inspection in Search Console, not your browser — it shows the HTML the renderer received. Any difference from your dev tools is the diagnosis.
  • Content injected after a click or scroll does not exist for search. A product description behind a tab must still be in the HTML, even if visually collapsed.
  • Internal links have to be real <a href> elements. Navigation built on onClick with no href is a dead end — the crawler simply stops there.
  • Server rendering or static generation eliminates this whole category. That is an argument about your stack, not micro-optimisation; the trade-offs are in our piece on website loading speed.
A technical audit is not a hunt for every error. It is a hunt for the three that are stopping everything else from working.

Speed is checked last, not because it is unimportant but because it is the one category where fixes are measurable yet gradual. Thresholds and the order of work are covered in the Core Web Vitals guide; everything that should be closed before launch is in the SEO checklist for 2026.

Frequently asked questions about technical SEO audits

How often does a site need a technical SEO audit?

A full audit makes sense once a year, and is mandatory after a redesign, a CMS change, a domain move or a large release. In between, monthly monitoring of three reports is enough: page indexing, sitemap coverage and server response codes. That takes about an hour and catches most regressions before traffic feels them.

Can I run a technical audit myself?

Level one, yes — anyone attentive can check robots.txt, the robots meta tag, response codes and Search Console reports in a few hours. It gets harder at canonicals, hreflang and rendering, where you need to know how conflicting signals resolve. Clear the obvious yourself and bring in a specialist for whatever remains.

How long after a fix does traffic recover?

If the problem was indexation, pages return within a few days to three weeks depending on crawl frequency. Duplicate and canonical fixes surface more slowly — four to six weeks — because Google has to re-evaluate which page to show. Speed work is slowest and almost never visible in isolation from other changes.

What if the audit surfaces hundreds of issues at once?

Sort them by impact rather than by count. The practical rule: first everything that removes pages from the index, then everything that forces search to choose between duplicates, then structural faults, and cosmetics such as title length last. On most projects the first two groups are five or ten tasks that deliver the bulk of the result.

Does hosting affect technical SEO?

It does, more than people assume. Slow server response is added directly to every speed metric, and intermittent 5xx errors during crawler visits drop pages out of the index temporarily. Before optimising the front end, confirm time to first byte stays within 200–500 ms under real traffic.

In short

  • Audit top-down: indexation, duplicates, structure, rendering. Lower-level fixes do nothing while an upper level is broken.
  • Disallow in robots.txt blocks crawling, not indexing. Removing a page from search requires noindex plus permission to crawl it.
  • Hreflang only works reciprocally. One-directional tags are ignored and language versions end up competing with each other.
  • Redirect chains and internal links pointing at old URLs burn crawl budget daily — and both are an hour of work to fix.
  • A good audit ends with ten prioritised tasks, not a crawler export.
Share
  • technical SEO
  • audit
  • indexation

Related reading