Key takeaways
- Indexation comes first. Everything else is irrelevant on a page Google has not indexed.
- Most "SEO checklists" are sorted by convenience. This one is sorted by traffic impact.
- Core Web Vitals should be diagnosed from field data, not from a Lighthouse score.
- Structured data must describe content the visitor can actually see.
Most technical SEO checklists list eighty items in no particular order, which means the alt text gets fixed and the noindex tag blocking half the site does not. This one is ordered by how much traffic each item is actually costing you.
1. Indexation — check this before anything else
A page that is not indexed cannot rank. On most sites with an SEO problem, this is where the problem is.
- Open the Pages report in Google Search Console and compare indexed pages against pages you have published
- Review each exclusion reason separately — they have different causes and different fixes
- "Crawled – currently not indexed" is a quality judgement. The page needs to be materially better, not better linked
- "Discovered – currently not indexed" is usually a crawl-budget or internal-linking issue
- "Duplicate without user-selected canonical" means URL variants are competing. Add self-referencing canonicals
- "Soft 404" means the page returns 200 but looks empty. Either add real content or return a proper 404
- Search
site:yourdomain.comas a rough sanity check on the total
2. Crawlability
- Read your
robots.txtline by line. A single misplacedDisallowcan remove an entire section from search - Confirm CSS and JavaScript files are not blocked — Google needs them to render the page
- Find orphan pages (no internal links pointing at them). They are frequently never discovered
- Check for crawl traps: infinite parameter combinations, endless calendars, faceted navigation without limits
- Verify important pages are within three clicks of the homepage
- Confirm your XML sitemap contains only canonical, indexable, 200-status URLs
- Make sure the sitemap is referenced in
robots.txtand submitted in Search Console
3. Canonicals and duplicate content
Duplicate content rarely means plagiarism. It usually means the same page is reachable at four URLs and Google has to guess which one counts.
| Duplication source | Fix |
|---|---|
| http:// and https:// | Redirect all HTTP to HTTPS |
| www and non-www | Pick one, redirect the other |
| Trailing slash variants | Pick one convention, redirect the other |
| URL parameters (tracking, sorting) | Canonical to the clean URL |
| Uppercase and lowercase URLs | Force lowercase and redirect |
| index.html or index.php variants | Redirect to the root path |
| Paginated pages | Self-referencing canonicals, keep them crawlable |
4. Redirects
- Find and flatten redirect chains — A → B → C should become A → C
- Break any redirect loops. They make pages entirely inaccessible
- Use 301 for permanent moves, 302 only for genuinely temporary ones
- Update internal links to point at final destinations rather than through redirects
- Never bulk-redirect old pages to the homepage — Google treats that as a soft 404 and the value does not transfer
- Keep redirects from a past migration in place permanently
5. Rendering — what the crawler actually receives
This is where JavaScript-heavy sites quietly fail. The test is simple: view the rendered HTML a crawler receives and confirm your content, internal links and metadata are present in it.
- Use URL Inspection in Search Console and view the rendered HTML
- Confirm the main content is present without user interaction
- Check internal links are real
<a href>elements, not click handlers — crawlers cannot follow the latter - Verify title and meta description are set server-side, not only after hydration
- Content behind tabs, accordions or "load more" buttons is often not indexed at all
- Server-side rendering or static generation removes almost all of these risks in one decision
6. Core Web Vitals and speed
- LCP — usually a slow server response, a render-blocking stylesheet, or a hero image that is unoptimised or wrongly lazy-loaded
- CLS — almost always images or embeds without width and height, late-injected banners, or fonts swapping at a different size
- INP — long JavaScript tasks blocking the main thread, most often from tag managers and chat widgets
- Audit third-party scripts. They frequently cost more than the entire site
- Serve images in WebP or AVIF at the size they are actually displayed
- Preload the LCP image; never lazy-load it
- Self-host fonts, subset them, and use
font-display: swap
7. Mobile
Google indexes the mobile version. If your mobile page has less content than desktop, the reduced version is the one that counts.
- Confirm mobile and desktop serve the same content and the same structured data
- Test at 360px width — no horizontal scrolling anywhere
- Tap targets at least 44px, with adequate spacing
- Body text at least 16px so mobile browsers do not zoom form fields
- Check that interstitials and cookie banners do not obscure content on load
8. Structured data
- Validate with the Rich Results Test and the Schema Markup Validator
- Only mark up content that is genuinely visible on the page
- Never add review or rating markup for reviews you do not have — it is a manual-action risk
- Use
Organizationor the appropriateLocalBusinesssub-type consistently across the site - Add
BreadcrumbListwhere breadcrumbs are actually shown - Add
FAQPageonly where the questions and answers are visible to visitors - Keep
@idvalues stable so entities connect across pages
9. Security and hygiene
- HTTPS across every page, with a valid, unexpired certificate
- No mixed content — images, scripts or stylesheets loaded over HTTP
- Internal links written as HTTPS rather than relying on a redirect
- A real 404 page that returns a 404 status, not a 200
- Server response time under 600ms for the initial document
How often to run through this
A full pass once a year, plus a lighter check after any significant release, template change, plugin update or migration. Technical debt in SEO accumulates quietly — the site that was fine in January frequently is not by December, and nobody notices because nothing looks broken from the front end.
If you would rather have this done for you with everything prioritised by traffic impact, that is what a technical SEO audit is.