The exhaustive technical SEO playbook a senior in-house practitioner would actually use, with the free tools to run each check yourself.
Before content or links matter, search engines must be able to find and fetch your pages. The crawlability layer:
- **robots.txt** — allows the right bots, blocks the right paths, and explicitly allows AI crawlers (GPTBot, ChatGPT-User, ClaudeBot, PerplexityBot, Google-Extended) if you want AI citations. Validate with our robots.txt tester. - **XML sitemaps** — submitted to Google Search Console and Bing Webmaster Tools. We split large sites into category sitemaps (services, locations, products, blog) under a parent index. Generate with our XML sitemap generator. - **Internal linking** — every important page reachable in three clicks from the homepage. No orphans. Use Screaming Frog or Sitebulb to find them. - **JavaScript rendering** — server-side rendered (SSR) or static-site generated (SSG) is the safe default for SEO-critical content. Pure client-side rendering still works in 2026 but adds risk and crawl-budget cost. - **Pagination** — `rel=next/prev` is no longer a Google signal but is still good practice for users; canonical to a primary page or use proper pagination architecture. - **Faceted navigation** — controlled with `noindex,follow` on filter combinations that do not produce unique value, plus parameter handling in Search Console where applicable.
A crawled page is not necessarily an indexed page. Modern Google indexes a smaller fraction of what it crawls. The diagnosis loop:
- **Index coverage report** in Search Console — review weekly. Pay attention to *Discovered – not indexed*, *Crawled – not indexed*, and *Soft 404*. - **Site:domain.com query** — quick eyeball of indexed depth. - **Canonical hygiene** — every page has a self-referencing canonical or points to the correct preferred URL. Mixed signals (canonical to A, but internal links to B) are the #1 indexation bug we see in audits. - **Status codes** — every page returns the intended status code. Audit with our HTTP status code checker and our redirect checker. - **Duplicate content** — consolidate duplicates with 301 redirects or canonicals; do not paper over them with `noindex`. - **Thin content** — pages with under 300 words and no unique value either expand them or remove them. Bulk-thin sites get partially de-indexed under modern Google quality signals.
Core Web Vitals are a confirmed ranking signal and a confirmed conversion signal. Both matter.
**The three metrics:**
- **LCP (Largest Contentful Paint)** — the largest above-the-fold element fully renders. Target: < 2.5s on mobile. - **INP (Interaction to Next Paint)** — replaced FID in March 2024. Target: < 200ms. - **CLS (Cumulative Layout Shift)** — visual stability. Target: < 0.1.
**The fixes that move the metrics most, in order of leverage:**
1. **Image optimization** — modern formats (AVIF, WebP), explicit width/height, `loading=lazy` below the fold, responsive `srcset`. 2. **Critical CSS inlined**, non-critical CSS deferred. 3. **Render-blocking JavaScript eliminated** — defer or async every non-critical script. 4. **Web fonts**: `font-display: swap`, preloaded, subsetted. 5. **Server response time** — TTFB under 600ms. Cache aggressively, use a CDN, and pre-render where possible. 6. **Third-party scripts audited and culled.** Every analytics/marketing tag costs INP.
Measure with PageSpeed Insights, Chrome UX Report (CrUX), and the Web Vitals Chrome extension. Real-user monitoring (RUM) beats synthetic for production.
Schema is no longer optional. Specific types we recommend on every relevant page:
- **Organization** — sitewide, in the footer or `<head>`. - **WebSite** — with `SearchAction` for the search box. - **BreadcrumbList** — on every page below the homepage. - **Article** — for blog posts and guides, with `author` as a `Person`. - **FAQPage** — for any page with a genuine FAQ block. - **HowTo** — for tutorial-style content (note: rich-result eligibility is now narrowed). - **LocalBusiness** (or specific subtype) — for every location page. - **Product / Offer / Review** — for e-commerce. See E-commerce SEO Canada. - **MedicalWebPage / Physician** — for medical sites. See SEO for Doctors. - **Service** — for service pages.
Validate every templated page with Google's Rich Results Test and the Schema Markup Validator. Audit your competitors' schema with our meta tag analyzer.
**HTTPS** — non-negotiable. Every page on HTTPS, every internal link uses HTTPS, mixed-content warnings cleared.
**Redirects** — 301 for permanent, 302 only for genuinely temporary. Audit redirect chains with our redirect checker. Single-hop is target; multi-hop chains lose link equity and slow page load.
**URL structure** — readable, lowercase, hyphen-separated, no parameters where avoidable, no trailing-slash inconsistency. Pick a convention (with or without trailing slash) and enforce it sitewide via redirects.
**Hreflang** — for multi-language or multi-region sites. Common pitfalls: missing return tags, mismatched canonicals, and using language codes when you mean language-region codes (en vs en-CA). Generate with our hreflang generator and audit with hreflang checker.
**International architecture** — `country.tld` is strongest for local intent, `tld/country/` is acceptable, subdomains (`country.brand.com`) are weakest. For Canada-specific sites, `.ca` plus `en-CA` and `fr-CA` hreflang is the standard stack.
Technical SEO is not a one-time project. The weekly + monthly cadence we run on every retainer client:
**Weekly health check** (automated): - Sitemap valid and accessible - robots.txt unchanged or change reviewed - All schema validates - No new 5xx or 4xx in Search Console coverage report - Core Web Vitals not regressing in CrUX - No new orphan pages from latest crawl
**Monthly deep audit**: - Full crawl in Screaming Frog / Sitebulb - Log file analysis (where available) for crawl budget - New duplicate content review - Schema completeness across new pages - Mobile usability spot-checks
**Quarterly review**: - Full Core Web Vitals deep dive - Information-architecture review - Internal-linking audit - Competitor technical comparison
More important, not less. AI engines depend on clean technical fundamentals to crawl and parse your content. A site with broken schema, blocked crawlers, or 5xx errors will not be cited by any AI engine, full stop.
Quarterly for most sites; monthly for sites that ship code changes weekly; ad-hoc immediately after a Core Update or a major release.
Yes. CWV is a tiebreaker in competitive sets and a direct conversion factor independent of rankings. A 1-second improvement in LCP regularly moves conversion rate by 4–7%.
Conflicting canonicals — the canonical tag points to one URL but internal links and sitemaps point to another. We see this in roughly 60% of audits.
Yes, with care. Use Next.js, Nuxt, Astro, or any framework with SSR/SSG. Pure client-side React or Vue still works but adds risk and is harder to debug.
Google Search Console URL Inspection tool, Coverage report, and a `site:domain.com URL` query. Cross-check all three.
Crawl budget is the number of pages Googlebot will fetch from your site in a given period. Sites under ~10,000 pages rarely need to think about it. Larger sites must manage it through internal linking, log file analysis, and selective `noindex`.
Yes. Schema helps with entity disambiguation and AI citations even when no rich result is granted. The marginal cost of valid schema is near zero; the upside is meaningful.