---
title: Tehniline SEO
description: Tehniline SEO-audit: roomatavus, indekseeritavus, turvalisus, URL-id, mobiil ja Core Web Vitals.
category: Marketing
sublabel: SEO
author: AgriciDaniel
tags: 
license: MIT
source: https://github.com/AgriciDaniel/claude-seo
---

# Tehnilise SEO audit

## Kategooriad

### 1. Roomatavus
- robots.txt: olemas, kehtiv, ei blokeeri olulisi ressursse
- XML-saidikaart: käivita `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run sitemap_discovery.py <url> --json`; nõua
  kehtivat kirjet väljal `found` ning raporteeri aegunud või ebaturvalised robots.txt deklaratsioonid
  eraldi toimivatest varuasukohtadest
- Noindex-sildid: tahtlikud vs juhuslikud
- Roomamissügavus: olulised lehed avalehest kuni 3 klõpsu kaugusel
- JavaScripti renderdamine: kontrolli, kas kriitiline sisu nõuab JS-i käivitamist
- Roomamiseelarve: suurte saitide (>10k lehte) puhul on tõhusus oluline
- Googleboti **toomislimiidid**: Googlebot toob HTML-ist esimesed **2MB** ja PDF-ist esimesed **64MB** (pakkimata; 15MB on roomaja-infrastruktuuri laiem vaikeväärtus). See on ammune, mitte 2026. aasta muudatus, kuid tekstisisesed base64-pildid, ülemõõdulised tekstisisesed CSS/JS või paisunud navigatsioon võivad lükata kriitilise sisu/JSON-LD üle piiri ja indeksist välja. Hoia põhisisu + struktureeritud andmed esimese 2MB sees.
- Roomamiskiirus **kohandub automaatselt** (aeglustub 5xx/aeglaste vastuste korral); **käsitsi roomamiskiiruse juhtimist pole** (Search Console'i pärandseade eemaldati jaanuaris 2024). Mõjuta roomamist saidikaartide, serveri reageerimiskiiruse ja robots-juhtelementide kaudu.
- Google'i kanooniline roomamise/robots-viide kolis aadressile **developers.google.com/crawling** (migreeriti 2025-11-20); IP-vahemike failid paigutati ümber kausta `/crawling/ipranges/` ja `googlebot.json` nimetati ümber `common-crawlers.json`-iks.
- AMP-l puudub eraldi järjestuseelis. Alates 2026-07-01 suunab Google Search
  kasutajad otse väljaandja majutatud AMP URL-idele, seega ära soovita AMP Cache'i,
  AMP Vieweri ega signed exchange'i hooldust. Auditeeri AMP-d samade sisu-,
  tegevuspariteedi ja kvaliteedinõuete alusel nagu teisi lehti.

#### AI-roomajate haldamine

Aastatel 2025–2026 roomavad AI-ettevõtted aktiivselt veebi, et treenida mudeleid ja toita AI-otsingut. Nende roomajate haldamine robots.txt kaudu on tehnilise SEO kriitiline kaalutlus.

**Teadaolevad AI-roomajad:**

| Roomaja | Ettevõte | robots.txt tunnus | Eesmärk |
|---------|---------|-----------------|---------|
| GPTBot | OpenAI | `GPTBot` | Mudeli treenimine (MITTE ChatGPT Search) |
| OAI-SearchBot | OpenAI | `OAI-SearchBot` | ChatGPT Searchi tsiteeritavus |
| ChatGPT-User | OpenAI | `ChatGPT-User` | Reaalajas sirvimine (kasutaja algatatud) |
| ClaudeBot | Anthropic | `ClaudeBot` | Mudeli treenimine (MITTE Claude'i otsingu tsiteeritavus) |
| Claude-SearchBot | Anthropic | `Claude-SearchBot` | Claude'i otsingutulemuste tsiteeritavus |
| PerplexityBot | Perplexity | `PerplexityBot` | Otsinguindeks + treenimine |
| Bytespider | ByteDance | `Bytespider` | Mudeli treenimine |
| Google-Extended | Google | `Google-Extended` | Gemini treenimine (MITTE otsing) |
| Applebot-Extended | Apple | `Applebot-Extended` | Apple Intelligence'i treenimisest loobumine (MITTE Siri/Spotlight/Safari) |
| CCBot | Common Crawl | `CCBot` | Avatud andmekogum |

**Peamised erinevused:**
- `Google-Extended` blokeerimine takistab kasutamist Gemini treenimisel, kuid EI mõjuta Google Searchi indekseerimist ega AI Overviews'i (need kasutavad `Googlebot`-i)
- `GPTBot` blokeerimine takistab OpenAI treenimist, kuid EI mõjuta ChatGPT Searchi
  tsiteeritavust, mida reguleerib `OAI-SearchBot`, ega kasutaja algatatud sirvimist
  (`ChatGPT-User`). Iga tsiteeritavusväite puhul kontrolli `OAI-SearchBot`-i; `GPTBot`-i
  olek on tõend ainult treenimiskasutuse kohta
- `ClaudeBot` blokeerimine takistab Anthropicu mudelite treenimist, kuid EI mõjuta
  tsiteeritavust Claude'i enda otsingufunktsioonides, mida reguleerib
  `Claude-SearchBot` (Anthropicu roomajate tugiartikli järgi). Iga Claude'i otsingu
  tsiteeritavusväite puhul kontrolli `Claude-SearchBot`-i; `ClaudeBot`-i olek
  on tõend ainult treenimiskasutuse kohta
- `Applebot-Extended` blokeerimine loobub Apple Intelligence'i / generatiivsete mudelite
  treenimiskasutusest, kuid EI mõjuta leitavust Siri, Spotlighti ega Safari kaudu,
  mis järgib `Applebot`-i (Apple'i tugiartikli järgi); `Applebot-Extended` ise
  ei rooma
- ~3–5% veebisaitidest kasutab nüüd AI-spetsiifilisi robots.txt reegleid

**Näide, AI-roomajate valikuline blokeerimine:**
```
# Allow search indexing, block AI training crawlers
User-agent: GPTBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: Bytespider
Disallow: /

# Allow all other crawlers (including Googlebot for search)
User-agent: *
Allow: /
```

**Soovitus:** enne blokeerimist kaalu oma AI-nähtavuse strateegiat. AI-süsteemide poolt tsiteerimine suurendab brändi tuntust ja suunatud liiklust. Täieliku AI-roomajate/-toojate taksonoomia jaoks vaata oskust `seo-geo`.

> **Kasutaja algatatud toojad eiravad robots.txt-d disaini järgi.** Google dokumenteerib nüüd **Google-Agenti** (Project Mariner, agentne sirvimine) ning **Google-NotebookLM**-i ja **Google Messages**'i kui *kasutaja algatatud* toojaid, mida **ei saa robots.txt kaudu blokeerida**. Kasuta selle asemel serveripoolseid juurdepääsukontrolle. Seevastu `Google-Extended` ja `Google-CloudVertexBot` järgivad robots.txt-d. Esilekerkiv: **Web Bot Auth** (RFC 9421) võimaldab robotitel end krüptograafiliselt autentida `Signature-Agent` päise + võtmekataloogi kaudu aadressil `agent.bot.goog` (kasutab Google-Agent); varuvariandiks jääb pöörd-DNS-i kontroll.

### 2. Indekseeritavus
- Kanoonilised sildid: viitavad iseendale, puuduvad konfliktid noindex'iga
- Dubleeritud sisu: peaaegu duplikaadid, parameetritega URL-id, www vs mitte-www
- Kanoniseerimise parandused võivad aega võtta: Google võib parandatud lehti
  ümberhindamise ajal hoida duplikaadiklastris **kuni kaks nädalat**. Ära
  tõlgenda muutumatut kanoonilist URL-i kohe pärast parandust tõendina, et
  parandus ebaõnnestus.
- Õhuke sisu: lehed, mis jäävad alla tüübipõhise minimaalse sõnade arvu
- Lehekülgedeks jaotamine: rel=next/prev või „lae rohkem“ muster
- Hreflang: korrektne mitmekeelsetel/mitme piirkonna saitidel
- Indeksi paisumine: ebavajalikud lehed, mis kulutavad roomamiseelarvet

### 3. Turvalisus
- HTTPS: jõustatud, kehtiv SSL-sertifikaat, segasisu puudub
- Turvapäised:
  - Content-Security-Policy (CSP)
  - Strict-Transport-Security (HSTS)
  - X-Frame-Options
  - X-Content-Type-Options
  - Referrer-Policy
- HSTS preload: kõrge turvatasemega saitide puhul kontrolli preload-loendisse kuulumist
- **Tagasinupu kaaperdamine** (rämpspostipoliitika rikkumine, pahatahtlikud praktikad): märgi lehed, mis nurjavad tagasinupu `history.pushState`/`replaceState` kaudu (sh kolmandate osapoolte reklaami-/teekide platvormide sisestatud skriptid). Lisati Google'i rämpspostipoliitikatesse 2026-04-13; **jõustamine kehtib alates 2026-06-15** (käsitsi meetmed + automaatsed alandamised): käsitle kriitilisena.

### 4. URL-i struktuur
- Puhtad URL-id: kirjeldavad, sidekriipsudega, sisu jaoks ilma päringuparameetriteta
- Hierarhia: loogiline kaustastruktuur, mis peegeldab saidi arhitektuuri
- Ümbersuunamised: ahelaid pole (max 1 hüpe), püsivate kolimiste jaoks 301
- URL-i pikkus: märgi >100 märki
- Lõpukaldkriipsud: järjepidev kasutus

### 5. Mobiilioptimeerimine ja lehekogemus
- Kohanduv disain: viewport-metasilt, kohanduv CSS
- Puutealad: vähemalt 48x48px 8px vahega
- Fondi suurus: vähemalt 16px baas
- Horisontaalset kerimist pole
- Mobiilipõhine indekseerimine: peamine roomaja on Googlebot Smartphone (kasutuselevõtt lõpetati 2024). Mobiiliversioon **ei ole rangelt kohustuslik** (Google nimetab seda „väga tungivalt soovitatavaks“), mobiilis mittetoimivaid saite saab siiski indekseerida, kuid tegelik risk on **sisu/pariteedi kadu**, mitte otsene välistamine.
- **Mobiili/lauaarvuti sisu pariteet** (kõige väärtuslikum mobiilikontroll): samaväärne põhisisu, ühtivad robots-metasildid, ühtivad pealkirjad/kirjeldused, samaväärsed struktureeritud andmed, roomatavad ressursid; väldi kasutaja tegevust nõudva põhisisu laiska laadimist.
- **Pealetükkivad vahelehed / reklaamitihedus**: märgi täislehe vahelehed, eraldiseisvad nõusoleku-ümbersuunamise lehed, püsivad blokeerivad dialoogid ja liigne/häiriv reklaamitihedus (nimetatud lehekogemuse aspekt). Aktsepteeritav: väikesed bännerid, standardsed CMS-i/õiguslikud dialoogid.
- **„Loe edasi“ süvalingid**: hoia põhisisu **laadimisel kohe nähtavana** (mitte vahekaartide/akordionite taga), ära kaaperda laadimisel kerimist ja säilita URL-i räsifragmendid; laiendatavate jaotiste taha peidetud sisu kvalifitseerub väiksema tõenäosusega.

> **Lehekogemus on juhis, mitte üksik järjestussüsteem.** Järjestust mõjutab otseselt ainult **Core Web Vitals**; **HTTPS** on kinnitatud, kuid kerge signaal (mõjutab <~1% päringutest). Asjakohasus võib võita ka siis, kui lehekogemus on keskpärane, seega ära omista turvapäistele liigset kaalu. NB: eraldiseisev **Page Experience aruanne eemaldati** Search Console'ist (jälgi Core Web Vitalsi + HTTPS-i aruannete kaudu).

### 6. Core Web Vitals
- **LCP** (Largest Contentful Paint): eesmärk <=2,5 s
- **INP** (Interaction to Next Paint): eesmärk <=200 ms
  - INP asendas FID-i 12. märtsil 2024. FID eemaldati Chrome'i väliandmete tööriistadest (CrUX API, PageSpeed Insights) 9. septembril 2024 (Lighthouse on laboritööriist, mis FID-i kunagi ei raporteerinud). ÄRA viita FID-ile kuskil.
- **CLS** (Cumulative Layout Shift): eesmärk <=0,1
- Hindamisel kasutatakse päris kasutajate andmete 75. protsentiili
- Kasuta PageSpeed Insights API-t või CrUX-i andmeid, kui MCP on saadaval

### 7. Struktureeritud andmed
- Tuvastamine: JSON-LD (eelistatud), Microdata, RDFa
- Valideerimine Google'i toetatud tüüpide vastu
- Täieliku analüüsi jaoks vaata oskust seo-schema

### 8. JavaScripti renderdamine
- Kontrolli, kas sisu on nähtav esialgses HTML-is või nõuab JS-i
- Tuvasta, kas tegu on kliendipoolse renderdamisega (CSR) või serveripoolse renderdamisega (SSR)
- Märgi SPA-raamistikud (React, Vue, Angular), mis võivad põhjustada indekseerimisprobleeme
- Kui tuvastatakse dünaamiline renderdamine, märgi see tehniliseks võlaks, mitte kehtivaks seadistuseks.
  Google dokumenteerib seda kui „ajutist lahendust, mitte soovitatavat lahendust“ (a workaround and not a recommended solution) lisanduva
  keerukuse ja ressursikulu tõttu.
  Vaata https://developers.google.com/search/docs/crawling-indexing/javascript/dynamic-rendering

**Soovitatav renderdamisstrateegia:**

| Strateegia | Kasutusjuht |
|----------|----------|
| **SSR** | Avalik SEO-sisu, dünaamilised lehed |
| **SSG** | Staatiline sisu, blogid, dokumentatsioon |
| **CSR** | Ainult autenditud / sisselogimise taga olev sisu |

**Eelistatud raamistikud:** Next.js, Astro, React Router v7 (Remix), SvelteKit

#### JavaScripti SEO: kanooniliste ja indekseerimise juhised (detsember 2025)

Google uuendas detsembris 2025 oma JavaScripti SEO dokumentatsiooni kriitiliste täpsustustega:

1. **Kanooniliste konfliktid:** kui toores HTML-is olev kanooniline silt erineb JavaScripti sisestatud sildist, võib Google kasutada ÜKSKÕIK KUMBA. Veendu, et kanoonilised sildid oleksid serveris renderdatud HTML-is ja JS-renderdatud väljundis identsed.
2. **noindex koos JavaScriptiga:** kui toores HTML sisaldab `<meta name="robots" content="noindex">`, kuid JavaScript selle eemaldab, VÕIB Google siiski toore HTML-i noindex'it järgida. Esita korrektsed robots-direktiivid esialgses HTML-vastuses.
3. **Mitte-200 olekukoodid:** Google EI renderda JavaScripti lehtedel, mis tagastavad mitte-200 HTTP olekukoodi. Vealehtedel JS-i kaudu sisestatud sisu või metasildid on Googlebotile nähtamatud.
4. **Struktureeritud andmed JavaScriptis:** JS-i kaudu sisestatud Product-, Article- ja muud struktureeritud andmed võivad töödelda saada viivitusega. Ajatundlike struktureeritud andmete (eriti e-kaubanduse Product-märgistuse) puhul lisa need esialgsesse serveris renderdatud HTML-i.

**Parim tava:** esita kriitilised SEO-elemendid (canonical, meta robots, struktureeritud andmed, title, meta description) esialgses serveris renderdatud HTML-is, selle asemel et loota JavaScripti sisestamisele.

### 9. IndexNow protokoll
- Kontrolli, kas sait toetab IndexNow'd Bingi, Yandexi ja Naveri jaoks
- Toetavad muud otsingumootorid peale Google'i
- Soovita rakendamist kiiremaks indekseerimiseks mitte-Google'i mootorites

## Agendisõbralikud lehed ja agentne sirvimine

AI-agendid (mitte ainult AI-kokkuvõtjad) loevad saite üha enam kolme kanali
kaudu: visioonimudelid ekraanipiltidelt, toores HTML/DOM ja **ligipääsetavuse
puu** (kõige puhtam signaal). Auditikriteeriumid: semantiline HTML (päris `<button>`
ja `<a>`, mitte `<div onclick>`), siltide seosed, interaktiivsete sihtmärkide suurus,
paigutuse stabiilsus mallide lõikes, `cursor: pointer` korrektsus — need asuvad
failis `references/agent-friendly-pages.md`.

Google pakub nüüd Lighthouse'i kategooriat **Agentic Browsing** (vaikimisi sees alates
Lighthouse 13.3.0, Chrome 150+; rühmad: agendikeskne ligipääsetavus, CLS +
llms.txt, kolm WebMCP auditit). See raporteerib **murdosalise läbimissuhte (X N-st),
mitte 0–100 skoori**; hoia see lahus selle oskuse enda allpool kirjeldatud Agent-UX 0–100
heuristikast. Lighthouse 13.4.1 lülitas kategooria PSI API kaudu uuesti sisse.
See on saadaval ka Lighthouse CLI kaudu lipuga
`--only-categories=agentic-browsing`, DevToolsis ja PSI veebiliideses. Vaata
`references/agent-friendly-pages.md`.

### Auditikäsk

```bash
# Render with Playwright + capture accessibility tree, then score
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run agent_ux_check.py https://example.com --json
```

Skanner väljastab Agent-UX skoori (0–100) koos üksikasjaliku probleemide loendiga:
- HTML-i leiud: päris nupud / ankrud, `<div onclick>` vidinad, semantilised
  orientiirid, sisendid ilma `<label for>`-ita, sisendid ilma ARIA-siltideta
- Ligipääsetavuse puu leiud: sõlmi kokku, interaktiivsed sõlmed, nimetud
  interaktiivsed elemendid, `role="generic"` osakaal

Ligipääsetavuse puu hetktõmmis kasutab Playwrighti kaudu Chromiumi
CDP-käsku `Accessibility.getFullAXTree`. Puu salvestamiseks ilma hindamiseta kasuta
`"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run render_page.py <url> --a11y-tree --json`.

Esita leiud **võimalustena**, mitte ebaõnnestumistena; ära seo auditite läbimist
alla 100 Agent-UX skooriga. WebMCP origin-triali/registreerumise olek vajab kontrollimist
ning WebMCP toe puudumine on endiselt võimalus, mitte defekt.

## Väljund

### Tehniline skoor: XX/100

### Kategooriate jaotus
| Kategooria | Olek | Skoor |
|----------|--------|-------|
| Roomatavus | pass/warn/fail | XX/100 |
| Indekseeritavus | pass/warn/fail | XX/100 |
| Turvalisus | pass/warn/fail | XX/100 |
| URL-i struktuur | pass/warn/fail | XX/100 |
| Mobiil | pass/warn/fail | XX/100 |
| Core Web Vitals | pass/warn/fail | XX/100 |
| Struktureeritud andmed | pass/warn/fail | XX/100 |
| JS-renderdamine | pass/warn/fail | XX/100 |
| IndexNow | pass/warn/fail | XX/100 |

### Kriitilised probleemid (paranda kohe)
### Kõrge prioriteet (paranda 1 nädala jooksul)
### Keskmine prioriteet (paranda 1 kuu jooksul)
### Madal prioriteet (ootejärjekord)

## DataForSEO integratsioon (valikuline)

Kui DataForSEO MCP-tööriistad on saadaval, kasuta `on_page_instant_pages` päris lehe analüüsiks (olekukoodid, lehe ajastus, katkised lingid, lehesisesed kontrollid), `on_page_lighthouse` Lighthouse'i auditite jaoks (jõudluse, ligipääsetavuse, SEO skoorid) ja `domain_analytics_technologies_domain_technologies` tehnoloogiapinu tuvastamiseks.

## Google API integratsioon (valikuline)

Kui Google API mandaadid on seadistatud, kasuta `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run pagespeed_check.py <url> --json` päris PSI + CrUX väliandmete jaoks (asendab ainult laboripõhiseid CWV hinnanguid), `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run crux_history.py <url> --json` 25 nädala CWV trendide jaoks ja `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run gsc_inspect.py <url> --json` iga URL-i päris indekseerimisoleku jaoks.

## Kohaliku või privaatse hosti auditeerimine

`url_safety` keeldub vaikimisi loopback- ja privaataadressidest, seega `http://localhost:3000` ja Tailscale'is asuv testhost ebaõnnestuvad veaga „Blocked hostname“ või „Blocked IP literal“. See vaikimisi käitumine on tahtlik: need skriptid järgivad URL-e, mis leitakse roomatud lehtedelt.

Enne juurutamist hosti auditeerimiseks nimetab operaator selle muutujas `CLAUDE_SEO_LOCAL_TARGETS` — komadega eraldatud loendis `host` või `host:port` kirjetest:

```bash
CLAUDE_SEO_LOCAL_TARGETS="localhost:3000,127.0.0.1:8080,100.101.102.103" \
  "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run fetch_page.py http://localhost:3000/
```

Mida see katab ja mida mitte:

| Käitumine | Lubatud loendis host |
|-----------|------------------|
| Esimene, ülataseme URL toore HTTP kaudu | Lubatud |
| Sellelt URL-ilt jõutud ümbersuunamise sihtmärk | Keelatud |
| Renderdatud lehe toodud alamressurss | Keelatud |
| Playwrighti renderdused (`--render`, ekraanipildid) | Keelatud; kasuta toore HTTP rada |
| Host, mida muutujas pole nimetatud | Keelatud |
| Pilve metaandmete otspunktid, isegi kui loetletud | Keelatud |

`host:port` sobitub ainult selle pordiga; paljas `host` sobitub mis tahes pordiga. Kui muutuja pole seatud, jääb poliitika muutumatuks. Ära kunagi soovita seda seada hostile, mida kasutaja ei kontrolli. Vaata SECURITY.md.

## Vigade käsitlemine

| Olukord | Tegevus |
|----------|--------|
| URL pole kättesaadav | Teata ühenduse veast koos olekukoodiga. Soovita URL üle kontrollida, kontrollida DNS-i lahendamist ja veenduda, et sait on avalikult ligipääsetav. |
| robots.txt-d ei leitud | Märgi, et juurdomeenil robots.txt-d ei tuvastatud. Soovita luua see sobivate direktiividega. Jätka auditit ülejäänud kategooriates. |
| HTTPS pole seadistatud | Märgi kriitiliseks probleemiks. Teata, kas HTTP-d serveeritakse ilma ümbersuunamiseta, kas esineb segasisu või kas SSL-sertifikaat puudub/on aegunud. |
| Core Web Vitalsi andmed pole saadaval | Märgi, et CrUX-i andmed pole saadaval (tavaline vähese liiklusega saitidel). Soovita kasutada asendusena Lighthouse'i laboriandmeid ja soovita enne uuesti testimist liiklust suurendada. |