Technical SEO

The Complete 60-Point Technical SEO Audit Checklist (2026)

By Reviewed by Hawrry Bhattarai
September 1, 2026 20 min read
Contents
TL;DR — the short answer

A complete 60-point technical SEO audit checklist covering crawl, indexability, performance, structure, schema, and international setup — with category scoring.

16 min read · Technical SEO · Last updated July 2026

Quick answer: A technical SEO audit checks six core areas: crawl health (can Google reach your pages?), indexability (which pages are in Google’s index?), performance (do pages load fast enough to retain rankings?), site structure (is content organised and linked effectively?), structured data (are rich results being generated?), and international setup (is geo-targeting implemented correctly?). This 60-point checklist covers all six areas with specific checks and fixes for each.

Introduction

Technical SEO audits are only as good as their scope. A 10-point checklist leaves too much to chance. A 200-point checklist paralyses teams with low-priority noise. Sixty points hits the threshold where you cover every major technical ranking factor without getting lost in edge cases.

This checklist is structured into six categories with ten checks each. Use it to audit a new client site before any other work, to establish a technical SEO baseline for your own site, or as a quarterly health check for sites under active management.

Each check includes what to look for, where to find it, and what the fix involves.

What you’ll learn:
– All 60 technical SEO checks across crawl, index, performance, structure, schema, and international
– Which tools to use for each category
– How to prioritise fixes based on impact and effort
– How to score your site against each category


Table of Contents

  1. Category 1: Crawl Health (Checks 1–10)
  2. Category 2: Indexability (Checks 11–20)
  3. Category 3: Performance and Core Web Vitals (Checks 21–30)
  4. Category 4: Site Structure (Checks 31–40)
  5. Category 5: Structured Data and Schema (Checks 41–50)
  6. Category 6: International and Advanced (Checks 51–60)
  7. Interactive Audit Checklist and Scoring
  8. Prioritising Your Fix List
  9. Frequently Asked Questions

Category 1: Crawl Health (Checks 1–10)

Crawl health determines whether Google can reach your pages in the first place. No crawl access means no indexing. No indexing means no rankings.

Check 1: robots.txt is accessible and correctly formatted
URL: yourdomain.com/robots.txt
What to check: file returns 200 status, is plain text, contains valid directives. No Disallow: / blocking your entire site. Sitemap URL declared.
Tool: Fetch directly in browser, validate with Google’s robots.txt tester in GSC.

Check 2: XML sitemap exists and is submitted to GSC
What to check: sitemap exists at /sitemap.xml or declared in robots.txt. Contains only canonical, indexable URLs. Submitted and processed in GSC (no errors shown). Last modified dates are accurate.
Tool: GSC → Sitemaps. Screaming Frog → Crawl → Mode: Sitemap.

Check 3: Crawl errors in GSC are below 1% of total URLs
What to check: GSC → Coverage → Errors. Look for 4xx and 5xx errors. Any error count above 1% of total pages warrants investigation.
Tool: Google Search Console Coverage report.

Check 4: No redirect loops or redirect chains longer than 2 hops
What to check: Screaming Frog → Reports → Redirect Chains. Any chain of 3+ hops should be flattened to a direct redirect.
Tool: Screaming Frog SEO Spider.

Check 5: Internal links on important pages return 200 (not 4xx or 3xx)
What to check: Screaming Frog → Response Codes → filter 4xx. Sort by Inlinks descending. Any 4xx URL with significant internal links is a priority fix.
Tool: Screaming Frog.

Check 6: Crawl budget is not being wasted on low-value URLs
What to check: check for large URL sets created by parameters, session IDs, or sorting. If parameter URLs appear in GSC Coverage at scale, crawl budget is being misdirected.
Tool: GSC Coverage report, server access logs, Screaming Frog URL count by parameter pattern.

Check 7: JavaScript-rendered content is being crawled correctly
What to check: for JS-heavy sites, use GSC URL Inspection to compare “Page source” vs “View tested page.” If content appears in tested page but not source, Google is doing a two-wave crawl. Implement SSR or SSG.
Tool: GSC URL Inspection → Test Live URL → View Tested Page.

