Jak správně řešit filtraci (fasetovou navigaci) na webu z pohledu SEO

Filtrace je součást drtivé většiny e-shopů, které jsou často vyřešeny špatně, byť je to velice důležitá část. Už roky o tom přednáším (od roku 2015) a stále se zdá, že dobrých řešení není příliš. A to ani u balíčkových či profesionálních řešení. Proto jsem sepsal tento článek, jak filtraci nebo-li fasetovou navigaci řešit správně z pohledu vyhledávačů.

Co je to filtrace a proč je důležitá

Filtrace je způsob jak třídit obsah v dané kategorii podle nějakých parametrů. Asi ho všichni znáte z Heuréky. Také se jim říká fasetová navigace.

Ukázka filtrace na Heuréka.cz
Ukázka filtrace na Heuréka.cz

Filtrace je pro SEO důležitá, protože kombinace filtrů vytváří cenné vstupní stránky (často i pro důležité long-taily), které bychom jinak museli řešit vytvářením množství dalších statických stránek. Ty už ale máme nyní vyřešené pomocí filtrů. Jedná se například o kombinace základních frází s barvami (černé pánské tričko), rozměry (pánské tričko L) nebo značkami (pánské tričko adidas) nebo jejich kombinacemi (černé pánské tričko adidas xl). Potíž je v tom, že filtrace je často řešená formulářovými prvky v kombinaci JavaScriptem nebo JavaScriptovými frameworky. A s těmi mají stále vyhledávače obtíže a nedokážou je projít a na rendering ze strany Google se nedá ve všech případech spolehnout (a asi nikdy to tak nebude).

Kvůli tomu pak stránky pro fráze jako černé pánské tričko, pánské tričko L, pánské tričko adidasčerné pánské tričko adidas xl nejsou dostupné vyhledávačům a tím pádem indexovatelné. Přitom řešení je jednoduché – připravit filtraci po technické stránce správně, aby je vyhledávače dokázaly projít. V následujících odstavcích si řekneme jak na to.

Jak na SEO filtraci správně

Nastavení filtrace není jen o technickém nastavení, souvisí i se strategickými rozhodnutími a musíme se vyvarovat pár pastí. Začneme, ale tou strategií.

Výběr správných hodnot filtrů a jejich kombinací

První past je nechat SEO filtraci na celou šíři filtrace. Kombinací všech hodnot všech filtrů totiž vygenerujete statisíce možná i milióny stránek, které vám rozmělní přelévání link-juice a totálně vybijí crawl-budget. Většina takových stránek ani nebude hledaná. Takže tohle nedělejte.

Nejdříve si z analýzy klíčových slov vyfiltrujte kombinace, které jsou ve vašem oboru hledané. To budou kombinace filtrů, které připravíte pro průchodnost vyhledávačů. Označuji takové kombinace Důležité filtry.

Ostatní kombinace naopak pro vyhledávače zakážete – ideálně rovnou v robots.txt pomocí pokynu /disallow (mrkněte na příklad na Heuréce). Kvůli crawl budgetu nedoporučuji noindex, canonical ani v podstatě nefunkční nofollow. Ideální je proto pro tyto nedůležité kombinace vystavět URL tak, aby jste ji jako vzor mohli snadno zakázat. Označuji je jako Nedůležité filtry.

Krom nedůležitých filtrů také zakazuji kombinace více než 3 parametrů (lidé je ve vyhledávačích nezadávají) a také vícevýběry (multivýběry) – tzn. když je vybráno více hodnot v jednom filtru:

Vícevýběr u filtru
Vícevýběr u filtru

Technické řešení samotného filtru

Jak už jsme si řekli, vyhledávače neumí klikat na položky formuláře (checkboxy, radiobuttony, roletky aj.) a moc neumí s JavaScriptem. Také víme, že vyhledávač často nachází nové stránky tak, že najde v zdrojovém kódu URL. Což znamená, že ve zdrojovém kódu musí být ideálně odkazy (<a href="URL">) na stránky tvořené filtrací, které musíte vidět ve zdrojovém kódu i při vypnutém JavaScriptu. Jako to má například Heuréka:

Filtrace ve zdrojovém kódu

Díky tomuto řešení u každého filtru může vyhledávač navštívit každou URL důležitého filtru, vyjma těch nedůležitých, které jsme vyřadili z procházení v robots.txt.

