Technical SEO audit checklist for Canadian sites in 2026 — 80-point framework
Cheat sheet

Technical SEO Audit Checklist (2026): The 80-Point Framework

A working technical SEO audit checklist — every item we actually check on a real Canadian client audit, organized so you can work through it linearly. Print, copy, or use it as your team's QA spec.

12 min read
·
2,150 words
·
Updated May 2, 2026
·By Martin Vassilev

The template approach in one paragraph

Most published technical SEO audit checklists are either too high-level to action ('check robots.txt') or too long to use ('487 items, with 300 redundant'). This is the working 80-point checklist we use on real Canadian client audits in 2026, organized into eight workstreams: crawlability and indexation, Core Web Vitals and performance, schema and structured data, mobile and accessibility, internal linking and IA, security and tech-debt, AI-search readiness, and Canadian-context items (hreflang, Markets/multi-region, accessibility law). Work through it linearly. Document each finding with severity and effort. The output is a prioritized backlog, not a 60-page PDF nobody reads.

How to use the checklist

Work through the workstreams linearly. For each item, document: status (pass/fail/partial), severity (P0 / P1 / P2 / P3), effort estimate (hours), and notes. The output should be a prioritized backlog of fixes — not a narrative report.

Tools you'll need: Screaming Frog or Sitebulb (site crawler), Google Search Console access, PageSpeed Insights, Schema.org validator, accessibility testing tool (axe DevTools or WAVE), and a representative mobile device (real device, not just emulator).

Crawlability and indexation (12 items)

  • 1. robots.txt is correct and not blocking critical assets
    Pull /robots.txt. Verify CSS/JS aren't disallowed. Verify staging-environment Disallow: / hasn't leaked to production.
  • 2. XML sitemap exists and is valid
    /sitemap.xml or /sitemap_index.xml. Validates against XML schema. Submitted in GSC.
  • 3. Sitemap doesn't list noindex / 404 / redirected URLs
    Crawl the sitemap; flag anything that doesn't return 200 + index.
  • 4. GSC Pages report: Indexed count is reasonable for site size
    If indexed count is dramatically lower than expected, investigate.
  • 5. GSC Pages report: 'Crawled, not indexed' has a manageable count
    A bloated 'crawled not indexed' bucket suggests thin content or canonicalization issues.
  • 6. No infinite-loop crawl traps
    Faceted URLs that generate combinations infinitely. Calendar widgets without crawl boundaries. Common in WooCommerce, Shopify with poorly-configured filters.
  • 7. Canonical tags self-reference where appropriate
    Every indexable page canonicals to itself unless intentionally consolidating. Common bug: canonical pointing to root or homepage.
  • 8. Pagination handled correctly
    If using paginated lists, decide between rel=next/prev (deprecated by Google but still respected by Bing), self-canonical with prevention of duplicate content, or noindex on pages 2+. Document the decision.
  • 9. No accidental noindex on commercial pages
    Crawl and check meta robots / X-Robots-Tag headers on every commercial-intent URL.
  • 10. Redirect chains under 2 hops
    Long redirect chains lose equity. Map and consolidate.
  • 11. Internal links use canonical URLs (no parameters, trailing slash discipline)
    Inconsistent internal linking creates duplicate-URL signals.
  • 12. 404s have helpful content + return correct status code
    Soft 404s (404 page that returns 200) confuse Google; verify the response code.

Core Web Vitals and performance (10 items)

  • 13. CRUX field data passing on 75%+ of templates
    GSC Core Web Vitals report. Use field data, not lab data, as truth.
  • 14. LCP < 2.5s on key templates
    Homepage, top 5 commercial templates, top 5 content templates.
  • 15. INP < 200ms on key templates
    INP replaced FID in 2024. Audit interactive elements: chat widgets, A/B testing scripts, analytics tags.
  • 16. CLS < 0.1 on key templates
    Reserved space for images, no late-loading ads/widgets that shift layout.
  • 17. Image optimization: AVIF/WebP, properly sized, lazy-loaded
    Modern formats served via <picture>, srcset for responsive sizing, lazy-load below the fold.
  • 18. Font loading: preload critical fonts, font-display: swap
    Prevents FOIT; reduces CLS from font swap.
  • 19. CSS/JS bundle size: critical CSS inline, defer non-critical JS
    Lighthouse 'Eliminate render-blocking resources' should be empty.
  • 20. Caching strategy: aggressive on static assets, sensible on HTML
    Cache-Control headers correctly set per asset type.
  • 21. Third-party script audit: every tag justified, async/defer where possible
    Most sites carry 5–15 dead tags from old marketing tools. Audit and remove.
  • 22. CDN edge presence in Canada (Toronto/Vancouver POPs)
    Cloudflare, Fastly, Akamai all have strong Canadian presence. Sites hosted US-East lose 80–200ms TTFB on Canadian traffic without a Canadian-edge CDN.

