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 assetsPull /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 URLsCrawl the sitemap; flag anything that doesn't return 200 + index.
- 4. GSC Pages report: Indexed count is reasonable for site sizeIf indexed count is dramatically lower than expected, investigate.
- 5. GSC Pages report: 'Crawled, not indexed' has a manageable countA bloated 'crawled not indexed' bucket suggests thin content or canonicalization issues.
- 6. No infinite-loop crawl trapsFaceted URLs that generate combinations infinitely. Calendar widgets without crawl boundaries. Common in WooCommerce, Shopify with poorly-configured filters.
- 7. Canonical tags self-reference where appropriateEvery indexable page canonicals to itself unless intentionally consolidating. Common bug: canonical pointing to root or homepage.
- 8. Pagination handled correctlyIf 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 pagesCrawl and check meta robots / X-Robots-Tag headers on every commercial-intent URL.
- 10. Redirect chains under 2 hopsLong 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 codeSoft 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 templatesGSC Core Web Vitals report. Use field data, not lab data, as truth.
- 14. LCP < 2.5s on key templatesHomepage, top 5 commercial templates, top 5 content templates.
- 15. INP < 200ms on key templatesINP replaced FID in 2024. Audit interactive elements: chat widgets, A/B testing scripts, analytics tags.
- 16. CLS < 0.1 on key templatesReserved space for images, no late-loading ads/widgets that shift layout.
- 17. Image optimization: AVIF/WebP, properly sized, lazy-loadedModern formats served via <picture>, srcset for responsive sizing, lazy-load below the fold.
- 18. Font loading: preload critical fonts, font-display: swapPrevents FOIT; reduces CLS from font swap.
- 19. CSS/JS bundle size: critical CSS inline, defer non-critical JSLighthouse 'Eliminate render-blocking resources' should be empty.
- 20. Caching strategy: aggressive on static assets, sensible on HTMLCache-Control headers correctly set per asset type.
- 21. Third-party script audit: every tag justified, async/defer where possibleMost 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 pageImproves SERP rendering, helps Google understand IA.
- 26. Article / NewsArticle / BlogPosting on content pagesWith author, datePublished, dateModified, image, publisher.
- 27. FAQPage on pages with genuine Q&A content5–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 pagesUse the most specific subtype (Dentist, AttorneyLaw, HVACBusiness, etc.) where available.
- 30. Author Person schema with @idEnables author-knowledge-panel features and improves E-E-A-T signaling.
- 31. Speakable schema on long-form contentEnables voice-assistant excerpting. Low-effort, increasingly relevant for AI search.
- 32. All schema validates against Schema.org + Google Rich Results TestNo syntax errors, no invalid types, no missing required properties.
Mobile and accessibility (10 items)
- 33. Mobile-first index status confirmed in GSCSettings → Indexing crawler. Should show 'Googlebot Smartphone'.
- 34. Tap targets ≥ 48×48 CSS pixels with adequate spacingTest 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 focusKeyboard-accessible, screen-reader-announced.
- 38. Color contrast ratios meet WCAG 2.2 AA minimum4.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 homepagePages 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 totalFooter is a useful link surface, not infinite.
- 48. Hub pages exist for major topic clustersEach topical cluster has a hub page that links out to the cluster pages and back.
- 49. Related-content modules on long-form pages3–5 related pages per long-form article, contextually relevant.
- 50. Internal links to canonical URL versions onlyNo 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 reasonableMost pages within 3 clicks of homepage; nothing unintentionally beyond 5.
Security and tech-debt (8 items)
- 53. HTTPS sitewide, HTTP redirects to HTTPSTest with non-HTTPS request — should 301 to HTTPS.
- 54. SSL certificate valid and renews automaticallyLapse-prone SSL is one of the most common avoidable downtime causes.
- 55. HSTS header set with reasonable max-ageStrict-Transport-Security header. Improves security posture.
- 56. No mixed-content warningsAll assets (images, scripts, fonts) loaded over HTTPS.
- 57. CMS, plugins, server software up to dateOutdated WordPress, Shopify themes, etc. are both security and ranking risks.
- 58. No leaked staging environmentsCrawl for staging.* subdomains, dev.* subdomains, or preview branches that are accidentally indexed.
- 59. Server response codes correct200 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 daysRequired for diagnosing intermittent issues.
AI-search readiness (10 items)
- 61. /llms.txt published and currentTop-level summary file for AI assistants. Lists key URLs and topics.
- 62. /llms-full.txt published with deeper content surfaceFull content listing in AI-friendly format.
- 63. Question-format article titles where intent matchesAI assistants extract more readily from question titles.
- 64. Direct answer in the first paragraph of long-form contentAI assistants extract lead paragraphs for citation.
- 65. FAQPage schema with real, substantive Q&AHighest-leverage schema for AI-citation visibility.
- 66. Author bio with credentials and Person schemaAI assistants weight author identity heavily.
- 67. Updated dates visible and accurateBoth 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 contentAI-citation models prefer content with unique signal over content that's a synthesis of competitors.
- 70. Speakable schema on key contentImproves voice-assistant excerpting, increasingly cited by AI surfaces.
Canadian-context items (10 items)
- 71. CAD currency in Product/Offer schema for Canadian commercepriceCurrency: 'CAD'. Critical for Canadian Shopping/SERP rendering.
- 72. addressCountry: 'CA' in LocalBusiness/Organization schemaEstablishes 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 trafficMaterially 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 formsPrivacy compliance for Canadian lead capture.
- 79. CASL-compliant email captureMarketing-email opt-in language and consent record-keeping.
- 80. GBP for Canadian locations with correct categories and Canadian address formatPostal code format (A1A 1A1), province abbreviation (ON, BC, etc.).
Frequently Asked Questions
Implementation questions from Canadian operators.