Technical SEO Audits
A technical audit is the systematic health check that finds what's silently costing a site visibility. Done professionally, it's not a 200-row dump of crawler warnings - it's a short, prioritized list of issues with evidence, impact estimates, and owners. This is the playbook.
Before touching a tool#
Establish context, or the audit optimizes the wrong things:
- What pages make money/matter? Audit findings get weighted by the pages they affect.
- What changed recently? Migrations, redesigns, CMS swaps explain most sudden problems.
- Baseline the numbers: GSC clicks/impressions by section, indexed page count, CWV status. You'll measure the audit's impact against these.
Phase 1: Crawl the site#
Run a full crawl (Screaming Frog/Sitebulb), ideally twice - with and without JavaScript rendering - and diff. Flag:
| Check | Issue signal |
|---|---|
| Status codes | 4xx from internal links, redirect chains/loops, 5xx clusters |
| Titles/meta | Missing, duplicate, truncated at scale |
| Canonicals | Missing, pointing off-site by accident, canonical-to-redirect |
| Depth | Money pages > 3 clicks deep; orphans (crawl vs sitemap diff) |
| Duplicates | Parameter URLs, http/https, trailing-slash variants both 200 |
| JS dependency | Links/content present only in rendered crawl (JS SEO) |
Phase 2: Indexation reality#
Compare three numbers that should roughly agree: pages you intend to be indexed, pages in your sitemap, and pages Google reports indexed (GSC Indexing → Pages).
- Indexed ≪ intended: dig into GSC exclusion reasons - the debugging table covers each
- Indexed ≫ intended: index bloat - parameters, tags, search results, staging leaks. Bloat dilutes quality signals and crawl budget; fix with noindex/canonicals/robots and removal of internal links to junk URLs
- Spot-check 10–20 critical URLs in URL Inspection: Google-selected canonical, last crawl, rendering result
Phase 3: The specialized passes#
- Performance: CWV status per URL group from GSC; diagnose failures with the Core Web Vitals playbooks
- Structured data: GSC Enhancement reports for errors at template scale; validate money-page markup (guide)
- International: hreflang reciprocity, if applicable (architecture guide)
- Security/hygiene: HTTPS everywhere, mixed content, www/non-www and slash consistency enforced by single redirects
- Log files (large sites): where does Googlebot actually spend its budget? Junk URL patterns eating crawl are invisible to crawlers-from-outside but obvious in logs
Phase 4: Prioritize ruthlessly#
Score each finding impact × affected pages ÷ effort. Sort. The classic audit failure is shipping 80 equal-weight recommendations and watching none get implemented. A useful frame:
P0 active harm at scale site-wide noindex leaks, 5xx clusters,
robots.txt blocking money sections
P1 meaningful loss money pages slow/deep/uncited, index bloat,
broken canonical logic
P2 compounding hygiene redirect chains, duplicate titles,
missing schema on eligible templates
P3 polish everything else the crawler flaggedPhase 5: Verify the fixes#
An audit isn't done when the report ships:
- Re-crawl after fixes deploy; confirm the issue class is gone
- Request reindexing for critical changed URLs
- Compare the Phase-0 baselines at +30/+90 days - this is how you prove value (and calibrate your own impact estimates)
Run the full cycle quarterly for active sites, and always after migrations - which are next: Programmatic SEO first, then Site Migrations.
