canonical: Jak a kdy používat kanonické URL

Před časem jsme začali sledovat využívání kanonických linků a po zhodnocení byla jejich podpora přidána do nového robota. Uvedeme pár tipů, jak se canonical hodí použít a nepoužít, tak aby měly pro web pozitivní dopad a zabránilo se zbytečným chybám.

Cílem kanonizace URL na webu je zjednoznačnění struktury adres. Díky tomu se na serveru fulltextoví roboti méně ztrácí a vědí přesněji, která stránka je z pohledu webmastera ta důležitější. Velkou výhodou kanonických linků je jejich jednoduchá integrace využití jak ve statických tak i na dynamických webech.

Vhodné použití

Jak je to správně: máme web, který obsahuje nějaké seznamy. Typicky seznam prodejců nebo uživatelských hodnocení. Web je navržen tak, že při kliku na jednotlivé názvy  sloupců se mění hodnota parametru sort v URL a současně se seřadí zobrazované data dle požadovaného sloupce. Ostatní se skryjí. V důsledku tedy vznikají z pohledu vyhledávačů duplicitní stránky:

  • example.com/produkt123
  • example.com/produkt123?sort=name
  • example.com/produkt123?sort=id
  • example.com/produkt123?sort=price

No a teď ten fígl: pokud do <head> uvedete, která stránka je ta nejsprávnější např.: <link rel=”canonical” href=”http://www.example.com/produkt123″ />, tak tím jednoznačně řeknete robotovi, kterou podobu URL má ideálně do vyhledávání zařadit, a současně označujete její duplicity. Pro web je výhoda v lepším řízení a směrování robota po doméně.

Obdobná situace může nastat např. při směrování na domovské stránky webů – example.com/index.php místo na požadované example.com. Nicméně to jsou situace, které fulltexty bez větších problému zvládají.

Nevhodné použití

Příkladem chybného použití je canonical na redirektech. Tedy, cíl kanonických URL nemá být redirekt (je to podobné, jako když vás na úřadě pošlou k přepážce č. 5, která je zavřená s cedulkou „Obslouží vás u přepážky 105“). Cílová stránka tedy musí mít obsah, aby si robot mohl snadno ověřit podobnost původního a kanonického dokumentu.

Asi nejhorším použitím je směrování robota neakceptujícího cookie po navštívení kanonické URL zpět na původní „škaredou URL“. Tedy robot jde na URL A, tam zjistí, že kanonická podoba je URL B no a když na ni vleze, tak server zjistí, že cookie nejsou ze strany robota podporované a šupem ho pošle zpět na URL A. Krásné zacyklení, že;)

Další příklady použití kanonizace.

