Marketing, SEO and AI search
Technical SEO audit checklist 2026: what to check, in what order, with the viton13.com case
A technical SEO audit checks, in order, whether search engines can reach your pages, whether they index the ones that matter, whether every retired URL gets a clear answer (410, redirect or noindex), whether the rendered page carries the content, and whether a release can break it again. It should end in a ranked fix list with evidence.

What does a technical SEO audit check in 2026, and in what order?
Order matters more than checklist length: a page answering 404 gains nothing from a better title. Check by template (product pages, stories, the language versions of one page), not URL by URL: one faulty template can explain hundreds of warnings.
| Layer | What to check | Passes when |
|---|---|---|
| 1. Access | robots.txt (AI bots included), status codes, redirects | Pages meant to rank answer 200 |
| 2. Index | Not-indexed reasons in Search Console | Each large group has a known cause and an owner |
| 3. URL answers | Retired, moved and empty URLs | One answer each: 308, 410 or noindex |
| 4. Languages | hreflang, canonical, noindex per language | Tags are reciprocal; none point to a closed page |
| 5. Rendering | Content, links and schema in rendered HTML (URL Inspection) | Present without clicks; links are <a href> |
| 6. Experience | Core Web Vitals from real visits | LCP ≤ 2.5 s, INP ≤ 200 ms, CLS ≤ 0.1 at the 75th percentile |
| 7. Release | What stops a deploy undoing the fixes | A crawl of the build blocks any broken link |
How do you read the Search Console Pages report, and which not-indexed reasons matter?
The Pages report is Google's own account of your site. On 21 August 2026 it showed 738 viton13.com pages indexed and 2,572 not; most of the gap was 1,331 pages discovered but not indexed, 673 answering 404 and 383 crawled but not indexed.
Google aims to index only the canonical version of each important page, and the report shows at most 1,000 example URLs per reason: read the patterns, then complete big groups from sitemaps and a crawl.
| Reason | What it means | First action |
|---|---|---|
| Discovered – currently not indexed | Found; crawl postponed, usually to avoid overloading the site | Cut URL waste: parameters, empty archives, links to retired pages |
| Crawled – currently not indexed | Fetched, not indexed for now | Improve and link, merge or close; Google says no need to resubmit |
| Not found (404) | Answers 404; Google does not process a newly found 404 | Split into moved (redirect), removed (410) and broken links (fix) |
| Soft 404 | A “not found” page served with a 200 code | Serve a real 404 or 410, or redirect to a true equivalent |
Google's help adds that a 404 is not necessarily a problem when a page was removed without a replacement; the URL simply drops out of the index.
When should a URL return 410, a 301/308 redirect or noindex, and when should it stay?
Every URL Google knows needs exactly one answer. We decide in this order:
- Is there a live page with the same intent?Redirect permanently in one hop; Google treats 301 and 308 the same. Keep it as long as possible, generally at least a year per Google's site-move guide, and never funnel many old URLs to the home page.
- Was it removed on purpose, with no equivalent?Answer 410 (404 also works), with a short page that links to the nearest live section.
- Do people need it, but search does not?Keep it and add noindex in the HTML or an X-Robots-Tag header: filters, empty topic pages, thin language versions. Do not also block it in robots.txt, or the crawler never sees the noindex.
- Is it a real page that is not indexed yet?Keep 200, improve it, link to it and list it in the sitemap. Closing it only hides the problem.
Google treats all 4xx codes except 429 the same. We still use 410 for deliberate removals because it records intent: in the next audit a 410 reads as “retired” and a 404 as “find out what broke”.
How did we retire 1,008 URLs and map 141 redirects on viton13.com?
viton13.com is our own Next.js site in five languages. By August 2026 its journal had retired many stories and archive briefs whose addresses Google still knew. Today the site answers:
- 410 Gone for 1,008 exact VJOURNAL URLs, for pattern rules (removed archive briefs, English slugs under /ru and /es) and for 27 pre-2026 addresses such as old .html pages and /tproduct/ links.
- A one-step redirect for 74 retired stories to their surviving version.
- 141 permanent redirect rules (308) in one map, including /oldmoneymen, which now opens the men's collection of Old Money (VITON13's own label), service sections renamed in five languages, and the www address.
- Service links in journal stories that led to 404s now reach live pages (4 targets in new links, 10 in published stories), found by crawling 18,576 internal routes; a 500 error on twelve VIT MARKET brand pages is fixed.
The mechanism is worth copying. A proxy layer runs before any page is built, checks the path against exact lists and then pattern rules, and returns one 308 redirect or a 410 page with an X-Robots-Tag: noindex, nofollow header. All 141 rules live in one file, so each is written once.
How do hreflang and noindex work together on a multilingual site?
Google's rule is strict: each language version lists itself and all the others, and if two pages do not point to each other, their tags are ignored. The x-default value names the fallback page for visitors whose language matches no version.
The trap is a page that exists in every language but has content in only some. On viton13.com a journal topic page is indexable only where it has stories. Elsewhere it carries noindex, and its hreflang lists only the indexable versions. That is our rule, not Google's: a language cluster should not point search engines at pages we asked them to drop. The sitemap agrees: in each language it lists 13 of the journal's 14 categories, leaving out SMART, which has no stories yet.
How much rendering, Core Web Vitals and schema work is enough?
Enough means a crawler gets your content and links without clicking or scrolling, and real visitors pass the three Core Web Vitals thresholds. Five checks cover it:
- Links must be <a> elements with an href; a menu built on click handlers can hide whole sections.
- noindex in the first HTML may make Google skip rendering, so removing it later by script may not work.
- Server or pre-rendering is, in Google's words, “still a great idea”, because not all bots run JavaScript.
- Field data at the 75th percentile: LCP within 2.5 seconds, INP of 200 ms or less (a stable Core Web Vital since 2024), CLS of 0.1 or less.
- Schema must match the visible page; fix contradictions in price, dates or authors before adding new types.
Should you let AI crawlers in, and do you need llms.txt?
Decide per bot: blocking one does not block the others.
| User agent | Owner and job | If you block it |
|---|---|---|
| OAI-SearchBot | OpenAI; ChatGPT search | Out of ChatGPT search answers (navigational links remain possible) |
| GPTBot | OpenAI; model training | Training opt-out only; OpenAI says each setting is independent |
| ChatGPT-User | OpenAI; fetches a page a user asked for | robots.txt rules may not apply |
| Google-Extended | Google; training of future Gemini models | No effect on Google Search inclusion or ranking |
| PerplexityBot | Perplexity; its search results | Out of Perplexity search; not a training crawler, per Perplexity |
The usual setup for a business that wants to be found: allow search bots, decide on training separately. Google says AI Overviews and AI Mode need nothing beyond an indexed, snippet-eligible page, and no AI text files. llms.txt is a September 2024 proposal, revised in August 2026: optional, cheap, and no fix for an unindexed page.
How do you stop a release from breaking links again?
On 10 September 2026 two defects passed every automated check on viton13.com: 35 journal links pointed at 404 pages, then twelve brand pages answered 500. Since then each deploy runs a gate:
- Build and startServe the production build, not the development server.
- CrawlFollow every internal link from the sitemap and navigation, and record each status code.
- RefuseAny internal link answering 4xx or 5xx stops the deploy. No threshold, no warning-only mode.
- AnnounceSend the sitemap's URLs to IndexNow, which Bing, Yandex and the other engines on indexnow.org read. Google is not on that list; for Google the sitemap does this job.
The gate's own test passes 9 of 9, and IndexNow accepted 65 URLs on 19 September 2026. A small site can do this by hand: crawl a staging copy with a free crawler before each launch.
What does a technical SEO audit cost, and can you do it yourself?
On a site of a few hundred pages in one language you can run layers 1 to 3 yourself. Several languages, a JavaScript framework or past migrations make the causes harder to find.
| Route | Cost | Time | What you get | Fits when |
|---|---|---|---|---|
| Do it yourself | Search Console free; Screaming Frog free up to 500 URLs, £199 a year licensed | Your own hours | Raw data; you diagnose | Small site in one language |
| VITON13 Search Snapshot | $33 AI-assisted or $53 human-led | 1–2 working days | Visibility on top queries, 3 competitors side by side, one page of findings | You are unsure the problem is technical |
| VITON13 Technical SEO audit | $73 AI-assisted or $93 human-led | 5–8 working days | Crawl and index evidence, severity-ranked issue register, developer-ready brief | Pages are missing from Google, or a migration just shipped |
| VITON13 Technical SEO implementation | $53 AI-assisted or $73 human-led | 3–5 working days | Indexability audit, code-level fixes, validation report | You have findings but no developer |
Test any audit the same way: can each finding become a task with the URL pattern, the evidence and the check that proves the fix?
How VITON13 does it
We start from your Search Console data and a crawl of the live site, then reproduce each priority finding on real URLs: status code, rendered HTML, canonical, hreflang. It suits small-business sites, stores and multilingual sites losing pages from search; the ranked fix list arrives in 5–8 working days.
Technical SEO audit
- Price
- $73 AI-assisted or $93 human-led
- Timeline
- 5–8 working days
Technical SEO implementation
- Price
- $53 AI-assisted or $73 human-led
- Timeline
- 3–5 working days
AI-assisted: AI drafts inside defined steps, a person directs and checks every result. Human-led: a specialist does the work and AI assists.
What is included
- 1 crawl and index evidence pack across the 7 layers above, grouped by URL pattern
- 1 severity-ranked issue register: URL pattern, root cause, evidence and verification check per row
- 1 developer-ready remediation brief, e.g. which URLs get 410, a redirect or noindex
- 1 written completion note
Not included
- Code changes (the separate Technical SEO implementation service)
- Tool licences and other external costs
- Content writing and link building
- Promises of rankings, indexing or traffic
Revisions: The number of review rounds is set in the written scope before work starts.
Get an estimate in 1 working dayExample
INTERNALOur own product
viton13.com: 410s, redirects and a release gate on our own site
Our own site, not client work. Baseline from the owner's Search Console export: 738 pages indexed and 2,572 not on 21 August 2026, and 69 clicks from 17,373 impressions in the 28 days from 30 July to 26 August 2026. On 19 September 2026 we rechecked, one by one, the 673 addresses the export listed as 404: 604 now answer 410 Gone, 67 redirect (308) to a live page and 2 still answer 404.
What this does not prove
- Any change in indexing, rankings, clicks or traffic: Search Console data from after the fixes is not in yet.
- The 604 / 67 / 2 split is the state of Google's old 404 list on 19 September 2026, not a before-and-after of one release.
- Client results: this is our own site, and the figures cover only the main viton13.com property.
Read the case: Technical SEO on viton13.com: 410s, redirects and release link checks
Questions and answers
How often should a small business run a technical SEO audit?
After any migration, redesign, CMS or domain change, and before a large content push. In between, check the Pages report monthly for a reason whose count jumps: a sudden rise in “Not found (404)” usually points to a release. If every release is crawled, a full audit can focus on templates and trends.
Does noindex save crawl budget?
No. Google's crawl budget guide says a noindexed page is still requested and then dropped, which wastes crawling; permanently removed pages should return 404 or 410. Crawl budget rarely matters for small sites anyway: the guide targets sites with over a million pages that change weekly, or over 10,000 that change daily.
How long does Google take to drop URLs that return 410?
Google publishes no fixed timeline: a URL goes when Google recrawls it, on Google's own schedule. To hide a page sooner, the Search Console Removals tool blocks it for about six months while the 410 does the permanent job.
Can I audit a Next.js site myself?
Partly. In the URL Inspection live test, compare the HTML Google renders with what visitors see; crawl a production build; check metadata in every language. Common traps: redirects split across the config, the proxy layer and pages; dynamic routes that create empty pages; robots settings that differ between builds.
Will a technical SEO audit improve my rankings?
Not by itself, and nobody can honestly promise it. An audit removes the reasons Google cannot find, render or keep your pages; ranking then depends on content, demand and competition.
Sources
- Google Crawling Infrastructure — How HTTP status codes affect Google's crawlers —
- Search Console Help — Page indexing report —
- Google Search Central — Redirects —
- Google Search Central — Site moves with URL changes —
- Google Search Central — Block indexing with noindex —
- Google Crawling Infrastructure — Crawl budget management —
- Google Search Central — Localized versions (hreflang) —
- Google Search Central — JavaScript SEO basics —
- web.dev — Web Vitals —
- Google Crawling Infrastructure — Common crawlers (Google-Extended) —
- Google Search Central — AI features and your website —
- OpenAI — Overview of OpenAI crawlers —
- Perplexity — Perplexity crawlers —
- llmstxt.org — The /llms.txt proposal —
- Search Console Help — Removals tool —
- IndexNow — FAQ —
- Screaming Frog — SEO Spider pricing —