Check 8: Crawl depth — important pages reachable within 3 clicks from homepage
What to check: Screaming Frog → Crawl Overview → Crawl Depth distribution. Any important pages at depth 5+ should be surfaced via internal linking.
Tool: Screaming Frog → Crawl Depth tab filter.

Check 9: Server response time is under 200ms for key pages
What to check: slow TTFB reduces crawl frequency. Check with GTmetrix or Chrome DevTools Network tab for TTFB on your most important pages.
Tool: Chrome DevTools, GTmetrix, WebPageTest.

Check 10: No URL canonicalization conflicts (www vs non-www, HTTP vs HTTPS)
What to check: http://yourdomain.com, https://yourdomain.com, http://www.yourdomain.com, and https://www.yourdomain.com should all redirect to one canonical version (typically https://www. or https:// without www).
Tool: curl each variant, check redirect chain.


Category 2: Indexability (Checks 11–20)

Indexability determines which of your crawled pages Google will include in its index — and therefore which can appear in search results.

Check 11: No important pages have accidental noindex tags
What to check: Screaming Frog → Directives → filter Noindex. Cross-reference against your top pages by GSC organic clicks. Any intersection is a critical fix.
Tool: Screaming Frog + GSC clicks export.

Check 12: WordPress does not have “Discourage search engines” enabled
What to check: Settings → Reading → “Search Engine Visibility” must be unchecked. Also check Yoast/Rank Math post type settings — confirm all indexable post types show “Yes” to indexing.
Tool: WordPress admin.

Check 13: Canonical tags are correctly implemented on all key pages
What to check: every indexable page should have a canonical pointing to itself (self-canonical) unless it is a duplicate that should consolidate to another URL. Screaming Frog → Canonicals → filter by type.
Tool: Screaming Frog Canonical report.

Check 14: No canonical tags pointing to non-200 URLs
What to check: Screaming Frog → Canonicals → filter “Canonical to Redirect” or “Canonical to 4xx.” These broken canonicals are ignored by Google.
Tool: Screaming Frog.

Check 15: Pages in XML sitemap are indexable (200 status, no noindex)
What to check: crawl your sitemap via Screaming Frog (Mode: Sitemap). Filter for non-200 status and noindex pages. No page in your sitemap should be non-indexable.
Tool: Screaming Frog → Mode: List/Sitemap.

Check 16: Duplicate content is managed with canonical or 301 redirects
What to check: Screaming Frog → Duplicates tab. Near-duplicate and exact duplicate pages should have canonical tags pointing to the primary version.
Tool: Screaming Frog Duplicates report.

Check 17: Pagination is handled correctly (no incorrect page 1 canonicalisation)
What to check: paginated pages (?page=2, /page/2/) should self-canonical — NOT canonical to page 1. Canonicalling paginated pages to page 1 hides your paginated content.
Tool: Screaming Frog → filter URL pattern for page/2, page/3 etc, check canonical.

Check 18: GSC Coverage shows expected index count vs crawled count
What to check: in GSC → Coverage, compare “Valid” (indexed) against your expected page count. Large discrepancies indicate over-indexing (parameter bloat) or under-indexing (noindex, crawl issues).
Tool: Google Search Console.

Check 19: “Excluded” reasons in GSC are all intentional
What to check: GSC → Coverage → Excluded. Review each exclusion reason: “Excluded by noindex” (intentional?), “Duplicate, Google chose different canonical” (expected?), “Crawled but not indexed” (why?).
Tool: Google Search Console Coverage → Excluded tab.

Check 20: No soft 404s (pages returning 200 with “not found” content)
What to check: search GSC → Coverage for “Soft 404.” Check out-of-stock product pages, empty category pages, and search result pages — these commonly return 200 but are effectively empty.
Tool: GSC Coverage + manual inspection of flagged URLs.


Category 3: Performance and Core Web Vitals (Checks 21–30)

Google uses Core Web Vitals as a ranking signal. Beyond direct ranking impact, performance affects bounce rate, engagement, and conversion — all of which feed back into organic performance signals.