Případné zkušenosti a připomínky ke kanonizací můžete psát do diskuse pod článkem.

  • [1]Krásně shrnuto! Pěkný článek

  • [2]Může vadit, když případ s canonicalem a redirektem bude obráceně, tedy když na stránku A bude vést 301 redirekt, ale zároveň tam na té stránce bude canonical na stránku B (na stránce B bude ten samý obsah, pouze jiná URL)?

  • petrox

    [3]jestli jsem to pochopil správně tak jde o stav, kdy URLX ->301-> URLA ->canonical-> URLB. To je v pořádku a ničemu by to vadit nemělo. Ale pokud je to URLB ->301-> URLA ->canonical-> URLB, tak to už je z pohledu robota zacyklení.

  • [4]Akceptujete i multidomain canonical, nebo jen v rámci jedné domény?

  • [5]Chtel bych se jeste Seznamaku optat, jestli si vas Bot poradi s relativnimi canonical URL. Nedavno jsem takovy dotaz videl na foru webfair a nikdo na nej neodpovedel. Diky

  • [6]No tak mne sa nedarí nastaviť canonical URL na wordpress blogu, pretože nemám dovolené zapisovať do htaccess.

  • [7]Vida, zrovna jsem natáčel dvě videa o kanonizaci. Ale jinak Pavle, Petře, napište o tom prosím stránku do nápovědy. A dejte tam prosím odpovědi na tyhle dva nejčastější dotazy, tzn. jak je to s kanonizací napříč doménami (L2, hostname) a jak je to s relativními adresami v linku. Taky by mě to zajímalo, jak to teď Seznamu funguje.

  • petrox

    [8][4] ano, robot akceptuje i kanonický link směrovaný na jinou L3 resp. i L2 doménu. Podmínkou je podobnost stránek.

  • petrox

    [9][5] s relativními kanonickými linky si bot poradí.

  • petrox

    [10][7] díky za připomínku, doplníme

  • David Grudl

    [11]Jaký je vlastně rozdíl mezi <link rel=”canonical”> a hlavičkou Content-Location? Připadá mi, že se tak jen duplikuje element <meta http-equiv=”Content-Location”>

  • Hermit

    [12]s tím řazením to vidím tak, že nejde o duplicitu. Pokud mám např. v sekci “skačky” 70 produktů a výpis na stránku mám 12, a ty seřadím podle ceny, tak mi vznikne z více jak 80 % nový obsah a je pro uživatele relevantněší. Př “Levné sekačky” (/sekacky?sort=price), výchozí stav (/sekacky), je řazený dle výběru obchodníka, atp. IMO canonical links se používají např. pro produkty/stránky, které jsou ve vícero kategoriích, tj. obsah je vždy stejný, a já si zvolím, ve které skupině (zanoření) je pro mě daný produkt/stránka důležitý. Stejně tak to platí o hodnocení viz váš příklad: pokud něco srovnám podle doby vzniku, hodnocení, tak vytvářím nový obsah stránky př. = Stávka: nejnovější příspěvky , Stávka: nejstarší příspěvky, Stávka: nejlépší příspěvky, Stávka: nejhůře hodnocené příspěvky /exoti/, atp. problém nastává pouze u řazení, které není s přasahem do stránkování.

  • [13]Davide, napsat vlastní specifikaci je přece snazší než přečíst si cizí. Platí to i v Googlu&Bingu&Yahoo. Tolik na téma content-location.

  • [14]použití canonical je rozšířené (podle mě) spíše pro jinou situaci, udělám si v eshopu s koly kategorii „červené kola“ a „kola se zvonkem“, mám produkt „červené kolo se zvonkem“ a zařadím ho do dvou kategorií, vzniknou tak dvě duplicitní stránky (cervene-kola/cervene-kolo-se-zvonkem) a (kola-se-zvonkem/cervene-kolo-se-zvonkem) ==>> zde přichází na scénu canonical a jednu ze stránek udělám hlavní, druhou přesměruji jako duplicitní

  • petrox

    [15][12][14] – určitě, způsobů využití je víc a je na každém, aby si vybral ten, který mu vyhovuje.

  • Pavol

    [16][12] Ahoj Hermit, ak má radenie podľa jednotlivých stĺpcov významný vplyv na zobrazenie výsledkov (ako v tvojom príklade), tak nemusíš link rel=canonical používať. V tom prípade by som sa ale každé také radenie snažil dostatočne odlíšiť od ostatných zobrazení, napr. výstižným názvom stránky (príklad: IMDb Top 250, IMDb Bottom 100). Osobne odporúčam vo väčšine prípadov do canonical URL zahŕňať len stránkovanie. Takto robot s istotou precrawluje všetky produkty. Rozhodnutie je samozrejme na tebe

  • [17]1.Kdy se začne podpora canonicalu projevovat? ( hádám že už by měla) Máme nasazeno již přes rok a přesto stále vidím ve výsledcích několik duplikovaných produktů. 2.Není lepší pro robota i programování rovnou zakázat v robots.txt ?sort=* etc.. ( v google webmasters centrale se to bezne delá..) 3. budu za to mít nějaké “body”? Někoho by mohlo napadnout ,že v podstatě klesne počet zpětnejch odkazů na produkty.. ( v případě sort=)

  • pavol

    [18]Ahoj VasekK, canonical sa v dnešnej dobe spracúva. Ak to tak v tvojom prípade nevyzerá, budem rád ak nahlásiš konkrétny web a problém na Helpdesk Seznamu. Radi sa na to pozrieme a vyriešime. 2. Zákazy v robots.txt sú riešením, ale nie ideálnym. Robot by bol najradšej ak by mal prístup všade kam aj ľudia (s výnimkou nákupných košíkov a pod.). Robots slúži pre robota ako direktíva, Canonical je odporúčanie. 3. Počet ZO pri použití canonical neklesne. Klesol by zákazom crawlovania v robots.txt 😉

  • pavol

    [19][12] Ešte dodatok k zoraďovaniu dát v zoznamoch: Robot si obsahy pôvodného a “kanonického” dokumentu porovnáva. Keď sa mu nezdajú dostatočne podobné, kanonickú URL neakceptuje.

  • AS

    [20]Nepřemýšlíte o vytlačení zaparkovaných stránek z výsledku serpu? Vždyť to devalvuje jak fulltext, tak i sklik (když se nachází na zaparkované stránce dohledatelné na předních pozicích v serpu. Jen na ujasněnou, nemám nic proti parkovaným stránkám + sklik, když se plní pravá podstata parkovaných stránek seriovacisla.cz

  • [21]09.07.11 17:02:48 AS už jsem to taky viděl o5 jako před rokem ve stejnou dobu 🙂 domeny parkované na sworp bezvýznamý shit jsou v první lajně 😀 takže nejlepší tedy je asi nakoupit domeny zaspamovat český internet stupidním parkingem

  • Michal

    [22]Mírně offtopic otázka, mám online stránku už pět let a poslední rok mi pravidelně co nějaký čas vypadává z výsledků hledání seznamu. Naprosto nevím co s tím dělat a na koho se obrátit abych opravil pokud tam mám něco špatně.

  • Robert

    [23]Má to potom smysl pracně řešit kanonická url, když robot obsah dvou podobných url stejně porovnává, tedy nevěří tomu, co nastavím? Když tohle umí, jistě si duplicitu vyřadí sám, aniž bych mu musel radit.