Technical SEO checklist
Technical SEO makes sure search engines can actually find, crawl, understand and index your pages. A site can have brilliant content and still be invisible in search if the technical foundation is broken.
Crawlability & indexing
robots.txtexists at the domain root and doesn't accidentally block pages you want indexed- An XML sitemap exists, lists current URLs, and is referenced from
robots.txt - The sitemap has been submitted in Google Search Console (and Bing Webmaster Tools, if relevant to your audience)
- Pages that should be indexed don't carry a stray
noindextag left over from staging - Pages that genuinely shouldn't be indexed (internal search results, thank-you pages, staging duplicates) are marked
noindexdeliberately - Very large sites split sitemaps into multiple files with a sitemap index, since a single sitemap has practical size limits
⚠️ The single most common technical-SEO disaster at launch: a site built on a staging subdomain with a sitewide
noindex or a blanket Disallow: / in robots.txt—and nobody removes it when the real domain goes live. Check this explicitly in the launch day checklist.Canonical tags
- Every page has a self-referencing canonical tag, or points to the correct canonical version if duplicate content exists
- The site is consistently accessible at one version of the domain—not indexable at both
wwwand non-www, or bothhttpandhttps - Parameter-based duplicate URLs (sorting, filtering, tracking parameters) canonicalize back to the clean version
Site architecture
- The site follows a logical, shallow hierarchy—important pages aren't buried many clicks deep
- A clear navigation and, where useful, breadcrumb structure helps both users and search engines understand page relationships
- Category and hub pages exist to group related content, rather than leaving pages disconnected
- Pagination on long listings uses clear, crawlable links rather than infinite scroll with no fallback for crawlers
Redirects & error handling
- Old URLs from a previous version of the site 301-redirect to their new equivalents, not to a generic homepage
- There are no unnecessary redirect chains (URL A → B → C should be A → C directly)
- Redirects preserve the query string or fragment where the target page still needs that information, rather than dropping it silently
- Broken internal links (404s) have been crawled for and fixed before launch
- A proper 404 status code is returned for missing pages—not a 200 status on a page that says "not found" (a "soft 404")
- A full crawl of the site has been run with a site crawler (such as Screaming Frog SEO Spider, which is free for small sites) to catch broken links, redirect chains and orphan pages before they're found the hard way
Structured data & rich results
- Applicable Schema.org markup is implemented (Organization, WebSite, Article, Product, FAQPage, BreadcrumbList, etc.)—see the structured data checklist
- Markup is tested with Google's Rich Results Test and free of errors
- Structured data is kept in sync when the visible page content changes—stale markup describing removed content is a real risk
International & crawl-budget considerations
- Sites targeting more than one language or region use
hreflangcorrectly rather than relying on browser auto-translation alone—see the international SEO checklist - On very large sites, low-value URLs (endless filter combinations, internal search results) are kept out of the crawlable, indexable set so crawlers spend their time on pages that matter
- Server response codes are checked for consistency—pages don't flip between 200 and 404/500 depending on load or caching state
JavaScript rendering & crawlability
- Content that needs to be indexed doesn't depend entirely on client-side JavaScript running successfully—critical text and links are present in, or reachable from, what a crawler actually receives
- Pages have been checked with a tool's "rendered HTML" or fetch-and-render view (Search Console's URL Inspection tool shows this) to confirm what's actually being indexed matches what a visitor sees
- Internal links are real
<a href>elements, not JavaScript click handlers on non-link elements that a crawler can't follow - Content that loads only after a user interaction (a click to "load more", an infinite-scroll trigger) has a crawlable fallback, such as paginated links, so it isn't invisible to search engines
Search Console & monitoring
- The site is verified in Google Search Console under the correct property
- Coverage and indexing reports are checked after launch for crawl errors
- Core Web Vitals reports in Search Console are reviewed periodically (see the performance checklist)
- Manual actions and security-issue reports are checked, especially after any major site change
Pair this with the on-page SEO checklist for content-level optimization, and see analytics & tracking setup for getting Search Console and analytics wired up correctly. If you're moving an existing site rather than launching a new one, the site migration checklist covers the redirect and monitoring work in far more depth.