Schema and structured data (10 items)

  • 23. Organization schema sitewide in <head>
    Single Organization @id used as reference everywhere else.
  • 24. WebSite schema with SearchAction (if site has internal search)
    Enables Google sitelinks-search-box rendering.
  • 25. BreadcrumbList schema on every nested page
    Improves SERP rendering, helps Google understand IA.
  • 26. Article / NewsArticle / BlogPosting on content pages
    With author, datePublished, dateModified, image, publisher.
  • 27. FAQPage on pages with genuine Q&A content
    5–10 real questions/answers. Don't FAQ-spam pages without real Q&A.
  • 28. Product / Offer (with priceCurrency: 'CAD' for Canadian commerce)
    On every product page. AggregateRating where reviews exist.
  • 29. LocalBusiness or specific subtype on local-services pages
    Use the most specific subtype (Dentist, AttorneyLaw, HVACBusiness, etc.) where available.
  • 30. Author Person schema with @id
    Enables author-knowledge-panel features and improves E-E-A-T signaling.
  • 31. Speakable schema on long-form content
    Enables voice-assistant excerpting. Low-effort, increasingly relevant for AI search.
  • 32. All schema validates against Schema.org + Google Rich Results Test
    No syntax errors, no invalid types, no missing required properties.

Mobile and accessibility (10 items)

  • 33. Mobile-first index status confirmed in GSC
    Settings → Indexing crawler. Should show 'Googlebot Smartphone'.
  • 34. Tap targets ≥ 48×48 CSS pixels with adequate spacing
    Test on real device. Buttons/links too small or too close trigger Core Web Vitals 'tap target' warnings.
  • 35. Text readable without zoom (16px minimum on mobile)
    Below 16px causes iOS to auto-zoom on focus, hurting UX.
  • 36. Viewport meta tag correctly configured
    <meta name='viewport' content='width=device-width, initial-scale=1'>. Verify present sitewide.
  • 37. Hamburger nav opens with adequate touch target and accessible focus
    Keyboard-accessible, screen-reader-announced.
  • 38. Color contrast ratios meet WCAG 2.2 AA minimum
    4.5:1 for body text, 3:1 for large text. Test with axe DevTools.
  • 39. All images have meaningful alt text (or empty alt for decorative)
    Audit at least the homepage and top 10 templates.
  • 40. All form inputs have associated labels
    <label for=''> or aria-label. Critical for screen readers.
  • 41. Heading hierarchy is logical (no skipped levels, one H1 per page)
    Affects both accessibility and SEO.
  • 42. Site usable with keyboard alone (Tab, Enter, Escape)
    Nav, modals, forms all keyboard-operable. Visible focus indicators.

Internal linking and IA (10 items)

  • 43. Every commercial page reachable in ≤3 clicks from homepage
    Pages buried 5+ clicks deep usually under-perform.
  • 44. No orphaned indexable pages (zero internal links)
    Crawl identifies orphans. Either link them in or noindex them.
  • 45. Anchor text is descriptive, not 'click here' / 'learn more'
    Audit top 100 internal links. Anchor text should describe the destination.
  • 46. Top-level navigation: 4–7 items, not 12+
    More than ~7 nav items dilutes signal flow.
  • 47. Footer links: include orphan-prone deep pages, but limit to 30–60 total
    Footer is a useful link surface, not infinite.
  • 48. Hub pages exist for major topic clusters
    Each topical cluster has a hub page that links out to the cluster pages and back.
  • 49. Related-content modules on long-form pages
    3–5 related pages per long-form article, contextually relevant.
  • 50. Internal links to canonical URL versions only
    No links to /page?utm=internal or trailing-slash inconsistencies.
  • 51. No-follow only used intentionally (paid links, untrusted UGC)
    Audit nofollow usage; remove from internal links.
  • 52. Page depth distribution is reasonable
    Most pages within 3 clicks of homepage; nothing unintentionally beyond 5.

