Skip to content
Can Elmas

SEO · 8 min read

Technical SEO Audit Checklist: 35 Checks Ranked by Traffic Impact

TL;DR

Most crawler warnings cost no traffic. The ones that do stop search engines from crawling, rendering or indexing your money pages: robots.txt rules, stray noindex tags, broken canonicals, server errors and JavaScript-only content. Tag each of the 35 checks by impact and effort, fix high-impact items first, and ship every fix as a developer ticket with testable acceptance criteria.

· Published

If your crawler shows 400 warnings, most of them won’t cost you a single visit. The ones that do stop search engines from crawling, rendering or indexing the pages that make money. Below are 35 checks, each tagged by traffic impact and effort, so your team fixes those first and backlogs the rest.

How to prioritize technical fixes

Crawlers report everything they can measure, not everything that matters. A slightly long title and a noindex tag on your pricing page sit side by side in the export. Only one of them removes a page from Google.

I tag every finding on two scales:

  • Impact. High: can remove pages or whole sections from search. Medium: affects how well indexed pages rank or how efficiently they’re crawled. Low: hygiene.
  • Effort. Low: a config or CMS change, under a day. Medium: a template change within one sprint. High: rendering or architecture work across several sprints.

Scope by template, not by URL. The same canonical bug on 3,000 product pages is one ticket, not 3,000 warnings.

Warnings you can usually batch

  • Titles or meta descriptions slightly over a length limit
  • Multiple H1 tags on a page
  • “Low word count” on login, contact and other pages not meant to rank
  • Single-hop internal redirects
  • Missing alt text on decorative images (fix it for accessibility, not rankings)

The fix-first shortlist

Start with the High-impact, Low-effort checks: 1, 7, 8, 9, 10 and 29. Each is quick to verify, most failures are configuration fixes, and any one can keep key pages out of search.

Crawlability and robots.txt

#CheckImpactEffort
1robots.txt returns 200 and doesn’t block revenue sections or keep staging rulesHighLow
2Crawl Stats in Search Console show no spikes in 5xx errors or timeoutsHighMedium
3Filter, sort and tracking parameters don’t create endless crawlable URLsHighMedium
4XML sitemaps list only indexable, canonical, 200-status URLsMediumLow
5No redirect chains or loops; internal links point to final URLsMediumLow
6CSS and JavaScript files needed for rendering aren’t blockedMediumLow

Check 1 often fails right after a launch, when a staging Disallow: / ships to production. The website redesign SEO checklist covers that window.

On check 2, Google slows crawling when a server struggles, and a robots.txt file that returns a server error can pause crawling of the whole site. Check 3 mostly hits ecommerce and large catalogs, where every color, size and sort combination becomes a URL. Fix it with a written policy on which facets deserve indexable pages, not one blanket robots rule.

Indexing, canonicals and duplicates

#CheckImpactEffort
7Priority templates (product, category, pricing) show as indexed in the Page indexing reportHighLow
8No stray noindex in meta robots tags or X-Robots-Tag headersHighLow
9http, www and trailing-slash variants redirect in one hop to one versionHighLow
10Indexable pages have an absolute, self-referencing canonical to a 200 URLHighLow
11Sitemaps, internal links and hreflang all use the canonical URLMediumMedium
12Soft 404s and thin templates (empty categories, tag archives, site search) are consolidated or noindexedMediumMedium
13hreflang is reciprocal, uses valid codes and points to canonicalsMediumMedium

Start check 7 in Search Console, not your crawler: the Page indexing report says why Google excluded each URL. Filter by sitemap or URL prefix, one template at a time. A large share of one template stuck in “Crawled - currently not indexed” usually signals thin or duplicate content, not a technical bug.

A canonical is a hint, not a directive. If internal links, sitemaps and redirects point somewhere else, Google may choose its own, hence check 11. And don’t block URLs in robots.txt that you want noindexed: Google can’t see a noindex tag on a page it isn’t allowed to crawl.

Site architecture and internal linking

#CheckImpactEffort
14Links are real <a href> elements, not JavaScript click handlersHighMedium
15Commercial pages get contextual links from related high-traffic pagesMediumLow
16No important page is orphanedMediumLow
17Money pages sit within about three clicks of the homepageMediumMedium
18Paginated lists use crawlable page URLs, not only a “load more” buttonMediumMedium
19Internal links don’t point to 404 pagesLowLow

Check 14 breaks often on modern front ends. A menu built from buttons with click handlers works for users but gives Google no links to follow.

Check 15 is often the audit’s cheapest ranking lever: make sure each of your top 20 organic pages links to its closest commercial page with descriptive anchor text. Check 19 is Low: a few broken links rarely cost traffic, however loudly crawlers flag them.

Page speed and Core Web Vitals

#CheckImpactEffort
20Core Web Vitals judged on field data (CrUX) by template, not one lab scoreMediumLow
21The LCP image isn’t lazy-loaded and loads early at the right sizeMediumLow
22Server response time is stable, with caching and a CDNMediumMedium
23INP: long JavaScript tasks and third-party tags are cut or deferredMediumHigh
24CLS: images, embeds, banners and fonts load without shifting layoutLowLow