Check 21: LCP (Largest Contentful Paint) under 2.5 seconds on key pages
What to check: PageSpeed Insights → Core Web Vitals. LCP measures how long the largest content element (usually hero image or H1) takes to appear. Target: Good (<2.5s). Run on your 10 highest-traffic pages.
Tool: PageSpeed Insights, GSC → Core Web Vitals report.

Check 22: INP (Interaction to Next Paint) under 200ms
What to check: INP replaced FID as a Core Web Vital in March 2024. It measures response time to user interactions (clicks, taps). Target: Good (<200ms).
Tool: PageSpeed Insights, Chrome User Experience Report.

Check 23: CLS (Cumulative Layout Shift) under 0.1
What to check: CLS measures unexpected layout shifts. Common causes: images without dimensions, ads loading above content, web fonts causing FOUT. Target: Good (<0.1).
Tool: PageSpeed Insights.

Check 24: TTFB (Time to First Byte) under 800ms
What to check: while not a direct Core Web Vital, TTFB affects LCP and crawl frequency. Slow TTFB indicates server performance problems (slow hosting, no caching, unoptimised database queries).
Tool: WebPageTest.org, GTmetrix.

Check 25: Images are compressed and served in WebP or AVIF format
What to check: Screaming Frog → Images → filter by file size over 100KB. Lighthouse → Opportunities → “Efficiently encode images.”
Tool: Screaming Frog, PageSpeed Insights.

Check 26: Render-blocking resources (CSS/JS) are optimised
What to check: PageSpeed Insights → Opportunities → “Eliminate render-blocking resources.” Critical CSS should be inlined or preloaded; non-critical JS should be deferred.
Tool: PageSpeed Insights.

Check 27: Core Web Vitals passing for mobile (not just desktop)
What to check: Google ranks based on the mobile version of your site. Run PageSpeed Insights in mobile mode on all key pages. CWV failures on mobile are more impactful than desktop failures.
Tool: PageSpeed Insights → Mobile tab.

Check 28: No Cumulative Layout Shift from lazy-loaded images
What to check: images loaded lazily (loading=”lazy”) must have explicit width and height attributes so the browser reserves space before the image loads. Missing dimensions cause CLS.
Tool: Lighthouse CLS diagnostics.

Check 29: Site uses HTTPS and all resources load over HTTPS (no mixed content)
What to check: if the page loads over HTTPS but references images, scripts, or stylesheets over HTTP, browsers show security warnings. Check Chrome DevTools → Console for mixed content warnings.
Tool: Chrome DevTools, SSL check tools.

Check 30: Cache headers configured for static assets (images, CSS, JS)
What to check: static assets should return Cache-Control headers with max-age of at least one year. Check Chrome DevTools → Network → Headers for key asset URLs.
Tool: Chrome DevTools Network tab.


Category 4: Site Structure (Checks 31–40)

Site structure affects how PageRank flows internally, how Google understands content hierarchy, and how users navigate between related content.

Check 31: Homepage links to all top-level category/section pages
What to check: your homepage should link to all major content sections. Trace internal link paths from homepage to your most important pages. No important page should be inaccessible from the homepage within 3 clicks.
Tool: Screaming Frog Crawl Depth report.

Check 32: Every indexable page has at least 2-3 contextual internal links pointing to it
What to check: Screaming Frog → Internal Pages → sort by Inlinks ascending. Any important page with fewer than 3 internal links is underpromoted.
Tool: Screaming Frog.

Check 33: No orphan pages (indexable pages with zero internal links)
What to check: Screaming Frog → Internal Pages → filter Inlinks = 0 → cross-reference against indexable pages. Orphan pages receive no PageRank and are rarely crawled.
Tool: Screaming Frog.

Check 34: URL structure is clean, descriptive, and consistent
What to check: URLs should use lowercase, hyphens (not underscores), relevant keywords, and be as short as practical while remaining descriptive. Check for parameter-heavy URLs, numeric IDs without keywords, and inconsistent capitalization.
Tool: Screaming Frog URL audit.

Check 35: Navigation is implemented with proper HTML anchor tags
What to check: primary navigation, footer navigation, and breadcrumbs should use <a href> tags, not JavaScript-only click handlers. Google follows <a href> links; JS-only navigation may not be crawled.
Tool: View Source inspection of navigation elements.

