·8 min čtení
Které filtry na e-shopu nechat indexovat?
Většina CMS e-shopů generuje tisíce až desetitisíce filtrovacích URL, ale jen zlomek z nich odpovídá reálné poptávce ve vyhledávání. Podle poptávky, hloubky sortimentu a jedinečnosti stránky rozhoduji, které kombinace indexovat, které sloučit pod kanonickou URL a které nenechat ani procházet. Je to zásadní část účinné SEO optimalizace e-shopu.

Než sáhnete na první nastavení robots.txt, potřebujete znát dva výchozí stavy. Kompletní crawl webu vám ukáže, které URL vůbec existují a jaký vracejí stavový kód. Doporučuji také udělat export dat ze Search Console do BigQuery, protože získáte delší historii dat než 16 měsíců. Pak jasně vidím které z nich mají zobrazení a prokliky z vyhledávání. První stav ukáže, co na webu reálně existuje. Druhý ukáže, co z toho lidé hledají a na co rádi klikají.
Proč filtry zaplavují index a jak si s tím poradit?
Filtrovaná navigace (faceted navigation) násobí stávající URL adresy webu. Každý vytvořený filtr (barva, velikost, značka, cena, dostupnost atd.) je parametr a ty se navzájem kombinují. Kategorie eshopu s deseti filtry a několika hodnotami z nich nevytvoří desítky variant, ale třeba tisíce možných kombinací, které vyhledávače musí procházet a hodnotit stránku, jestli ji mají indexovat.
Pokud je to špatně nastaveno, může to být problém a velká zátěž pro roboty vyhledávačů, které stránky opakovaně navštěvují. Struktura kategorií na eshopu, filtry a parametry produktů se musí ideálně určit dopředu. Tím můžeme dopředu určit, které kombinace si zaslouží vlastní vstupní stránku.
Crawl budget
Zátěž crawl budgetu se přitom snadno podcení. Při auditech středně velkých e-shopů pravidelně zjišťuji, že velkou část procházených URL tvoří filtry, které nemá smysl indexovat. Cílená technická SEO analýza chrání kapacitu procházení webu a brání tomu, aby slabé varianty oslabovaly stránky, které generují tržby.
Sám Google na blogu Search Central píše, že filtrovaná navigace je zdaleka nejčastější zdroj problémů s nadměrným procházením, které mu majitelé webů hlásí, a že ve velké většině případů se tomu dalo předejít dodržením několika základních pravidel.
Jak rozhoduji, co se bude indexovat
Než začnu měnit robots.txt nebo jediný meta tag, každý vzor filtru projde čtyřmi kontrolami. Poptávka ve vyhledávání je první, protože každé další rozhodnutí závisí na tom, jestli lidé danou kombinaci vůbec hledají.
- Poptávka. Ověřte pomocí dat o klíčových slovech a Search Console, že lidé kombinaci skutečně hledají. Vzor bez doložené poptávky obvykle nemá důvod mít vlastní indexovanou stránku. Proto je také chyba dávat hromadný noindex dřív, než zmapujete poptávku. Nevědomky si tak odstřihnete stránky, které vodily návštěvnost.
- Hloubka sortimentu. Nastavte minimální počet produktů, který musí kombinace splnit. Filtr, který vrátí jen pár položek, vytvoří obsahově slabou vstupní stránku.
- Vlastní přínos. Porovnejte stránku filtru s nadřazenou kategorií. Téměř duplicitní stránka konkuruje silnější kategorii, místo aby pokryla něco, co kategorie nepokrývá.
- Technické pravidlo. Každému vzoru přiřaďte jedno řešení a zapracujte ho do šablon. Praktické možnosti jsou index, noindex, canonical nebo zákaz procházení v robots.txt.

