Technical SEO audit checklist: what to check and in which order
A technical SEO audit finds the reasons search engines cannot crawl, understand or index your pages. This is the checklist we run on our own sites and on client projects, ordered by impact, with commands you can run in a terminal today.
TL;DR
- Audit in order: crawl access, indexability, site structure, page signals, speed, structured data. Fixing step 5 while step 1 is broken wastes time.
- Most serious problems are simple: a stray
noindex, a blocked path inrobots.txt, redirect chains, wrong canonicals, soft 404s. - Use Google Search Console as the ground truth and a crawler plus
curlto find the cause. - Prioritise by pages affected and by revenue pages first, then write fixes as tickets a developer can ship.
- Re-audit after every major release; most regressions come from deployments, not from Google.
A technical SEO audit answers one question: can search engines find, render and index the pages that should earn traffic, and do they understand which version of each page is the real one? Content and links decide how high a page ranks; technical issues decide whether it is in the race at all. We run these checks on integrono.com (18 languages), on our products and on client sites, and the same dozen problems appear again and again.
This checklist is written for developers and founders who can change the site themselves. You do not need paid tools to start: Google Search Console, a browser, curl and a crawler such as Screaming Frog (free up to 500 URLs) are enough.
Before you start: scope and data
- List the page types that should rank (home, services, products, articles, categories) and those that should not (cart, internal search, filters, admin).
- Verify the domain property in Google Search Console (DNS verification covers http, https and all subdomains) and open the Pages, Sitemaps and Core Web Vitals reports.
- Crawl the site with a desktop crawler configured as Googlebot smartphone, and export all URLs with status code, indexability, canonical, title, H1 and word count.
1. Crawl access: can bots reach the pages?
Start with robots.txt. It must return 200, be plain text and not block CSS, JavaScript or the sections you want indexed. A single Disallow: / left over from a staging environment is the classic launch-day disaster.
curl -sI https://example.com/robots.txt | head -n 5
curl -s https://example.com/robots.txt
# Good minimal example
User-agent: *
Disallow: /admin/
Disallow: /cart
Sitemap: https://example.com/sitemap.xml
Check that the XML sitemap lists only canonical, indexable URLs that return 200: no redirects, no noindex pages, no 404s. For multilingual sites each URL needs its language alternates (see our multilingual SEO guide). Submit the sitemap in Search Console and compare "submitted" with "indexed".
2. Status codes and redirects
Every important URL should return a direct 200. Test the variants people and bots actually request:
for u in http://example.com https://example.com https://www.example.com https://example.com/page/ https://example.com/page; do
printf "%s -> " "$u"; curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" "$u"
done
- One canonical host. Exactly one of http/https and www/non-www serves content; the rest 301 to it in a single hop.
- No redirect chains or loops. A to B to C wastes crawl budget and dilutes signals; point old URLs straight to the final one.
- Real 404s. A missing page must return 404 or 410, not a 200 page that says "not found" (a soft 404).
- 5xx errors in the logs or Search Console need immediate attention: repeated server errors make Google slow down crawling.
3. Indexability: is the page allowed and unique?
Three signals decide indexing: the robots meta tag or X-Robots-Tag header, the canonical URL, and whether the content is a duplicate. Check them per template, not per page.
- Noindex leaks. A
noindexcopied from staging into production, or sent in an HTTP header by the web server, silently removes pages from search. - Canonical tags. Each indexable page has one absolute, self-referencing canonical. Paginated and filtered URLs should either canonicalise to a sensible parent or be excluded. Never canonical to a redirecting, noindex or 404 URL.
- Duplicates. Trailing slash variants, uppercase paths, tracking parameters and printer-friendly versions create the same page at several URLs. Pick one and redirect or canonicalise the rest.
- "Crawled - currently not indexed" in Search Console usually means thin or near-duplicate content, not a technical block. Improve the page or merge it.
curl -s https://example.com/page | grep -i -E '<link rel="canonical"|<meta name="robots"'
curl -sI https://example.com/page | grep -i -E 'x-robots-tag|^HTTP|^location'
4. Site structure and internal linking
Search engines discover pages through links, and they use link structure to judge importance.
- Click depth. Important pages should be reachable within three clicks from the home page.
- Orphan pages. Pages that appear in the sitemap but have no internal links get little attention. Compare the crawl list with the sitemap list.
- Anchor text. Use descriptive text ("technical SEO audit"), not "click here". Link from strong pages to the ones you want to rank.
- Broken internal links. Fix links that lead to 404 or to redirects.
- Real links. Navigation built only with JavaScript click handlers instead of
<a href>may not be followed.
5. On-page signals that are technical
- Title and meta description: unique per page, the title roughly under 60 characters so it is not cut off. Find duplicates and empties in the crawl export.
- One H1 that matches the page intent, with logical H2/H3 below it.
- Language and encoding:
<html lang>set correctly, UTF-8 everywhere, hreflang valid and reciprocal. - Images: descriptive file names,
alttext, modern formats (WebP or AVIF) and explicit width and height to avoid layout shifts. - Pagination and filters: make sure faceted URLs do not generate millions of crawlable combinations.
6. Rendering and JavaScript
Google can render JavaScript, but rendering is queued and sometimes fails. If primary content or links appear only after client-side rendering, test with the URL Inspection tool ("View crawled page" and the screenshot). For content sites, server-side rendering or static output is the safest option. Compare curl output with what you see in the browser: if the text you want to rank is missing from the raw HTML, you depend on rendering.
7. Speed and Core Web Vitals
Page experience is a ranking factor of moderate weight and a conversion factor of high weight. Check the Core Web Vitals report in Search Console (field data from real users) and run PageSpeed Insights or Lighthouse on your templates. The usual targets are Largest Contentful Paint under 2.5 s, Interaction to Next Paint under 200 ms and Cumulative Layout Shift under 0.1. Typical quick wins: compress and size images, enable Brotli or gzip, cache static assets for a long time, serve through a CDN, and reduce render-blocking CSS and scripts. We cover the PHP side in our guide to Core Web Vitals for PHP sites.
8. Structured data
Structured data does not give a ranking boost by itself, but it makes pages eligible for rich results and helps machines understand entities. Validate every template with the Rich Results Test and the Schema Markup Validator. Typical types: Organization, BreadcrumbList, Article, FAQPage, Product with Offer, LocalBusiness. The markup must match what users can see on the page. See our JSON-LD guide for ready-to-use examples.
9. Security and mobile basics
- HTTPS everywhere with a valid certificate, HTTP redirected to HTTPS and no mixed content.
- Responsive layout with a correct
viewportmeta tag; Google indexes the mobile version first. - No intrusive interstitials covering the content on mobile.
- Security headers and a healthy server: they do not rank pages, but a hacked or slow site loses rankings quickly.
10. Prioritise and write tickets
An audit is useful only if it ends in shipped fixes. Sort findings by impact:
- Critical: pages blocked, noindexed or returning errors; wrong canonicals on revenue pages; broken redirects.
- High: duplicates, redirect chains, orphaned important pages, missing hreflang, poor LCP on key templates.
- Medium: duplicate titles, missing structured data, image weight.
- Low: cosmetic markup issues.
For each item write the URL pattern, the evidence (command output or screenshot), the expected result and an owner. "Fix canonicals" is not a ticket; "Product pages with a ?sort= parameter should canonicalise to the clean URL; template product.php, line X" is.
How often to audit
Run a light check monthly (Search Console reports, a quick crawl, status of key URLs) and a full audit after migrations, redesigns, framework upgrades or when traffic drops without a clear reason. Add automated checks to your deploy pipeline: a test that the home page returns 200, has no noindex and has the expected canonical catches the most expensive mistakes before users do.
How we can help
If you want an expert pass over your site, our technical SEO service covers audits, fixes in code and monitoring, and we can implement the changes ourselves rather than hand you a PDF. Start with a paid consultation if you need a prioritised list of what to fix first. For a founder-level view of the whole SEO strategy, see SEO for SaaS founders.
Frequently asked questions
What is included in a technical SEO audit?
Crawl access (robots.txt, sitemap), status codes and redirects, indexability (noindex, canonical, duplicates), site structure and internal links, on-page technical signals, rendering, speed and Core Web Vitals, structured data, security and mobile basics.
How long does a technical SEO audit take?
For a small site of up to a few hundred pages, a thorough audit takes one to three days. Large or JavaScript-heavy sites and multilingual sites take longer because each template and each language must be checked.
Which tools do I need for a technical SEO audit?
Google Search Console, a crawler such as Screaming Frog, curl for headers and redirects, PageSpeed Insights or Lighthouse for performance and the Rich Results Test for structured data. Paid suites such as Ahrefs or Semrush add monitoring and backlinks.
How often should I run a technical SEO audit?
Do a light monthly check and a full audit after migrations, redesigns or major releases. Add automated tests for noindex, canonical and status codes to your deployment pipeline.
Why are my pages crawled but not indexed?
"Crawled - currently not indexed" usually points to thin, duplicated or low-value content rather than a technical block. Improve or merge the pages, add internal links and make sure each has a unique purpose.
Free discovery call
Bring a messy stack or stalled integration - Integrono will map the smartest first move.
You get a senior take on budget traps, dependencies and whether to buy, glue or build - before paid work starts. The CEO stays in the loop.