Tvorba URL filtru

Základem je netvořit URL dle hierarchické struktury zboží na e-shopu, tedy ne kategorie jako /bile-zbozi/lednicky/dvoudverove, ale spíše jen poslední kategorie v cestě /dvoudverove-lednicky/. Jak budete tvořit URL filtrů, je v zásadě jedno, já doporučuju filtry jednoznačně odlišit. Např. /lednicky/_bosch_americke (podtržítko identifikuje filtry, ale je jedno jaký znak tam dáte).

Pozor na duplicity. Musíte ošetřit, abyste neměli URL jako /lednicky/_bosch_americke a zároveň /lednicky/_americke_bosch. Řešením je si vybrat jednu hlavni verzi a všechny další na ně přesměrovávat.

Pokud potřebujete zkombinovat filtry důležité a nedůležité do jedné URL, typicky ledničky Boschhloubka lednice, nedoporučuji již používat mřížku /lednicky/_bosch#hloubka-60, protože se může stát, že URL za mřížkou bude Google renderovat a všechny vám zaindexuje. Případovka k tomuto případu zde.

Lepší je použít nějaký unikátní parametr a ten v robots.txt zakázat. Například /lednicky/_bosch?nf=hloubka-60.

Optimalizace důležitých filtrů

Nyní máme filtry přístupné pro vyhledávače. Co musíme udělat, aby stránky nabíraly nějaké smysluplné hodnocení?

  1. URL důležitých filtrů přidejte do speciální sitemapy, kterou nahrajte do Search Console a odkažte na ni v robots.txt.
  2. URL filtrů musí být unikátní.
  3. Obsah na dané stránce musí být také unikátní – tedy title, meta description, nadpis a úvodní text. To se dá řešit automatizací, ale o tom třeba zase příště. Pokud vás to zajímá v praxi, mrkněte na filtraci třeba u Bella Rose:

    Ukázka automatizace u Bella Rose.cz
    Ukázka automatizace u Bella Rose.cz
  4. Na tyto URL nasměrujte co nejvíce relevantních interních (nebo i externích) odkazů. Ať už manuálně, nebo automaticky.

Shrnutí

TLDR tedy zní:

  1. Poskytněte vyhledávačům jen důležité kombinace filtrů.
  2. Poskytněte ve zdrojovém kódu unikátní URL přístupné i bez JavaScriptu.
  3. Vzniklé URL musí být obsahově unikátní.
  4. Vše nedůležité zakažte v robots.txt.

Pokud se chcete naučit filtry nastavovat lépe a více do hloubky než v tomto článku, přijďte na moje školení Chytré SEO (více strategicky) nebo Technické SEO (více technicky). Nebo mi napište 🙂

10788 zhlédnutí (celkově) 8 zhlédnutí (dnes)
4/5 - (4 votes)

Jsem konzultant online marketingu a specializuji se na SEO a inbound marketing. Od roku 2009 jsem pracoval jako senior SEO konzultant pro největší klienty agentur Ataxo a H1.cz. Úspěšně publikuji, školím a přednáším o online marketingu, který doopravdy miluju. Jsem důsledný, zodpovědný, kritický, se smyslem pro detail.

Pavel Ungr
Jsem konzultant online marketingu a specializuji se na SEO a inbound marketing. Od roku 2009 jsem pracoval jako senior SEO konzultant pro největší klienty agentur Ataxo a H1.cz. Úspěšně publikuji, školím a přednáším o online marketingu, který doopravdy miluju. Jsem důsledný, zodpovědný, kritický, se smyslem pro detail.