Doporučené řešení podle vzoru URL
| Vzor | Doporučené řešení | Proč |
|---|---|---|
| Jeden atribut s vysokou poptávkou (např. značka, velikost) | indexovat | Reálná poptávka, odlišné výsledky |
| Kombinace dvou atributů | indexovat – záleží na kombinaci (černé tričko S) | Určitá hodnota, ale hledanost může být nižší |
| Tři a více atributů | Záleží na kombinaci – indexovat, pokud má smysl | Mohou být kombinace, které nikdo nehledá |
| Parametry řazení a zobrazení | blokovat nebo kanonizovat | Žádný unikátní obsah |
| Stránkování | self-canonical, nechat procházitelné | Druhá stránka nese jiné produkty, není to duplicita |
| Prázdné výsledky filtru | vracet 404 | Google to doporučuje přímo, viz níže |
| Vyprodané zboží | podle toho, jestli se vrátí, jinak noindex nebo 410 | Krátkodobý výpadek není důvod stránku rušit |
Tahle tabulka je moje rozhodovací pravidlo, ne pravidlo Googlu. Google nikde neříká, kolik atributů je moc. Říká jen, které nástroje máte k dispozici a co dělají. Rozhodnutí, kde vede hranice, zůstává na vás a mělo by vycházet z vašich dat o poptávce.
Pozor, noindex neušetří procházení. Google URL stáhne a až potom ji zahodí. Kapacitu procházení přímo šetří zákaz v robots.txt. A stránku, která je noindex dlouho, Google přestane procházet úplně, takže odkazy z ní přestanou pomáhat.
Pravidlo patří do šablon, ne do dokumentu s analýzou. Musí se promítnout i do odkazů. Na vzor, který jste vyloučili, nemá vést odkaz z filtru v každé kategorii, a právě tady se potkávají pravidla interního prolinkování a pravidla indexace.