Check 36: Breadcrumb navigation is present on all interior pages
What to check: breadcrumbs reinforce URL structure and provide additional internal linking context. Every product page, blog post, and inner page should have breadcrumbs.
Tool: Screaming Frog, manual inspection.

Check 37: Page titles are unique across the entire site
What to check: Screaming Frog → Page Titles → filter Duplicate. Duplicate titles cause Google to treat pages as interchangeable and may result in unexpected ranking choices.
Tool: Screaming Frog.

Check 38: H1 tags are present, unique, and on-topic for every indexable page
What to check: Screaming Frog → H1 → filter Missing and Duplicate. Every indexable page should have exactly one H1 that reflects the page’s primary keyword topic.
Tool: Screaming Frog.

Check 39: Image file names are descriptive (not img0034.jpg)
What to check: image file names contribute to image SEO signals. Generic file names miss keyword context. Check a sample of images — particularly product images — for descriptive naming.
Tool: Screaming Frog Images report.

Check 40: 404 page is custom and includes internal links back to key pages
What to check: your 404 page should return a true HTTP 404 status code (not 200) and include navigation and internal links to help users find content. A 404 that just says “page not found” with no navigation is a dead end.
Tool: Fetch a known 404 URL, check HTTP status and page content.


Category 5: Structured Data and Schema (Checks 41–50)

Structured data enables rich results in Google Search — star ratings, FAQ dropdowns, product prices, article dates. It also improves Google’s understanding of your content beyond what it can infer from plain HTML.

Check 41: Organisation schema on homepage
What to check: Homepage should include Organization or LocalBusiness schema with name, URL, logo, contact information, and social profiles. Verify with Google’s Rich Results Test.
Tool: Google Rich Results Test, Schema Markup Validator.

Check 42: Product schema on all product pages
What to check: e-commerce sites should have Product schema on every product page, including name, description, image, sku, brand, and offers (price, availability, condition). Without it, you miss pricing rich results.
Tool: Google Rich Results Test.

Check 43: Review/rating schema is correctly implemented
What to check: if you show product or service reviews, AggregateRating schema should be present. Check for accurate ratingValue, reviewCount, and bestRating values. Google penalises inflated or fake review schema.
Tool: Google Rich Results Test.

Check 44: Article or BlogPosting schema on all blog posts
What to check: blog posts should have Article or BlogPosting schema with headline, author, datePublished, dateModified, and image. Enables rich article results and publisher context.
Tool: Google Rich Results Test.

Check 45: FAQ schema on FAQ sections
What to check: pages with FAQ sections (including landing pages with Q&A sections) should use FAQPage schema. This can generate expanded FAQ dropdowns directly in SERPs, significantly increasing CTR.
Tool: Google Rich Results Test.

Check 46: BreadcrumbList schema matches visible breadcrumbs
What to check: breadcrumb schema should match the visible breadcrumbs on each page. Mismatches (schema shows a different path than visible breadcrumbs) cause GSC to flag the schema as invalid.
Tool: GSC → Rich Results → Breadcrumbs.

Check 47: No schema markup errors in GSC Rich Results report
What to check: GSC → Enhancements → check each schema type you have implemented. Any “Invalid item” or “Missing field” errors should be resolved. Google does not generate rich results for pages with schema errors.
Tool: Google Search Console → Enhancements.

Check 48: LocalBusiness schema is accurate and complete for local businesses
What to check: name, address, phone, opening hours, geo coordinates, and service area should all be specified and accurate. These must match your Google Business Profile exactly.
Tool: Google Rich Results Test, Schema Markup Validator.

Check 49: Schema is implemented via JSON-LD (not Microdata)
What to check: JSON-LD is Google’s recommended format. Microdata works but is harder to maintain. Check your page source for <script type="application/ld+json"> blocks — this is JSON-LD. If you see inline attributes like itemtype and itemprop on HTML elements, that is Microdata — migrate to JSON-LD.
Tool: View Source.

Check 50: SitelinksSearchBox or Speakable schema implemented if applicable
What to check: for large sites with internal search functionality, SitelinksSearchBox schema can enable a search box directly in Google’s SERP listing for your brand. Check if your site qualifies and whether the schema is implemented correctly.
Tool: Google Rich Results Test.


