App-Kit
App-Kit
HomeTeamBlog
SEOchecklistcase study

Technical SEO audit checklist: 18 checks that actually matter

Written by Vitaliy Sazonov
Jul 3, 2026 · 8 min read · Case Study
20314k57

Start a technical SEO audit with 18 checks in six groups: status codes and redirects, robots.txt and sitemap, canonical and indexing, meta tags, images, and hreflang with AI bots. They come from the canon behind our 400-point auditor. After fixes in these groups, our own site went from 70.5 to 93 in a fast audit.

What a technical SEO audit is

A technical SEO audit is a check of a site against measurable signals that drive crawling, indexing and the search snippet. Each item is a yes or no: the page returns 404 or 200, the canonical is either there or missing. Content quality and design are out of scope and get reviewed by hand.

Each check in the canon has a priority that sets its weight in the score. P0 is critical for indexing, weight 10. P1 clearly affects rankings and snippets, weight 3. P2 is nice to have, weight 1. Below, each group lists three checks with canon IDs, so a finding in the report is easy to match.

Group 1. Status codes and redirects

  • HTTP-005 (P1) — a missing URL returns 404, not 200. Otherwise, search engines index empty pages as real ones
  • REDIR-001 (P0) — the http version redirects to https with a 301. Without it, two copies of the site live in the index
  • REDIR-007 (P0) — no redirect chain is longer than one hop. Link straight to the final URL

You can check by hand with curl -I: the response shows the status code and the Location header. If the http version returns 200, the redirect is one line in your web server or CDN config.

Group 2. robots.txt and sitemap.xml

  • ROBOTS-002 (P0) — robots.txt does not block the whole site. A leftover Disallow: / from staging is a classic outage
  • ROBOTS-005 (P1) — robots.txt points to sitemap.xml
  • SM-003 (P0) — the sitemap lists only URLs that return 200, with no redirects or 404s
txtrobots.txt
User-agent: *
Allow: /

Sitemap: https://example.com/sitemap.xml

Group 3. Canonical and indexing

  • CAN-001 (P0) — every indexable page has a canonical
  • CAN-009 (P1) — a unique page points its canonical to itself. That merges UTM and trailing-slash duplicates into one URL
  • INDEX-001 (P0) — key pages carry no noindex. The tag often stays in a template after development

Write the canonical as an absolute URL in the same format as the sitemap: same protocol, host and trailing slash. A mismatch between them reads as a mixed signal to search engines.

Group 4. Title, description and H1

  • META-002 (P0) — every page has a unique title
  • META-003 (P1) — the title is 10 to 70 characters; longer ones get cut in the snippet
  • META-008 (P0) — the page has exactly one H1

Our auditor accepts descriptions of 50 to 160 characters and H1s of up to 70. The same title on dozens of pages almost always means a template bug: one file fix closes every finding at once.

Group 5. Images

  • IMG-001 (P1) — meaningful images have a descriptive alt
  • IMG-004 (P1) — WebP or AVIF is used where possible
  • IMG-005 (P1) — images have width and height set, so the layout does not jump on load

Images are usually the heaviest part of a page. In our test a 1600×1600 photo weighed 663 KB as JPG and 362 KB as WebP from our converter: 45% less with no visible change.

Group 6. hreflang, AI bots and llms.txt

  • INT-002 (P1) — hreflang links are reciprocal: if the RU page points to EN, the EN page points back
  • AI-010 (P1) — robots.txt has explicit sections for GPTBot, ClaudeBot, PerplexityBot and other AI bots, with a deliberate policy
  • LLMS-001 (P2) — a /llms.txt file exists if you want the site in AI assistant answers
txtrobots.txt — AI bots
User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

Case study: 70.5 → 93 on our own site

We run the audit on our own site, app-kit.ru. The first fast audit, run on September 15, 2026, scored 70.5 with 14 failed checks. They included an http version with no redirect, pages without a self-canonical, titles that were too long and a robots.txt with no AI bot sections.

RunScoreFailedTime
Sep 15, 202670.51419.6 s
Oct 3, 202693.0724.4 s
18
checks in this list
400
checks in the auditor canon
+22.5
points in two weeks
7
failed checks left

The repeat run on October 3 covered 235 automated checks, with no failures in any group of this list. The 7 failures left are in forms (required field markup, clickable messenger links) and in monitoring for 404, 500 and JS errors. That is next on our list.

An audit is only useful if it ends in a to-do list shorter than ten items.

The checklist in one table

All 18 checks in one table, ready for your task tracker. Close P0 first, then P1, and leave P2 for a planned release.

IDCheckPriority
HTTP-005Missing URL returns 404P1
REDIR-001http → https via 301P0
REDIR-007Redirect chain of one hop at mostP0
ROBOTS-002robots.txt does not block the siteP0
ROBOTS-005robots.txt lists the sitemapP1
SM-003Sitemap lists only 200 URLsP0
CAN-001Canonical on indexable pagesP0
CAN-009Self-canonical on unique pagesP1
INDEX-001No noindex on key pagesP0
META-002Unique titleP0
META-003Title of 10 to 70 charactersP1
META-008Exactly one H1P0
IMG-001Alt on meaningful imagesP1
IMG-004WebP or AVIF where possibleP1
IMG-005Width and height setP1
INT-002Reciprocal hreflangP1
AI-010AI bot sections in robots.txtP1
LLMS-001An llms.txt fileP2

FAQ

Why 18 checks and not 400?

These 18 cover crawling, indexing and the snippet, the base everything else stands on. The rest of the canon runs in an automated audit in seconds, so there is no need to keep it in your head.

Which checks come first?

The P0 ones: each failure costs 10 points and usually hurts indexing of the whole site. This list has eight of them: redirects, robots.txt, sitemap, canonical, noindex, title and H1.

How often should I rerun the audit?

After every notable release and at least once a month. A repeat run takes under a minute. On our site, the run two weeks later showed the jump from 70.5 to 93 and left a ready list of 7 tasks.

Does a single-language site need hreflang?

No. The INT checks only apply when a site has language versions. The auditor marks them as not applicable and takes no points off.

Next: the audit and the docs

Vitaliy Sazonov
Lead Software Engineer / CTO · App-Kit

Sets App-Kit's technical direction and builds the tool engines, including the 400-point SEO audit.

Join the discussion

Comments are coming to the App-Kit blog soon. Got a correction or a question?

Send feedback

Read also