Komentáře: 11

  1. Zdravím. Můžu se zeptat proč kvůli crawl budgetu nedoporučujete noindex nebo canonical? Mám zkušenost, že disallow v robots.txt Googlu nijak nebrání nechat takové stránky v indexu i když je tam mít nechcete. Canonical nebo noindex by měla být cesta jak mu říct, aby je neindexoval, ne?

    1. Protože to, že něco není v indexu neznamená, že tam robot nechodí a tím pádem nenavyšuje crawl budget. Proto je řešení pomocí kanonizace nebo noindex nevhodné. Pokud navzdory zápisu v robots.txt je stránka v indexu tak tam patrně byla již před nasazením dorektivy robots.txt nebo kvůli externím signálům (externí odkazy a zmínky).

  2. Pavle stretol som sa s názorom i case-study, kde bolo lepšie naozaj si prejsť filtráciu, následne identifikovať PODSTATNÉ filtre a tieto podstatné filtre prerobiť na podkategórie. Tým vypadnú z filtrácie a na ostatné filtre čo zostali ako nepodstatné dať canonical na podkategóriu.
    Pri dobrej štruktúre stránky zistili, že keď nechali filtre indexované, bolo na nich do 2% trafiku z organiky. Pričom to bolo veľmi veľa URL, čo mohlo trápiť crawl budget.
    Povedali si, že to za to nestojí a dali tam canonical.
    Čo ty na to?

    1. Můžu poprosit o odkaz na tu případovou studii? JInak ano, takhle to řeší často firmy, které nemají vyřešenou filtraci správně a potřebují ty vstupní stránky. Třeba Alza. Asi to není nic proti ničemu, jen mě to přijde nesystémové a složité na udržování a nákladné. Nevím ale proč by to mělo být lepší?

      1. Souhlasím s Pavlem, je to řešení, které nahrazuje nedokonalou filtraci, ale jinak je nesystémové a to zejména z pohledu UX. Jako uživatel nechci procházet jednotlivě bambilion podkategorií, ale použít kombinace paremetrů ve filtraci. Proto se tomu říká fasetová navigace, protože umožňuje mnoho kombinačních možností výpisů zboží, které bych jinak podkategoriemi nikdy nedosáhl. Představte si příklad. Kategorie Rybářské pruty, podkategorie Přívlačové pruty. Filtruji podle délky, gramáže, paraboly, značky. A jsem rád, protože jako uživatel jsem ochoten udělat ústupek a po laboraci s filtrací mohu koupit o něco kratší prut, než jsem původně zamýšlel, pokud splňuje přesně moje další požadavky. Pokud bych ale byl hned na začátku přesunut do kategorie třímetrových přívlačových prutů, svůj produkt bych pravděpodobně nenašel a odešel ke konkurenci. Tento článek popisuje, jak udělat filtraci tak, aby přiváděla návštěvnost na longtailové fráze. To je super, ale buďme upřímní, takových návštěv bude pár. Nahrazením podkategoriemi seberete té většině ostatních návštěvníků možnost vyhledávat zboží fasetovou navigací. Proto řešení pro SEO musí jít ruku v ruce s požadavky UX.

  3. Ahoj Pavle,

    skvely clanok. Vsimol som si jednu vec ohladom nofollow. Myslis ze to neriesi crawl budget? Jedine riesenie tohto problemu je robots pripadne JS? Ohladom nofollow som cital protichodne nazory, niekde ano, niekde je vraj pre crawl budget nepouzitelny. Pripadne pouzit oboje aj robots aj nofollow v ramci webu a niekde aj noindex.
    Ako vidno, jednoduche riesenie nie je.

    1. Podle mě ne, protože řeší jen, že na danou URL vyhledávač může jen nesmí z jednoho konkrétního odkazu. A na URL většinou vede množství odkazů.

    2. Moje data v access logu ukazují, že Google na URL označené nofollow normálně chodí a pro řízení crawlingu to není stoprocentní metoda.

      Tím je jen robots.txt a k tomu upravené parametry v URL.

      Ještě existuje jedno extra technické řešení, kdy se odkaz na kombinace parametrů, které nechcete procházet, tvoří přes base64, který crawler neprojde.

  4. Děkuji za článek, velmi dobře shrnuto jak vyřešit filtraci. Pomohlo mi to ujasnit si nějaké věci okolo. Hlavně i to brát důležitost filtrů v potaz při vypracovávání analýzy klíčových slov (vždy jsem se to tak snažil klasifikovat, ale nikdy jsem se na to nezaměřil do hloubky, ale ve finále to dokáže pak usnadnit práci při vytváření zadání pro programátora).

  5. “URL důležitých filtrů přidejte do speciální sitemapy, kterou nahrajte do Search Console a odkažte na ni v robots.txt.” Kde jsou nejlepší příklady speciální sitemapy? Jak by mohla vypadat a kolik tam tak narvat url?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

CommentLuv badge