Category 6: International and Advanced (Checks 51–60)

These checks apply to international sites, JavaScript-heavy sites, and larger operations where standard checks are necessary but insufficient.

Check 51: hreflang tags are implemented if site targets multiple languages or regions
What to check: every language/region variant page must have hreflang tags pointing to all other variants, including a self-referential tag and an x-default. Missing return tags invalidate the entire cluster.
Tool: Screaming Frog → hreflang report.

Check 52: No hreflang tags pointing to non-200 URLs
What to check: Screaming Frog → hreflang → filter “Non-200 hreflang URL.” Any hreflang pointing to a redirect or 404 is invalid.
Tool: Screaming Frog.

Check 53: GSC geotargeting is set for subdirectory-based international sites
What to check: if you use subdirectories for regional versions (/au/, /uk/), each should have a corresponding URL Prefix property in GSC with the geotarget set to the appropriate country.
Tool: Google Search Console → Legacy Tools → International Targeting.

Check 54: Correct language is declared in HTML lang attribute
What to check: your <html> element should have a lang attribute matching the page language. <html lang="en"> for English, <html lang="fr"> for French. This is both an accessibility requirement and a search engine signal.
Tool: Screaming Frog → Custom Extraction → extract html[lang] attribute.

Check 55: JavaScript framework renders complete HTML server-side (SSR/SSG verification)
What to check: View Source on key pages and check that title tags, H1, body content, canonical tags, and structured data are present in the raw source. If they only appear in Inspect (client-rendered), implement SSR or SSG.
Tool: View Source (Cmd+U) on 5 key page types.

Check 56: No hydration errors in browser console on JS framework sites
What to check: open Chrome DevTools Console on key pages. React hydration mismatches appear as warnings. These indicate server-rendered HTML differs from client-rendered HTML — causing Google to potentially index incorrect content.
Tool: Chrome DevTools Console.

Check 57: Log file analysis shows no excessive crawl waste
What to check: review Googlebot crawl activity in server access logs. If more than 50% of Googlebot requests are for parameter URLs, pagination beyond depth 5, or other low-value paths, you have a crawl budget problem.
Tool: Screaming Frog Log File Analyser, Splunk, or server log parsing scripts.

Check 58: CDN is configured correctly and not causing geo-targeting issues
What to check: CDN edge node serving can sometimes affect how Google perceives the server location. Check that your CDN configuration does not geo-target users in a way that conflicts with your international SEO strategy.
Tool: Ping from multiple geographic locations, check response headers for CDN cache indicators.

Check 59: AMP pages (if implemented) are correctly linked from canonical pages
What to check: if you have AMP versions of pages, each AMP page must have a rel="amphtml" link from the canonical page, and the AMP page must have a rel="canonical" link back to the main page. Verify no AMP validation errors in GSC.
Tool: GSC → Enhancements → AMP (if applicable).