Security and tech-debt (8 items)

  • 53. HTTPS sitewide, HTTP redirects to HTTPS
    Test with non-HTTPS request — should 301 to HTTPS.
  • 54. SSL certificate valid and renews automatically
    Lapse-prone SSL is one of the most common avoidable downtime causes.
  • 55. HSTS header set with reasonable max-age
    Strict-Transport-Security header. Improves security posture.
  • 56. No mixed-content warnings
    All assets (images, scripts, fonts) loaded over HTTPS.
  • 57. CMS, plugins, server software up to date
    Outdated WordPress, Shopify themes, etc. are both security and ranking risks.
  • 58. No leaked staging environments
    Crawl for staging.* subdomains, dev.* subdomains, or preview branches that are accidentally indexed.
  • 59. Server response codes correct
    200 for content, 301 for permanent redirects, 404 for missing, 410 for permanently gone, 503 for temporary outage. Wrong codes cause indexation issues.
  • 60. CDN/server logs available for at least 30 days
    Required for diagnosing intermittent issues.

AI-search readiness (10 items)

  • 61. /llms.txt published and current
    Top-level summary file for AI assistants. Lists key URLs and topics.
  • 62. /llms-full.txt published with deeper content surface
    Full content listing in AI-friendly format.
  • 63. Question-format article titles where intent matches
    AI assistants extract more readily from question titles.
  • 64. Direct answer in the first paragraph of long-form content
    AI assistants extract lead paragraphs for citation.
  • 65. FAQPage schema with real, substantive Q&A
    Highest-leverage schema for AI-citation visibility.
  • 66. Author bio with credentials and Person schema
    AI assistants weight author identity heavily.
  • 67. Updated dates visible and accurate
    Both human-readable and dateModified in schema.
  • 68. Content not blocked from AI crawlers (unless intentional)
    Verify GPTBot, ClaudeBot, PerplexityBot are allowed in robots.txt unless you've made an intentional decision to block them.
  • 69. Original perspective or data in cornerstone content
    AI-citation models prefer content with unique signal over content that's a synthesis of competitors.
  • 70. Speakable schema on key content
    Improves voice-assistant excerpting, increasingly cited by AI surfaces.

Canadian-context items (10 items)

  • 71. CAD currency in Product/Offer schema for Canadian commerce
    priceCurrency: 'CAD'. Critical for Canadian Shopping/SERP rendering.
  • 72. addressCountry: 'CA' in LocalBusiness/Organization schema
    Establishes Canadian entity.
  • 73. Canadian phone number format (+1)
    telephone: '+1-416-555-0100'. International prefix included.
  • 74. Hreflang for English/French Canada (if bilingual)
    <link rel='alternate' hreflang='en-CA' href='...'> and 'fr-CA'. Bidirectional, correct, complete.
  • 75. French content for Quebec audience (if serving Quebec commercially)
    Quebec Bill 96 imposes language requirements on commercial communications.
  • 76. Canadian-hosted or Canadian-edge CDN for Canadian traffic
    Materially improves TTFB for Canadian users.
  • 77. AODA accessibility compliance (if Ontario-serving)
    Ontario's Accessibility for Ontarians with Disabilities Act applies to most public-facing sites.
  • 78. PIPEDA-compliant lead forms
    Privacy compliance for Canadian lead capture.
  • 79. CASL-compliant email capture
    Marketing-email opt-in language and consent record-keeping.
  • 80. GBP for Canadian locations with correct categories and Canadian address format
    Postal code format (A1A 1A1), province abbreviation (ON, BC, etc.).

Frequently Asked Questions

Implementation questions from Canadian operators.

Implementation help

Want us to implement this for you?

We'll review your current setup, deploy the template correctly for your platform, and verify it's working in production.