Core Web Vitals are a ranking signal, but a modest one next to relevance, so I rate them Medium unless mobile pages fail badly. The fastest win is usually check 21: a theme that lazy-loads every image, hero included, delays the largest element on every page. For INP, open your tag manager before touching code. Tags for abandoned tools often still load on every page.

Structured data

#CheckImpactEffort
25Eligible templates use matching schema (Product, BreadcrumbList, Article, VideoObject)MediumLow
26Markup matches visible prices, availability and ratingsMediumLow
27No errors in Search Console’s rich result reports for key templatesMediumLow
28Organization schema has name, logo and sameAs profile linksLowLow

Structured data doesn’t raise rankings by itself; it makes pages eligible for rich results and states entity details plainly. Generate it from template data so a price change updates the markup automatically. Skip FAQ and HowTo markup as a rich-results play: in 2023 Google limited FAQ rich results to a small set of authoritative sites and dropped HowTo rich results.

JavaScript rendering and AI crawler access

#CheckImpactEffort
29CDN and firewall rules don’t block Googlebot, Bingbot or AI crawlers you intend to allowHighLow
30Main content and internal links are in the server-rendered HTMLHighHigh
31URL Inspection’s rendered HTML shows the full page; JavaScript doesn’t rewrite titles, canonicals or meta robotsHighMedium
32Mobile pages match desktop content, links and structured dataHighMedium
33Tab, accordion and infinite-scroll content is in the HTML or has its own URLMediumMedium
34robots.txt doesn’t block AI crawlers (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot) by accidentMediumLow
35The site is verified in Bing Webmaster Tools and key pages are indexed in BingMediumLow

Check 29 catches a silent failure: CDN bot protection that blocks crawlers before robots.txt is ever read. Look for 403s or challenge pages served to crawler user agents in your logs.

For check 30, compare “view source” with the rendered DOM on one page per template. Google renders JavaScript, but rendering can lag and errors fail quietly. AI search raises the stakes: many AI crawlers fetch raw HTML without running JavaScript, so a client-rendered page can look almost empty to them.

On check 34, Google-Extended is a robots.txt token, not a separate crawler, and blocking it doesn’t remove your pages from Google Search. Check 35 matters because Bing’s index feeds Microsoft Copilot and some other AI search tools.

This audit only confirms crawlers can reach you; whether to allow or block specific AI crawlers is a policy decision covered in the llms.txt guide.

Turning findings into dev tickets

An audit spreadsheet doesn’t ship fixes; tickets do. Each one should let a developer fix the issue and QA verify it without a meeting. When I run technical SEO work, every finding leaves the audit as a ticket like this made-up example:

Title: Product pages: canonical points to parameter URL, splitting signals
Priority: High impact / Low effort
Affected: /products/* (about 2,400 URLs), e.g. /products/wool-throw?color=gray
Current behavior: canonical uses the first variant URL, including ?color=
Expected behavior: canonical is the clean product URL on every variant
Acceptance criteria:
- Canonical on every /products/* URL is absolute, https, no query string
- Variant URLs canonicalize to the parameter-free product URL
- Canonical target returns 200 and appears in the product sitemap
How to verify: crawl /products/ after deploy; zero canonicals containing "?"

Three rules make tickets like this land:

  1. Write acceptance criteria a crawler can check. “Improve canonicals” can’t be verified. “Zero canonicals containing a query string” can.
  2. One ticket per root cause, grouped by template. Assign it to the team that owns the template, not to “SEO.”
  3. Re-crawl after release and log the deploy date, so you can read the effect in Search Console.

Get it built

If your crawler report is long and your dev queue is short, I can run the audit and hand your team ranked, ready-to-build tickets. The entry point is the fixed-price Growth Audit: $1,500, credited if we continue. Get in touch with your domain, or see pricing.

FAQ

Frequently Asked Questions

Which tools do you need for a technical SEO audit?

Google Search Console, a desktop crawler such as Screaming Frog or Sitebulb, PageSpeed Insights for Core Web Vitals, and access to server or CDN logs. Search Console tells you what Google actually did; the crawler tells you why, and the logs confirm which bots reached the site.

How often should you run a technical SEO audit?

Run a full audit once or twice a year, and a focused check after any release that changes templates, navigation, rendering or hosting. Between audits, a weekly look at the Page indexing and Crawl Stats reports in Search Console catches most new problems early.

Do Core Web Vitals really affect rankings?

Yes, but modestly. Google uses them as part of its page experience signals, and relevance still outweighs speed, so fix them after anything that blocks crawling or indexing unless your pages fail badly on mobile.

Can a technical SEO audit alone increase traffic?

Only if something technical is holding pages back, such as blocked sections, pages missing from the index or content that doesn't render. On a technically clean site, growth comes from content, internal links and authority, and the audit's job is to confirm nothing is in the way.

Work with me

Let’s find your biggest growth lever

Tell me about your growth challenge. I’ll tell you honestly if I can help — and if I can’t, who can.

  • ✓ No obligation
  • ✓ No sales script
  • ✓ Honest feedback
  • ✓ Clear next steps