Check 60: Site is verified in GSC with a domain-level property (not just URL prefix)
What to check: domain-level properties in GSC cover all subdomains and protocols. If you only have URL prefix properties, you may be missing data from http:// variants, subdomains, or other protocol variants of your site.
Tool: Google Search Console → Properties list — look for verified domain property (without https://).


Interactive Audit Checklist and Scoring

Interactive 60-Point Technical SEO Audit

Check each item as you complete it. Track your score by category and overall.

Overall Score
0/60


Prioritising Your Fix List

After completing the 60-point audit, you will have a list of failed checks. Not all failures are equal. Prioritise using this framework:

Priority 1 — Fix immediately (blocks indexing or wastes significant link equity):
– Any important page with noindex applied accidentally
– Broken internal links (4xx) with 50+ pages pointing to them
– Redirect chains of 3+ hops on high-traffic pages
– Canonical tags pointing to non-200 URLs
– Server errors (5xx) on any page

Priority 2 — Fix this sprint (limits performance and ranking potential):
– Core Web Vitals failures on top 20 pages by organic traffic
– Orphan pages that have organic traffic or backlinks
– Missing structured data on high-value pages (product, FAQ, article)
– hreflang errors on international pages
– Missing H1 tags on indexable pages

Priority 3 — Batch fix (template-level issues affecting many pages):
– Duplicate title tags (fix the template, resolve 200+ at once)
– Missing meta descriptions on large page sets
– Images missing alt text across product catalogue
– URL structure inconsistencies across a category

Priority 4 — Schedule for next quarter:
– Performance improvements on lower-traffic pages
– Complete schema coverage on all blog posts
– Breadcrumb implementation across inner pages
– Log file analysis and crawl budget optimisation

Audit Priority Matrix

Assess each failed check by impact and effort to find your optimal fix order.

Impact on Rankings Low Effort Fix Medium Effort Fix High Effort Fix
High Impact Do first
Fix broken canonicals, accidental noindex
Do this sprint
Fix redirect chains, schema errors
Plan and schedule
SSR implementation, site migration
Medium Impact Quick wins
Missing H1s, meta descriptions
Next sprint
Internal linking gaps, URL cleanup
Backlog
CWV optimisation, image overhaul
Low Impact Do when convenient
Alt text, meta desc tweaks
Quarterly backlog
Schema expansion, breadcrumbs
Consider vs. ROI
AMP, advanced schema types

Frequently Asked Questions

How long does a 60-point technical SEO audit take?
For a site under 10,000 pages: 6-10 hours for a thorough manual audit using this checklist alongside Screaming Frog and GSC. For a site with 100,000+ pages: 2-3 days including crawl time, data analysis, and documentation.

Which checks should I do first for a brand-new client site?
Start with Check 1 (robots.txt), Check 11 (accidental noindex), and Check 22 (GSC Coverage counts). These three checks together reveal the most common and most catastrophic technical mistakes within 15 minutes.

Should I run this audit on a staging site before launch?
Absolutely — but the staging audit is different from a live site audit. On staging, focus on: robots.txt is blocking staging (check 1), all intended-indexable pages are indexable, canonical tags are set to production URLs (not staging URLs), and 301 redirect map is complete.

How often should I repeat this audit?
Full 60-point audit: quarterly for actively managed sites, semi-annually for stable sites. Targeted audits on specific categories: after any CMS update (check crawl and indexability), after any template change (check headings, canonicals, schema), after any migration (full audit within one week of launch).

Can I automate parts of this checklist?
Many checks can be partially automated: Screaming Frog covers checks 2, 4, 5, 8, 11, 13, 14, 16, 37, 38, 33, 39, 51, 52. Ahrefs Site Audit covers a similar range. PageSpeed Insights API can automate performance checks at scale. Manual verification is still required for intent-based checks (is this page supposed to be noindexed?) and interpretation of data.

What is the most commonly failed check across sites?
In our experience: Check 3 (crawl errors above 1%), Check 17 (incorrect pagination canonicalisation), and Check 32 (important pages with fewer than 3 internal links). These three are the most common across e-commerce and content sites of all sizes.


Conclusion

Sixty checks across six categories covers the full technical SEO surface area that affects rankings. The purpose is not to achieve 60/60 on every site — some checks are not applicable to every site, and some “failures” are intentional. The purpose is to have a consistent, structured way to find problems that limit the ceiling on everything else you are doing.

Technical SEO is the foundation. Content, links, and authority-building all have diminishing returns when the technical foundation is broken. Fix the foundation first, measure the results, then invest in the next layer.


Let Ignited Nepal Handle This

Running a 60-point technical audit, triaging the output, and coordinating fixes across development and content teams is a significant undertaking. Our team delivers prioritised technical SEO audit reports and handles implementation for clients across Nepal, Australia, UAE, USA, UK, and beyond.

→ Request a Free Technical SEO Audit


Written by the Ignited Nepal SEO team. We build organic search systems for businesses across Nepal, Australia, UAE, USA, UK, and beyond. ignitednepal.com

NR

Article by

Niraj Raut

Head of Search at Ignited Nepal. Drove 340% organic traffic growth for EzyDog (Australia), 4× revenue for The Turf Man (Australia), and 120% month-on-month traffic growth for ThemeGrill (Nepal). Keynote speaker at WordCamp Nepal 2023 and verified WordPress.org open-source contributor.