Proč se velké weby obtížně indexují: souboj mezi crawl budgetem a entropií URL
Čím větší web, tím vyšší pravděpodobnost, že se z něj stane labyrint pro roboty. Narůstá tlak na crawl budget, exploduje počet variant URL, vznikají crawl traps (pasti) a při špatné kanonikalizaci se rozšíří takzvané canonical peklo – nekonzistentní signály, které způsobí rozpad autority a roztříštěnou indexaci. Cílem technického SEO je snížit entropii URL, stabilizovat signály a nasměrovat crawlery k hodnotným dokumentům co nejúsporněji.
Anatomie crawl budgetu: kapacita, priorita a odpad
- Kapacita: kolik URL je robot ochoten denně procházet při daném výkonu serveru a historii odezev.
- Priorita: které URL robot chce navštívit na základě interních odkazů, sitemap, externích odkazů a historické hodnoty.
- Odpad: vše, co vyčerpává rozpočet bez přínosu – duplicity, filtry, nekonečné kalendáře, parametry relací, stránky s nízkou hodnotou, které nekonvertují.
Optimalizace velkého webu je kombinací omezení generování URL, správné signalizace (robots, meta, canonical, hreflang) a výkonu (rychlé odpovědi 200, správné odpovědi 304, cache).
Crawl traps: typologie a jejich neutralizace
- Fasetové filtry: nekonečné kombinace parametrů (
?farba=modra&velkost=44&sort=cena_desc). Řešení: allowlist parametrů, interní odkazy pouze na povolené kombinace, ostatnínoindex, followa bez odkazů v HTML; přehledové landing pages vytvářet pouze pro komerčně hodnotné fasety. - Kalendáře a nekonečné stránkování: URL tvořené daty (
/2025/10/21/) nebo nekonečné tlačítko „Další“. Řešení: omezit stránkování (např. na 20 stránek), archivní seznamy seskupit po měsících, pro hluboké stránky nastavitnoindex. - Parametry relací a měření návštěvnosti:
?utm=,?gclid=,?sessionid=. Řešení: odstraňování parametrů na serveru, canonical na čistou URL, nepoužívat tyto URL v interním prolinkování ani v sitemapách. - Permutace řazení/pořadí:
?sort=,?order=. Řešení: indexovatelná je pouze jediná „výchozí“ verze, ostatní nastavit jakonoindex, follow. - Infinite scroll: generuje požadavky bez pevné struktury URL. Řešení: progresivní degradace – souběžně nabídnout stránkované URL (
?page=2) a interní odkazy na ně. - Duplicitní aliasy cest:
/produkt/kolobezkaa/sk/produkt/kolobezka/. Řešení: striktně vynutit jedinou kanonickou cestu (301 + canonical).
Canonical peklo: když si signály odporují
„Canonical“ je doporučení, nikoli příkaz. Při konfliktech vyhledávače obvykle důvěřují internímu prolinkování, párům hreflang a konzistenci. Mezi nejčastější chyby patří:
- Kanonická URL, kterou nelze indexovat:
<link rel="canonical" href=".../a">, ale/amánoindexnebo vrací stavový kód 3xx/4xx. Výsledek: ignorování nebo výběr jiné kanonické URL. - Stránkování → canonical na 1. stránku: každá stránka stránkování odkazuje na
?page=1, čímž obsah z?page=2..nmizí z indexu. Řešení: stránkované stránky mají mít self-canonical, případně nastavenénoindexa long-tail zachycují souhrnné landing pages. - Konflikt hreflang a canonical: hreflang odkazuje mezi jazyky, ale canonical ukazuje na jiný jazyk nebo jinou cestu. Řešení: páry hreflang musí odkazovat na kanonické URL odpovídající jazykové verze.
- Cross-domain canonical bez vlastnictví: zpravodajský syndikát nastaví canonical na partnerský web, ale interní odkazy vedou na vlastní kopii. Výsledek: fragmentace autority.
- Řetězení a smyčky: A canonical → B, B canonical → C nebo A ↔ B. Řešení: přímý self-canonical, žádné řetězce ani cykly.
- Nekonzistentní normalizace:
wwwvs.non-www,httpvs.https, koncové/, velká písmena v cestě. Řešení: vynutit přesměrování 301, sjednotit kanonické URL a používat interní odkazy pouze v jedné podobě.
Pravidla normalizace URL pro velké weby
- Protokol: vždy
https, vynucené přesměrování 301 + HSTS. - Hostitel: jeden hlavní hostitel (např.
www), ostatní přesměrovat kódem 301. - Cesta: koncové lomítko podle konvence (důsledně), malá písmena, normalizovaná diakritika, žádná duplicitní lomítka.
- Parametry: pevný seznam povolených parametrů; standardizované pořadí parametrů; odstraňovat nepotřebné parametry.
- Self-canonical: každá indexovatelná URL deklaruje sama sebe; výjimky pouze tam, kde skutečně existuje nadřazená verze.
Řízení robotů: robots.txt, meta robots a HTTP hlavičky
- robots.txt: blokování crawl traps, nikoli však indexace již objevených URL. Vhodné pro hromadně generované vzory (
/vyhladavanie*,/*?sort=). - Meta robots:
noindex, followpro sekundární varianty (řazení, hluboké stránky stránkování, málo hodnotné filtry). - X-Robots-Tag: v hlavičkách pro binární soubory, exporty, feedy (
noindex). - Disallow ≠ Noindex: blokovaná URL může zůstat v indexu jako „odkazovaná“. Chcete-li mít jistotu, že ji vyloučíte z indexu, použijte
noindex.
Výkon a cache: zrychlení crawlů bez ztráty obsahu
- Stabilní odpovědi 200 s TTFB < 200 ms u klíčových šablon (seznamy, detail). Rychlé odpovědi zvyšují „crawl rate limit“.
- HTTP 304 s
ETag/Last-Modifiedpro statické soubory i HTML, aby se šetřilo při opakovaných crawlech. - Správné kódy 4xx/5xx:
410pro trvale odstraněný obsah,404pro neexistující obsah;503 + Retry-Afterpři údržbě, jinak riskujete snížení crawl rate. - CDN a edge caching: konzistentní pravidla cachování, ale pozor na varianty podle parametrů query.
Sitemapy pro obří weby: segmentace a zdravé signály
- Index sitemap a tematická segmentace (produkty, články, lokality, jazykové verze).
- max. 50k URL / 50 MB na jednu sitemapu; rotace a regenerace pouze při změnách.
- <lastmod> pouze v případě skutečné relevantní změny obsahu, nikoli při drobné aktualizaci ceny.
- Pouze kanonické, indexovatelné URL; žádné
noindex, žádné 3xx/4xx/5xx.
JavaScript a vykreslování: parita a pasti hydratace
- SSR/SSG pro klíčové šablony, aby se obsah a odkazy objevily už v prvotním HTML.
- Odkazy v HTML: interní odkazy musí být v DOM dostupné bez nutnosti interakce; navigaci nevázat pouze na
onclick. - Líně načítaný obsah: při líném načítání zajistěte jeho zpřístupnění také crawlerům (záložní obsah v noscript, prerenderování důležitých bloků).
- Fasety a JS: filtrační rozhraní generuje URL s povolenými parametry; nezatahujte crawler do nekonečných kombinací.
Stránkování, archivy a zachycení long-tailu
- Self-canonical na stránkovaných stránkách a silné interní odkazy na obsahové „huby“ namísto indexace hlubokých stránek.
- Alternativa k rel=prev/next: jasné interní odkazy (první / poslední / konkrétní stránka), přehledové landing pages se sjednoceným obsahem.
- Noindex pro hluboké stránky (>5), pokud nepřinášejí jedinečnou návštěvnost z vyhledávání, ale ponechte
followpro předávání autority.
Hreflang ve velkém: symetrie a kanonické URL
- Symetrické páry: každý jazyk odkazuje na ostatní i sám na sebe (
x-defaultpro globální verzi). - Konzistence s canonical: hreflang vždy odkazuje na kanonické URL odpovídajícího jazyka.
- Rozdělení sitemap: anotace hreflang v sitemapách se při velkých objemech škálují lépe než v HTML.
Serverové logy: nejpřesnější barometr zdraví crawlů
- Poměr 200 vs. jiné než 200 pro Googlebot/Bingbot – cílem je minimalizovat 5xx a 404.
- Nejčastější vzory neefektivního crawlování: regulární výrazy identifikující nejčastější zbytečné cesty/parametry.
- Frekvence opakovaných crawlů: důležité URL by se měly znovu procházet v řádu dnů, nikoli měsíců.
Diagnostika canonical pekla: kontrolní seznam
- Je na stránce self-canonical a cílová URL vrací 200/je indexovatelná?
- Neexistují v kanonických URL řetězce nebo smyčky?
- Vedou interní odkazy na stejnou podobu URL jako canonical?
- Ukazují hreflang a canonical na tutéž verzi v rámci jazyka?
- Mají stránky s parametry a řazením nastavené
noindex, followa nejsou uvedeny v sitemapách? - Stránkované stránky: self-canonical, nebo záměrné
noindexs obsahovou alternativou?
Implementační vzory pro CMS a logiku na okraji sítě
- Middleware pro normalizaci URL: přepíše velká písmena, odstraní duplicitní lomítka, seřadí parametry, přesměruje kódováním 301 na kanonického hostitele/protokol.
- Seznam povolených parametrů: server povolí indexovatelné kombinace, ostatním nastaví
noindexa omezí interní odkazy. - Content API s příznakem „indexable“: šablony vykreslují meta tagy a canonical podle stavu dokumentu.
- Generátor sitemap: vytváří pouze URL se stavem 200, které jsou indexovatelné a mají self-canonical a skutečný údaj
lastmod.
Politika produktových a výpisových stránek
- Detail produktu: jediná kanonická URL; varianty (barva/velikost) jako atributy na stránce nebo povolené fasety, nikoli jako samostatné indexovatelné URL, pokud nemají samostatnou návštěvnost z vyhledávání.
- Kategorie: výchozí verze bez parametrů je indexovatelná; kombinované fasety pouze tehdy, přinášejí-li návštěvnost z vyhledávání a mají jedinečný obsah (H1, úvod, FAQ, interní odkazy).
Škálování validace: automatické testy
- Test 3xx/4xx/5xx v sitemapách: sestavení se ukončí chybou, pokud se některý z těchto kódů objeví.
- Test canonical-self: pokud je canonical jiný než self a není na seznamu povolených výjimek, sestavení se ukončí chybou.
- Symetrie hreflang: kontrola při nasazení.
- Odkazy s parametry v HTML: linter zachytí nepovolené parametry v interních odkazech.
Rozhodovací matice: indexovat, nastavit noindex, zakázat procházení, nebo přesměrovat kódem 301?
| Typ situace | Doporučená akce | Poznámka |
|---|---|---|
| Duplicitní cesta (www/non-www, http/https) | 301 + self-canonical | Interní odkazy vždy směřují na cílového kanonického hostitele/protokol. |
| Parametry sort/order | noindex, follow + self-canonical | Neuvádět v sitemapách, nepropagovat interními odkazy. |
| Nežádoucí faseta | noindex, follow nebo Disallow | Disallow šetří crawl budget, ale neodstraní z indexu již známé URL. |
| Trvale odstraněný obsah | 410 | Rychlejší odstranění z indexu než u kódu 404. |
| Přesunutý obsah | 301 | Zachování signálů a hodnoty odkazů. |
| Dočasně nedostupný obsah | 503 + Retry-After | Chrání crawl budget během výpadku. |
Měření úspěchu: KPI technické indexace
- Zdraví pokrytí: poměr Valid (Indexed) vs. Excluded a Error.
- Podíl crawlů směřujících na kanonické URL: procento crawl hitů na kanonických URL oproti variantám.
- Medián hloubky crawlu: medián klikové vzdálenosti indexovaných URL od domovské stránky/hlavních hubů.
- Poměr 304: podíl validovaných opakovaných crawlů – šetří rozpočet.
- Čas do indexace: doba od publikování po první indexaci u vybraných šablon.
Praktický postup stabilizace velkého webu (30–60 dní)
- Mapování: export všech známých URL (logy, sitemapy, crawl) a klasifikace podle šablon a parametrů.
- Normalizace: vynutit protokol/hostitele/cestu, zavést self-canonical, odstranit řetězce.
- Politika parametrů: seznam povolených parametrů, noindex pro sort/order, disallow pro „toxické“ vzory, aktualizace interního prolinkování.
- Sitemapy: vyčistit tak, aby obsahovaly pouze URL se stavem 200, které jsou indexovatelné; segmentovat; správně nastavit
lastmod. - Výkon: TTFB, 304, pravidla cachování; monitorovat 5xx a latenci.
- Hreflang: sladit s canonical; zkontrolovat symetrii.
- Monitoring: týdenní audit logů a vzorů neefektivního crawlování; sledovat pokrytí a čas do indexace.
Antivzory: čemu se na gigantických webech vyhnout
- „Canonical vyřeší všechno“: pokud interní odkazy a sitemapy upřednostňují varianty, canonical bude ignorován.
- Indexace všech faset: bez doplnění jedinečného obsahu a návštěvnosti z vyhledávání je to čisté plýtvání crawl budgetem.
- Meta noindex + Disallow: robot se k tagu nedostane, pokud je procházení blokováno.
- Souhrnné archivy bez hodnoty: hluboké stránkování bez obsahu a návštěvnosti z vyhledávání.
Méně variant, více signálu
Úspěšná indexace velkých webů stojí na třech pilířích: disciplinovaná politika URL, neměnné a konzistentní kanonické signály a výkonné doručování. Zastavte generování odpadu, nabídněte robotům přímou cestu k hodnotným dokumentům a vaše grafy pokrytí i organické návštěvnosti se stabilizují – aniž byste pálili crawl budget v canonical pekle.