Čtyři věci, které Google říká přímo
Když už se rozhodnete filtrovací URL nechat procházet, Google má k tomu konkrétní technická doporučení. Jsou nudná, snadno se přehlédnou a přitom rozhodují o tom, jestli se vaše rozhodnutí vůbec projeví.
- Používejte standardní oddělovač parametrů, tedy
&. Čárku, středník nebo závorky jako oddělovač Google nemusí rozpoznat. - Držte konzistentní pořadí filtrů v URL. Když stejná kombinace vygeneruje dvě různá pořadí parametrů, vyrobili jste si duplicitu tam, kde být nemusela.
- Vracejte stavový kód 404 u kombinací bez výsledků. Prázdnou stránku s kódem 200 Google vyhodnotí jako soft 404 a bude ji dál procházet.
- Prázdné výsledky nepřesměrovávejte na obecnou stránku „nenalezeno“. Vraťte 404 přímo na dané URL. Výjimkou je jen situace, kdy to technicky nejde, třeba u jednostránkové aplikace.
A jedna alternativa, na kterou se často zapomíná. Filtry se dají řešit přes fragment URL za znakem #, protože vyhledávače fragmenty obvykle ignorují. Je to jiná cesta než robots.txt a u nových implementací stojí za zvážení dřív, než začnete vyrábět tisíce parametrických URL a pak je zase blokovat.
Čeho se vyvarovat
- Nedávejte hromadný noindex na všechny filtry bez dat o poptávce. E-shop dal hromadný noindex na všechny filtry a přišel o stránky typu „značka + kategorie“, které nosily objednávky. Je to nejrychlejší způsob, jak potichu přijít o stránky, které vydělávají. Nejdřív data a export ze Search Console, teprve pak nastavit pravidla.
- Neblokujte v robots.txt vzor URL, který už je zaindexovaný. Google pak neuvidí noindex a URL může v indexu zůstat. Pořadí je noindex, počkat, teprve pak zakázat procházení v robots.txt.
- Nenechávejte cenový filtr indexovat. Cenový filtr „od–do“ generuje URL pro každou hodnotu posuvníku. Výsledkem jsou desítky tisíc URL se stejným sortimentem. Cenový filtr neindexovat ani nenechat procházet.
- Neindexujte řazení a počet položek na stránku jako samostatné URL. Řazení a počet položek na stránku mají vlastní URL a jsou zaindexované jako duplicity kategorie. Řešením je canonical na výchozí zobrazení nebo fragment.
- Neřaďte parametry pokaždé jinak. Stejná kombinace vzniká ve dvou pořadích (barva + velikost, velikost + barva) podle toho, kde uživatel klikl první. Šablona musí parametry řadit vždy stejně.
- Neposílejte protichůdné signály. Filtr má canonical na kategorii, ale zároveň na něj vede odkaz z každé kategorie a je v sitemapě. Google dostává protichůdné signály. Co nemá být v indexu, nemá být ani v sitemapě a v interních odkazech.
- Nevytvářejte texty k filtrovacím stránkám dřív, než máte vyřešený canonical. Duplicitu tím zvětšíte, ne vyřešíte.
- Neřešte indexaci a interní prolinkování jako dvě samostatná rozhodnutí. Je to jedno rozhodnutí, které se zapisuje na dvě místa v kódu.
- Nepouštějte se do toho na prezentačním webu s pár desítkami URL. Google sám říká, že crawl budget řeší weby s milionem stránek, nebo s deseti tisíci stránkami, které se mění denně. Filtrovaná navigace ale takové množství URL vyrobí i menšímu e-shopu, proto je tenhle postup pro e-shopy, katalogy a tržiště. U malého webu bude problém skoro jistě jinde.
Otázky, které dostávám před auditem
Odstraní robots.txt filtrovací URL z indexu?
Ne. Blokuje jen procházení, takže URL, která už v indexu je, tam může zůstat i poté, co ji zakážete. Záleží na pořadí. Pokud je vzor už indexovaný, dejte mu nejdřív noindex, počkejte, až URL z indexu vypadnou, a teprve potom vzor zablokujte v robots.txt. Když zablokujete jako první, hrozí, že URL v indexu zmrazíte, protože Google už neuvidí noindex, který by je odtud dostal.
Jak rychle poznám, že jsem zablokoval příliš mnoho?
Zhruba do 48 hodin a více, z vlastního opakovaného crawlu. Tenhle práh vychází z mé praxe z auditů, ne z čísla od Googlu, a existuje ze dvou důvodů. Za prvé, porovnáte ho s výchozím crawlem a hned uvidíte, které indexovatelné URL jste zablokovali omylem. Propad pozic by se ukázal až o týdny později. Za druhé, Search Console je tady výrazně pomalejší, protože report Indexování stránek se aktualizuje se zpožděním a noindex se projeví až po dalším průchodu Googlu. Když si crawl pustíte sami, odhalíte příliš široké pravidlo, dokud je oprava ještě levná.
Mají mít filtrovací stránky vlastní text?
Ne dřív, než je vyřešený canonical. Hromadné generování textů k filtrům v této fázi problém s duplicitou jen zvětší, místo aby ho vyřešilo.
Tři čísla, která ukážou, že to zabralo
- Indexování stránek podle vzoru v Search Console. Je každý vzor ošetřen tak, jak jste zamýšleli?
- Statistiky procházení. Přesouvá se procházení k URL, na kterých záleží?
- Zobrazení a prokliky u vzorů, které jste nechali indexované, abyste potvrdili, že chráněné stránky dál fungují.
Pokud ubude procházených a indexovaných URL u vzorů, které jste vyloučili, a zobrazení a prokliky u chráněných stránek se udrží, úklid splnil svůj účel. Googlebot a ostatní roboti přestanou chodit na kombinace, které nikdo nehledá, a stránky, které vydělávají, nic neztratí.
To je celý rozdíl mezi úklidem filtrů a jejich plošným vypnutím. Plošné vypnutí je rychlé, vypadá jako odvedená práce a občas vás stojí tržby, o kterých se nikdy nedozvíte. Rozhodnutí podle dat trvá o pár dní déle.
Nevíte, které filtrovací stránky má Google indexovat?
Audit vám dá data o poptávce, rozhodnutí na úrovni jednotlivých vzorů a implementační zadání, která vaši vývojáři potřebují.