SEO & Technicaltechnical SEO auditSEO checklist14 min read
Technical SEO audit checklist for 2026: 25 things to check
A precise, bookmark-worthy technical SEO audit checklist for 2026. 25 items across 6 categories, with what to check, how, and how to fix it.
By NEXUS EditorialPublished
Technical SEO is the foundation under every other SEO investment you make. You can write the best content in your category, earn quality links, and build a brand worth searching for, but if your site is uncrawlable, slow on mobile, or returns mixed signals to Google about which page should rank, the work above ground will underperform. The compounding payoff of fixing the foundation is that every future page you publish lands on a site that already knows how to perform.
This checklist is built to be a working reference. Twenty-five items across six categories, each with what to check, how to check it, what good looks like, and what to do when it fails. Run it quarterly on your own site, before launches, and any time organic traffic moves without a clear cause.
How to use this checklist
You will move faster with the right toolkit open. None of these are paid placements; they are simply what most teams use.
Screaming Frog SEO Spider. Desktop crawler. Free up to 500 URLs, paid for larger sites. The single most useful technical SEO tool.
Google Search Console. Free, official, and the only place you get Google's own view of your site. Non-negotiable.
Ahrefs or Semrush. Either works. For link audits, ranking data, and content gap analysis.
PageSpeed Insights. Free, gives both lab and field data for Core Web Vitals.
Chrome DevTools. Local performance traces, network waterfall, accessibility tree.
Work top to bottom on a fresh site. On a familiar one, skim categories you have audited recently and focus on the ones you have not touched in six months.
Crawlability and indexing
If Google cannot find or read a page, none of the other twenty items matter. Start here.
1. robots.txt configuration
What to check. That robots.txt is reachable at yourdomain.com/robots.txt, returns a 200, and does not block resources Google needs to render the page (CSS, JS, images).
How to check. Visit the URL directly. Open Search Console → Settings → robots.txt to see Google's parsed view. Run a Screaming Frog crawl with "Respect robots.txt" turned on and off; the difference reveals what is being blocked.
What good looks like. A minimal file that disallows only what should not be indexed (admin paths, internal search, faceted parameters that create infinite combinations), with a Sitemap: directive pointing at the canonical sitemap URL.
Fix. Remove blanket Disallow: / (we have seen this on staging sites accidentally promoted to production). Unblock /wp-content/ or equivalent asset directories. Add the sitemap reference.
2. XML sitemap correctness and submission
What to check. That the sitemap exists, validates, lists only indexable URLs, returns last-modified dates, and is submitted in Search Console.
How to check. Fetch the sitemap URL. Validate it (most CMSes generate clean ones; static-built sites sometimes do not). In Search Console → Sitemaps, check submitted, discovered, and indexed counts. A large gap between submitted and indexed is a flag.
What good looks like. All canonical, indexable pages listed. No 301, 404, or noindexed URLs. Last-mod dates that reflect actual content changes, not site-wide deployments.
Fix. Exclude non-canonical URLs from your sitemap generator. Split sitemaps over 50,000 URLs into a sitemap index. Resubmit after changes.
3. Canonical tags
What to check. That every page has a self-referencing canonical pointing at its own absolute URL, and that pages with near-duplicates point at the version you want to rank.
How to check. Crawl with Screaming Frog, then sort by canonical link element. Look for blanks, mismatches with the page URL, or canonicals pointing to URLs that do not exist.
What good looks like. Every indexable page has <link rel="canonical" href="https://yourdomain.com/exact-page-url"> matching the page it is on. Cross-page canonicals point upward to the preferred version.
Fix. Most CMSes get this right by default. Manual canonicals are usually the source of bugs. Audit any custom logic that sets canonical tags dynamically.
4. Noindex and nofollow audit
What to check. That nothing important is accidentally noindexed and nothing trivial is unnecessarily noindexed.
How to check. Screaming Frog → Directives report. Cross-reference against your sitemap. Anything in the sitemap that is noindexed is a contradiction; anything noindexed that gets organic traffic is a missed opportunity.
What good looks like. Noindex on: thank-you pages, internal search results, account and checkout pages, tag pages with low content value. Indexed: everything in your sitemap.
Fix. Remove stray noindex tags from staging meta defaults that survived a launch (a classic). Add noindex to low-value paginated archives if they are competing with your main category pages.
5. Crawl budget for large sites
What to check. Only relevant if you have more than 50,000 URLs. Whether Googlebot is spending its time on URLs that matter.
How to check. Search Console → Settings → Crawl stats. Look at the URL hosts and file types being crawled. Filter your server logs for Googlebot user agents and segment by URL pattern.
What good looks like. Crawl requests concentrated on your money pages and recently updated content. Faceted URL combinations, internal search, and infinite calendar pages are not eating your crawl budget.
Fix. Block crawl traps in robots.txt. Add noindex,follow to filter combinations Google should follow but not index. Use rel="nofollow" on internal links to non-essential URL parameters.
Crawlability is the foundation everything else stacks on. Source: Pexels
Site structure
A clean structure makes everything else easier: crawling, link equity flow, user navigation, and your own ability to reason about the site.
6. URL structure and depth
What to check. That URLs are short, readable, lowercase, hyphen-separated, and that important pages are within three clicks of the homepage.
How to check. Screaming Frog → Crawl Depth report. Anything past four levels deep on a non-trivial site deserves a look.
What good looks like./category/product-name, not /cat/cat_id=12&prod_id=8821. Money pages two or three clicks from the root, never six.
Fix. Restructure deep pages with new categorisation. Add hub pages that surface deep content. Use 301 redirects for any URL changes — never publish parallel structures.
7. Internal linking architecture
What to check. That every important page has incoming internal links, that anchor text varies and uses target keywords, and that link equity flows toward pages you want to rank.
How to check. Screaming Frog → Inlinks report for any URL. Ahrefs or Semrush's site audit also visualises this. Look at the top pages by internal links — they should be the pages you want to rank.
What good looks like. Top-priority pages have dozens of incoming internal links from contextually relevant pages. Anchor text is descriptive, not "click here." Hub-and-spoke topic structures are visible.
Fix. Add contextual links from high-authority pages (homepage, top blog posts) to pages you want to lift. Audit your menu and footer; they hand link equity to whatever is in them.
8. Orphan pages
What to check. Pages with zero internal links pointing at them. They exist on the site but no path leads to them from the homepage.
How to check. Crawl Screaming Frog from the homepage, then upload your sitemap to the crawl. URLs in the sitemap but not found by the crawl are orphans.
What good looks like. Zero orphans, or a very short list of intentionally orphaned URLs (specific campaign landing pages).
Fix. Either link to the page from somewhere relevant or remove it from the sitemap and noindex it.
9. Redirect chains and loops
What to check. That redirects go A → B in one hop, not A → B → C → D, and that no redirect points back to a URL earlier in the chain.
How to check. Screaming Frog → Redirects report. Sort by chain length.
What good looks like. All redirects resolve in one hop. No loops. 301s for permanent, 302s only when genuinely temporary.
Fix. Update redirect rules to point directly at the final destination. Loops are usually a misconfigured rewrite — disentangle the rules.
On-page foundations
The basics that compound across every page on the site. Get these right at the template level, and every new page inherits the work.
10. Title tags
What to check. Length (55–60 characters before truncation), uniqueness across the site, primary keyword present, and that the brand sits at the end after a separator.
How to check. Screaming Frog → Page Titles report. Sort by length, then by duplicates.
What good looks like. Each indexed page has a unique title. The keyword sits in the first half. Brand is at the end. Nothing is truncated.
Fix. Rewrite title templates at the CMS level so the page inherits a clean default, then override manually only where needed.
11. Meta descriptions
What to check. Length (150–160 characters), uniqueness, click-attracting copy, and presence on every indexable page.
How to check. Screaming Frog → Meta Description report.
What good looks like. Each page has a distinct description that says what the page offers and why a searcher should click. The keyword appears naturally; this is for humans more than for ranking.
Fix. Rewrite the descriptions on your top twenty pages by impressions. The CTR uplift on improved descriptions for already-ranking pages is one of the highest-ROI SEO tasks available.
12. H1 structure
What to check. That every page has exactly one H1, that it matches user search intent, and that it differs from the page title in tone (the title is for SERPs, the H1 is for the page).
How to check. Screaming Frog → H1 report. Filter for missing or multiple H1s.
What good looks like. Single H1 per page, descriptive, contains the target keyword or a close variant.
Fix. Audit any template that uses H1 for the logo (common on older WordPress themes) and demote to a div or span.
13. Image alt text
What to check. That every meaningful image has descriptive alt text, and decorative images have empty alt attributes (alt="").
How to check. Screaming Frog → Images report. Filter for missing alt text.
What good looks like. Functional images describe what they show in a sentence. Decorative images are flagged with empty alts so screen readers skip them.
Fix. Bulk-add alt text for your product photography using a templated approach. Audit blog imagery manually.
14. Structured data and schema markup
What to check. That the right schema types are deployed and validate. Most sites need at minimum Organization, WebSite, and BreadcrumbList. E-commerce adds Product. Editorial adds Article. Service sites benefit from Service and FAQPage.
How to check. Google Rich Results Test on a sample of pages. Search Console → Enhancements section flags any errors.
What good looks like. Schema validates without errors or warnings. Rich results eligibility shows in Search Console. Markup matches the visible content (do not mark up hidden FAQs).
Fix. Use JSON-LD, not microdata. Keep the markup consistent with on-page content. Remove any Review schema you cannot back with first-party reviews — Google has cracked down on inflated star ratings.
Audit findings only matter when they become a fix list. Source: Pexels
Core Web Vitals and performance
Core Web Vitals have been official ranking signals since 2021. The real impact is often less in direct ranking lift and more in everything downstream: bounce rate, crawl budget, mobile experience.
15. LCP score and source
What to check. Largest Contentful Paint, the time until the largest meaningful element on the page renders. Field data, not lab.
How to check. PageSpeed Insights. Search Console → Core Web Vitals report. Real-user monitoring (RUM) data if you have it.
What good looks like. LCP under 2.5 seconds on the 75th percentile of mobile sessions. The LCP element is identified and you know what it is (hero image, headline, hero video poster).
Fix. Preload the LCP image. Use fetchpriority="high" on the LCP element. Serve responsive images with srcset. Move the LCP element above the fold; it should not require scrolling.
16. INP score and blockers
What to check. Interaction to Next Paint, the responsiveness of the page when a user clicks, taps, or types. Replaced FID in 2024 and most sites still have not optimised for it.
How to check. PageSpeed Insights. Search Console. Chrome DevTools Performance panel under real user interaction.
What good looks like. INP under 200ms on the 75th percentile. No long tasks (over 50ms) blocking the main thread on interaction.
Fix. Break up long JavaScript tasks. Defer non-critical scripts. Audit third-party scripts — chat widgets, A/B testing tools, and analytics tags are common INP killers. Yield to the main thread using scheduler.yield() or setTimeout in expensive handlers.
17. CLS score and cause
What to check. Cumulative Layout Shift, the visual stability of the page during load. A score that creeps up usually points at an image without dimensions or a late-loading widget.
How to check. PageSpeed Insights field data. Search Console. Chrome DevTools Performance Insights → Layout shifts.
What good looks like. CLS under 0.1 at the 75th percentile.
Fix. Set explicit width and height (or aspect-ratio) on all images and embeds. Reserve space for ads, banners, and cookie notices before they load. Avoid injecting content above existing content after the page has rendered.
18. TTFB and hosting baseline
What to check. Time to First Byte. If your TTFB is over 800ms, every other performance optimisation is fighting uphill.
How to check. Chrome DevTools → Network panel → first request. WebPageTest gives a detailed waterfall.
What good looks like. TTFB under 200ms for cached pages, under 600ms for dynamic ones. Server location appropriate for your traffic.
Fix. Add a CDN if you do not have one. Cache aggressively at the edge. Move from shared hosting to a managed platform (Vercel, Netlify, Cloudways, WPEngine depending on stack). Audit your database for slow queries on critical templates.
Mobile and accessibility
Mobile-first indexing has been the default since 2019. Accessibility is both a legal requirement (EAA in Europe from June 2025) and a strong correlation with SEO performance.
19. Mobile usability
What to check. That the GSC mobile usability report is clean, and that real-device testing on at least one mid-range Android device matches the dashboard.
How to check. Search Console → Mobile usability. Then load the site on a £200 Android with a throttled connection.
What good looks like. No issues reported. Tap targets sized appropriately. Text legible without zoom. Content fits the viewport.
Fix. Issues here usually trace back to legacy CSS, fixed-width elements, or untested responsive breakpoints. Address them at the template level.
20. Viewport configuration
What to check. That every page has <meta name="viewport" content="width=device-width, initial-scale=1">.
How to check. Inspect the source on a sample of pages. Screaming Frog can report on this.
What good looks like. Present, correct, on every page.
Fix. Add the meta tag to your base template. Avoid user-scalable=no — this breaks accessibility and is bad practice in 2026.
21. Touch target sizing
What to check. That interactive elements are at least 48×48px (Apple HIG suggests 44px, Material Design suggests 48px — go with 48px for safety).
How to check. Lighthouse audit flags this. Manual review on mobile of nav links, form buttons, and any clustered links.
What good looks like. All tap targets meet the size threshold. No two adjacent targets are closer than 8px.
Fix. Increase padding on small inline links. Stack mobile navigation rather than cramming it horizontally.
22. Accessibility basics
What to check. Colour contrast meets WCAG AA (4.5:1 for body text, 3:1 for large text), ARIA labels are present where needed, forms are labelled, focus states are visible, semantic HTML is used.
How to check. Lighthouse accessibility audit. axe DevTools Chrome extension. Manual keyboard navigation through the page.
What good looks like. Lighthouse accessibility score of 100 (a low bar — it catches the obvious things). axe reports no violations on critical pages. You can tab through the page and complete primary actions.
Fix. Increase contrast on grey-on-white body copy. Add labels to inputs. Replace <div onclick> with semantic buttons or anchors.
The last 20% of a checklist catches the issues that take down a site. Source: Pexels
Security and technical hygiene
The plumbing that supports everything above. Quick wins, mostly, and a sign of basic competence to anyone auditing the site.
23. HTTPS implementation
What to check. That every URL on the site serves over HTTPS, that the certificate is valid and renews automatically, and that HTTP requests redirect to HTTPS.
How to check. Browser address bar (any unsecure warning is bad). SSL Labs gives a detailed report.
What good looks like. HSTS header set, certificate from a reputable CA, A or A+ grade on SSL Labs.
Fix. Enable HSTS in your server config. Use Let's Encrypt or your host's automated cert. Set a permanent 301 from HTTP to HTTPS.
24. Mixed content errors
What to check. That a HTTPS page does not load any subresources (images, scripts, stylesheets, iframes) over HTTP.
How to check. Chrome DevTools → Console will warn. WhyNoPadlock.com runs a quick audit.
What good looks like. No warnings in console, padlock icon in the address bar.
Fix. Update hardcoded HTTP URLs in your codebase or CMS. Use protocol-relative URLs (//domain.com/asset.js) or absolute HTTPS URLs.
25. Broken links
What to check. That no internal or external links return 404, and that 301s do not chain.
How to check. Screaming Frog → Response Codes report. Filter for 4xx and 5xx. Ahrefs or Semrush both flag broken external links in their site audits.
What good looks like. Zero broken internal links. External links checked quarterly; broken ones replaced or removed.
Fix. Update or remove broken internal links. For broken external links, find replacement sources or unlink. For 404 pages with backlinks pointing at them, redirect to the most relevant live URL.
The version above is the working reference. The PDF version includes a tracking sheet for owners, status, and fix-by dates — useful if you are running this as a quarterly process across a team. Get the full checklist as a PDF.
Want us to run this audit on your site?
Working through twenty-five items takes a day if you know what you are looking for and a week if you do not. We run technical audits as a discrete engagement: two weeks, written report with prioritised fix list, implementation handover or executed by our team.