Proč se velké weby indexují obtížně: 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. Přichází tlak na crawl budget, exploduje počet variant URL, vznikají crawl traps (pasti) a při špatné kanonikalizaci se rozleze tzv. 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 crawlovací roboty k hodnotným dokumentům co nejefektivněji.
Anatomie crawl budgetu: kapacita, priorita a odpad
- Kapacita: kolik URL je robot schopen denně procházet vzhledem k výkonu serveru a historii odezv.
- 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, session parametry, stránky s nízkou konverzní hodnotou.
Optimalizace velkého webu je kombinací omezování generování URL, správné signalizace (robots, meta, canonical, hreflang) a výkonu (rychlé 200, správné 304, cache).
Crawl traps: typologie a jejich neutralizace
- Fasetové filtry: nekonečné kombinace parametrů (
?barva=modra&velikost=44&sort=cena_desc). Řešení: allowlist parametrů, interní odkazy pouze na povolené kombinace, ostatnínoindex, followa bez odkazů v HTML; generovat přehledové landing pouze pro komerčně hodnotné fasety. - Kalendáře a nekonečné stránkování: URL tvořené daty (
/2025/10/21/) nebo „Další“ bez konce. Řešení: limit stránkování (např. do 20), archivní seznamy seskupit po měsících,noindexpro hluboké stránky. - Session a tracking parametry:
?utm=,?gclid=,?sessionid=. Řešení: stripping parametrů na serveru, canonical na čistou URL, nepoužívat tyto URL v interním linkování ani v sitemapách. - Sort/Order permutace:
?sort=,?order=. Řešení: jediná „default“ verze indexovatelná, ostatnínoindex, follow. - Infinite scroll: generuje požadavky bez pevné URL struktury. Řešení: progresivní degradace – paralelní stránkované URL (
?page=2) a interní odkazy na ně. - Duplicitní path aliasy:
/produkt/kolobezkaa/sk/produkt/kolobezka/. Řešení: striktně vynutit jediný kanonický path (301 + canonical).
Canonical peklo: když signály hovoří proti sobě
„Canonical“ je doporučení, nikoliv příkaz. Při konfliktech vyhledávače většinou důvěřují internímu linkování, hreflang párům a konzistenci. Mezi nejčastější chyby patří:
- Kanonika na neindexovatelnou URL:
<link rel="canonical" href=".../a">, ale/amánoindexnebo 3xx/4xx. Výsledek: ignorování nebo výběr jiné kanoniky. - Paginated → page 1 canonical: každá stránka stránkování ukazuje na
?page=1, takže obsah z?page=2..nmizí z indexu. Řešení: stránkované stránky mají self-canonical, nebo jsounoindexa agregované landingy zachycují long-tail. - Konflikt hreflang a canonical: hreflang odkazuje mezi jazyky, ale canonical ukazuje na jiný jazyk nebo jiný path. Řešení: hreflang páry musí směřovat na kanonické URL odpovídající verze.
- Cross-domain canonical bez vlastnictví: news syndikát dává canonical na partnera, 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, trailing/, velká písmena v path. Řešení: 301 vynucení, jednotná kanonika, interní odkazy pouze v jednom tvaru.
Pravidla normalizace URL pro velké weby
- Protokol: vždy
https, vynucené 301 + HSTS. - Host: jeden hlavní host (např.
www), ostatní 301. - Path: trailing slash dle konvence (konzistentně), malá písmena, diakritika normalizovaná, žádné duplicitní lomítka.
- Parametry: pevný allowlist; pořadí parametrů standardizované; nepotřebné stripping.
- Self-canonical: každá indexovatelná URL deklaruje sebe sama, výjimky pouze tam, kde skutečně existuje nadřazená verze.
Řízení pomocí robots: robots.txt, meta robots a HTTP hlavičky
- robots.txt: blokování crawl traps, ale ne indexování již objevených URL. Vhodné pro masově generované patterny (
/vyhledavani*,/*?sort=). - Meta robots:
noindex, followpro sekundární varianty (třídění, hluboké stránky stránkování, nízkohodnotné filtry). - X-Robots-Tag: na úrovni hlaviček pro binární soubory, exporty, feedy (
noindex). - Disallow ≠ Noindex: zablokované URL může zůstat v indexu jako „odkazovaná“. Pro jistotu používejte
noindex, pokud chcete vyloučit z indexu.
Výkon a cache: zrychlení crawl-u bez ztráty obsahu
- Stabilní 200 s TTFB < 200 ms na klíčových šablonách (listy, detail). Rychlé odpovědi zvyšují „crawl rate limit“.
- HTTP 304 s
ETag/Last-Modifiedpro statické i HTML, aby se šetřilo při re-crawlování. - Správné 4xx/5xx:
410pro trvalé smazání,404pro neexistující;503 + Retry-Afterpři údržbě, jinak riskujete snížení crawl rate. - CDN a edge caching: konzistentní cache politika, ale pozor na varianty podle query parametrů.
Sitemap pro obří weby: segmentace a zdravé signály
- Index sitemáp 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 když skutečně došlo k relevantní změně obsahu, ne při cenové mikroaktualizaci.
- Jen kanonické, indexovatelné URL; žádné
noindex, žádné 3xx/4xx/5xx.
JavaScript a renderování: parity a hydratační pasti
- SSR/SSG pro kritické šablony, aby obsah a odkazy byly již v prvotním HTML.
- Odkazy v HTML: interní odkazy musí být v DOM bez potřeby interakce; nevažte navigaci pouze na
onclick. - Lazy content: při lazy načítání zajistěte odkrytí i pro crawler (noscript fallback, prerender pro důležité boxy).
- Facety a JS: filtrační UI generuje URL s povolenými parametry; nezatahujte crawler do nekonečných kombinací.
Stránkování, archívy a sběr long-tailu
- Self-canonical na stránkovaných stránkách a silné interní odkazy na obsahové „huby“ místo indexace hlubokých stránek.
- Alternativa k rel=prev/next: jasné interní odkazy (první / poslední / konkrétní stránka), přehledové landingy s konsolidovaným obsahem.
- Noindex pro hluboké stránky (>5), pokud nepřinášejí unikátní poptávku, ale ponechte
followpro přenos autority.
Hreflang ve velkém: symetrie a kanonika
- Symetrické páry: každý jazyk odkazuje na ostatní a sám na sebe (
x-defaultpro globální verzi). - Konzistence s canonical: hreflang vždy na kanonické URL odpovídajícího jazyka.
- Rozdělení sitemáp: hreflang anotace v sitemapách škálují lépe než v HTML při velkých objemech.
Logy serveru: nejpřesnější barometr crawl zdraví
- Podíl 200 vs. non-200 pro Googlebot/Bingbot – cílem je minimalizovat 5xx a 404.
- Top waste patterns: regulární výrazy identifikující nejčastější zbytečné path/parametry.
- Re-crawl frekvence: důležité URL by měly být re-crawlované v horizontu dnů, ne měsíců.
Diagnostika canonical pekla: checklist
- Je na stránce self-canonical a cíl vrací 200/indexovatelný stav?
- Neexistují řetězce nebo smyčky v kanonikách?
- Interní odkazy směřují na stejný tvar URL jako canonical?
- Hreflang a canonical ukazují na tu samou verzi v rámci jazyka?
- Parametrické a třídící stránky mají
noindex, followa nejsou v sitemapách? - Paginated stránky: self-canonical, nebo záměrné
noindexs obsahovou alternativou?
Implementační vzory pro CMS a edge logiku
- URL normalizer middleware: přepíše velká písmena, odstraní duplicitní lomítka, seřadí parametry, 301 na kanonický host/protokol.
- Param allowlist: server povolí indexovatelné kombinace, ostatní vrací
noindexa omezené interní odkazy. - Content API s „indexable“ flagem: šablony renderují meta tagy a canonical dle stavu dokumentu.
- Sitemap builder: generuje jen 200/indexovatelné/self-canonical URL s reálným
lastmod.
Politika produktových a listovacích stránek
- Detail produktu: jediná kanonická URL; varianty (barva/velikost) jako atributy na stránce nebo povolené fasety, nikoliv jako samostatné indexovatelné URL, pokud nemají vlastní poptávku.
- Kategorie: default bez parametrů indexovatelný; kombinované fasety pouze ty, které přinášejí poptávku a mají unikátní obsah (H1, úvod, FAQ, interní odkazy).
Škálování validace: automatické testy
- Test 3xx/4xx/5xx v sitemapách: build fail, pokud se objeví.
- Canonical-self test: pokud je canonical jiný než self a není v allowlistu, build fail.
- Hreflang-symetrie: audit při deployi.
- Parametrické odkazy v HTML: linter zachytí neautorizované parametry v interních odkazech.
Rozhodovací matice: indexovat, noindexovat, disallowovat nebo 301?
| Situace | Doporučená akce | Poznámka |
|---|---|---|
| Duplicita path (www/non-www, http/https) | 301 + self-canonical | Interní odkazy vždy na cílový kanonický host/protokol. |
| Sort/Order parametry | noindex, follow + self-canonical | Neuvádět v sitemapách, nepropagovat interními odkazy. |
| Nežádoucí faseta | noindex, follow nebo Disallow | Disallow šetří crawl, ale neodstraní z indexu již známé URL. |
| Trvale smazaný obsah | 410 | Rychlejší odindexování než 404. |
| Přesunutý obsah | 301 | Zachování signálu a odkazové hodnoty. |
| Dočasně nedostupné | 503 + Retry-After | Chrání crawl budget během výpadku. |
Měření úspěchu: KPI technické indexace
- Coverage zdraví: poměr Valid (Indexed) vs. Excluded a Error.
- Share of Crawl to Canonicals: procent


























