Canonical (nebo také rel=”canonical”) je HTML prvek, díky kterému předáváte informaci , že URL adresa, kterou právě prochází, je duplicitní (nebo velmi podobná) a na jaké URL adrese se nachází její originální verze.
Pozor: Při nesprávném používání vám canonical způsobí víc škody než užitku.
Avšak díky správnému nasazení canonicalu můžete zabránit problémům s duplicitním obsahem a nasměrovat roboty vyhledávačů k používání korektní verze obsahu.
INFO: Při návrhu webu by se kanonizace neměla objevovat. Její použití již v počátcích svědčí o špatném návrhu webu.
Co je duplicitní obsah?
Pokud více různých URL nepředává unikátní informaci čtenáři, tak tento obsah považujeme za duplicitní.
Tento stav nastává hlavně v případech, když se na různých URL adresách nachází identický obsah (nebo obsah se stejnou přidanou hodnotou pro uživatele).
Částečná duplicita
Pokud je pouze malá část obsahu stejná, jako na X dalších stránkách, nejedná se o duplicitu v pravém slova smyslu a není třeba tam nasazovat canonical.
Použitím prvku canonical tedy dáváte vyhledávačům vědět, která vstupní stránka (URL adresa) je originální (kanonická) a která je duplicitní.
Kanonická URL by vždy měla odkazovat na indexovatelnou stránku.
Duplicitní obsah je problémem i z hlediska Crawl Waste. Jednoduše řečeno, utrácíte svůj Crawl Budget na to, aby bot procházel duplicitní (stejné) stránky místo toho, aby procházel unikátní a důležité stránky
Vyzkoušejte Marketing Miner nyní:
Jak vznikají duplicitní stránky?
Duplicitní stránky vznikají nejčastěji bez vědomí webmasterů. Podívejme se níže na to, jaké jsou časté problémy duplicit u e-shopů a webů.
Časté případy duplicit e-shopů
Problém s duplicitními texty se týká především e-shopů, kde se často importují produkty z dodavatelského feedu. Tento feed má k dispozici více e-shopů, které mají potom duplicitní popisky a obsah na stránce.
Je proto důležité psát si vlastní popisky a odlišit se tak od konkurence nejen z pohledu uživatelů, ale i z pohledu vyhledávačů.
Mezi další problémy, které s sebou duplicita přináší, může být i porušení autorských práv. Například při kopírování textu konkurence.
Je to však pouze v případě, když se nejedná o interní duplicitu, ale když přebíráte obsah od někoho jiného (konkurenta, dodavatele…).
Časté duplicity webů obecně
Problém se však týká většiny dynamicky generovaných stránek a různých CMS, které automaticky přidávají různé značky a parametry do URL.
Příklady co nejčastěji způsobuje duplicity:
- přepínání jmen a jazyků
- mobilní a desktop verze
- amp a non-amp verze
- www a non-www verze
- URL adresy přístupné přes velká i malá písmena
- print verze stránky
- jeden článek/produkt přístupný v různých kategoriích
- URL parametry, které nijak nemění obsah, ale mění například jen jeho vzhled – dlaždicový výpis…)
- sledovací parametry v URL adresách
- /index verze hlavní stránky
- neošetřené URL adresy s lomítkem “/” a bez lomítka “/” na konci
- …
Nejlepší prevencí před duplicitami, je mít pod kontrolou, na co se interně odkazuji a též pořádek v parametrech. Kanonizaci dává smysl použít až v případě, kdy nemůžete některé interní odkazy ovlivnit nebo se na duplicitní verzi URL odkazuje z externího webu.
Historie canonicalu
Když se podíváme do historie, řešení duplicitního obsahu bylo problémem webmasterů dlouhou dobu, a proto se kolem roku 2009 vyhledávače dohodly na zavedení a respektování tagu Canonical, který měl tento problém s duplicitami rychle a jednoduše vyřešit.
Používání canonicalu ale není tak jednoduché, jak se vyhledávačům mohlo na začátku zdát a problémy se správným nasazením přetrvávají roky.
Jak jsme již zmínili, při nesprávném používání vám canonical způsobí víc škody než užitku.
Vyhledávače se v mnoha případech umí s duplicitami vypořádat sami. Není proto vždy nutné používat tzv. self-canonical. V takovém případě může nastat situace, kdy se ztratí link juice kvůli duplicitní verzi URL, ale takovéto situace je nejlepší řešit pomocí úpravy interního prolinkování/přesměrování na správnou verzi URL.
Pojďme se tedy podívat, jakými způsoby je možné správně implementovat canonical tag.
Kdy tedy použít Canonical?
- V případě, že chcete, aby byla duplicitní stránka přístupná pro uživatele (tj. nechcete to řešit 301 přesměrováním).
- Pokud máte článek/produkt v různých kategoriích a chcete zachovat breadcrumb (drobečkovou navigaci).
- Při oddělené mobilní a desktopové verzi webu (např. m.alza.sk a alza.sk)
- Pokud jsou štítky na blogu duplicitní s rubrikami.
- ....
Způsoby nasazení canonicalu
Přidání link rel=”canonical” do zdrojového kódu
Zápis v HTML může vypadat následovně:
<link rel="canonical" href="https://www.domena.cz/originalna-url" />
Kde:
- rel=”canonical” – díky tomuto prvku předáváme informaci vyhledávačům, že tato crawlovaná stránka je duplicitní a neměl by ji vyhledávač zaindexovat (je to pouze doporučení, ne direktiva, takže se tím vyhledávač nemusí řídit, když to uzná za vhodné)
- href="https://www.domena.cz/originalna-url" – tímto zase informuje crawlera o tom, která stránka je originální
Tento zápis se přidává do hlavičky (tedy <head> </head>) sekce duplicitní stránky.
V případě, že bychom tedy z nějakého velmi dobrého důvodu (pár si jich níže popíšeme) měli vstupní stránku https://www.domena.cz/duplicitny-obsah, kde by se nacházel duplicitní obsah, měli bychom na ni umístit výše uvedený HTML kód.
Díky tomu dáme najevo, že originální (preferovaná) URL adresa je https:www.domena.cz/originalna-url a Google začne tuto URL adresu pravděpodobně zobrazovat ve výsledcích vyhledávání (místo té duplicitní).
Zápis v HTTP hlavičce
Pro různé dokumenty jako např.: .pdf, .doc, které máte umístěné na webu, není možné vložiť rel=”canonical” do hlavičky, protože žádná <head> </head> sekce se tam nenachází.
V tomto případě (ale samozřejmě i tehdy, když se tam hlavička nachází) můžeme využít nasazení canonicalu v HTTP hlavičce. K dispozici budete potřebovat přístup na server a k souboru .htaccess.
Ukázka zápisu v .htaccess:
<Files "nazev_souboru.pdf">
Header add Link "<https://www.domena.cz/ukazka-pdf.html>; rel=\"canonical\""
</Files>
Existuje více způsobů, jak to dynamicky implementovat do hlavičky. Doporučuji přečíst si tento článek pro pokročilé a technicky zdatné: https://moz.com/blog/how-to-advanced-relcanonical-http-headers.
Nevýhoda: Použití canonical tagu a HTTP hlavičky není vždy nejlepší řešení, jelikož se robot na danou URL musí i tak dostat a zjistit, jestli na ni je canonical nasazený. Tím pádem nijak nešetří crawl rate, jelikož existenci canonical tagu je nutné pravidelně ověřovat.
Nejlepším řešením z pohledu crawl rate, je tedy uvedení canonicalu přímo v sitemap a kontrola interních odkazů.
Využití Sitemap
Asi všichni víme, že v sitemapě by se měly nacházet jen indexovatelné URL adresy. Google také počítá s tím, že v sitemapě se nacházejí pouze kanonické URL adresy (ne duplicitní), ze kterých nevede canonical na jinou stránku.
Tento způsob je vhodný především u velkých stránek s tisíci URL, jak oznámit Googlebotovi, které stránky jsou kanonické. Jednoduše přidejte tyto URL adresy do sitemapy a odešlete přes GSC na zaindexování.
Ukázka sitemap.xml zápisu:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.xyz.cz/</loc>
<priority>1</priority>
</url>
<url>
<loc>https://www.xyz.cz/o-nas</loc>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.xyz.cz/kontakt</loc>
<priority>0.7</priority>
</url>
</urlset>
Nejčastější chyby při nasazení canonicalu
Pojďme si ukázat nejčastější chyby, které nastávají při používání canonicalu:
Canonical může být dobrý sluha, ale špatný pán. Jeho nasazení vždy dobře zvažte. Mějte na paměti, že nevhodná implementace může znamenat vyřazení kanonizovaných stránek z indexace. Častou chybou je např. kanonizování stránek při řešení stránkování (pagination) nebo při multivýběru ve fasetové filtraci. Ani v jednom případě se kanonizace nepoužívá.
Používáte víc canonical tagů na jedné stránce
V případě, že na jednu stránku nasadíte víc canonical tagů, Google je bude všechny ignorovat!
Příklad špatného řešení: Máme stránku A (https://www.domena.cz/tricko?barva=zelena) kde máme nasazených víc canonical tagů -> směruje odtud canonical na stránku B (https://www.domena.cz/tricko) a také i na stránku C (https://www.domena.cz/zelene-tricko).
Správné řešení: Na jedné stránce používat vždy jen jeden canonical.
Odkazování na HTTP verzi (a opačně)
Pokud váš celý web běží na HTTPS protokolu, neměli byste odkazovat na kanonickou URL adresu s protokolem HTTP. To platí i naopak, v případě, že máte HTTP web, neměli byste odkazovat na HTTPs variantu.
Příklad špatného řešení: Stránka A s HTTPs (https://www.domena.cz/tricko?barva=zelena) má nasazený canonical na stránku B s HTTP (http://www.domena.cz/tricko).
Správné řešení: Stránka A s HTTPs (https://www.domena.cz/tricko?barva=zelena) by měla odkazovat také na kanonickou stránku s HTTPs (napr.https://www.domena.cz/tricko).
Nasazení na neduplicitním obsahu
Často se stane, že lidé považují za duplicitní URL takovou, která duplicitní reálně není. Hlavním rozhodujícím faktorem by mělo být, jestli daná URL přináší uživateli jinou přidanou hodnotu, než původní URL.
Pokud se tedy dvě URL překrývají z velké části obsahem, ale rozhoduje u nich například popis jednoho produktu nebo jeho cena/varianta, pak nejde o duplicitní obsah.
Pokud jsou URL, mezi kterými je nasazen canonical, obsahově výrazně rozdílné, pak se robot vyhledávače může zachovat různě (například takovou kanonizaci úplně ignorovat).
Používání velkých písmen v URL
URL adresa s velkými a URL adresa s malými písmeny jsou pro crawlera dvě rozdílné stránky. Doporučujeme proto používat malá písmena (a velká automaticky přesměrovávat na malá).
Příklad špatného řešení: Canonical směruje ze stránky A (https://www.domena.cz/tricko?farba=zelena) na stránku B s velkými písmeny (https://www.domena.cz/TRICKO). Pokud automaticky nepřesměrováváte velká písmena na malá, tak je tato URL pro vyhledávač jiná než např. https://www.domena.cz/tricko.
Správné řešení: Automaticky přesměrovávat URL z velkých písmen na malá, nebo odkazovat na URL s malými písmeny. Tj. ze stránky A (https://www.domena.cz/tricko?barva=zelena) na stránku B: https://www.domena.cz/tricko.
Řetězec canonicalů (canonical chain)
Není dobré mít canonical ze stránky A na stránku B a následně ze stránky B na stránku C. Tento případ se nazývá canonical chain a zbytečně jím matete vyhledávače. Ten nejprve dostane informaci, že stránka A je duplicitou stránky B a ta, že je duplicitou stránky C a tak dále. Nejlepším řešením je v takovém případě směřovat kanonizaci rovnou na poslední prvek takového řetězce.
Příklad špatného řešení: Ze stránky A (https://www.domena.cz/tricko?barva=zelena) odkazujete na stránku B (https://www.domena.cz/tricko) a následně ze stránky B (https://www.domena.cz/tricko) odkazujete na stránku C (https://www.domena.cz/zelene-tricko).
Správné řešení: Vyhněte se vícenásobnému canonicalu. Příklad ze stránky A (https://www.domena.cz/tricko?barva=zelena) směruje canonical na stránku B (https://www.domena.cz/tricko). Tím pádem na stránku A ani B nebudeme dávat další canonical.
Blokování v robots.txt nebo 404
Pokud nasadíte canonical a zároveň blokujete danou stránku v robots.txt, tak se crawler nemá šancí o daném canonical tagu dozvědět.
Problémem je také to, když použijete kanonickou URL, která vrací stavový kód 404.
Z výše uvedených důvodů je důležité pravidelně kontrolovat stavové kódy vstupních stránek a také blokaci v robots.txt (příp. nasazený NoIndex).
Změny v souboru robots.txt můžete monitorovat automaticky v projektech Marketing Mineru v sekci Alerting.
Použití canonicalu místo hreflang
Častou chybou je i nasazení canonicalu na řešení multijazyčnosti. Od toho tu je atribut hreflang, a ne canonical.
Správné řešení: Používejte hreflang.
TIP: V tomto návodu se dočtete, jak zkontrolovat správnost nasazení atributu hreflang: https://help.marketingminer.com/cs/clanek/kontrola-atributu-hreflang/.
Používání NoIndex a canonicalu zároveň
Rozhodněte se, které z těchto atributů chcete používat. Používání obou nedává smysl, jelikož duplicitní stránku vyhledávače stejně nezaindexují.
Používání relativní cesty kanonické URL
Příklad:
/ukazka
Toto není vysloveně chyba, ale může to v určitých případech způsobit komplikace. Možné problémy v případě použití relativní cesty:
- HTTP vs HTTPs
- WWW vs NON-WWW
V těchto případech můžeme tedy dostat 4 různé URL se stejnou cestou. Proto i Google doporučuje používat absolutní cesty.
V případě, že máte duplicitní stránky, ale nespecifikujete na nich canonical, Google sám vybere stránku, která je podle něj „originální verzí“ a tu začne indexovat. Ostatní stránky z indexu vyřadí.
Pokud se však crawlerovi nasazení tohoto parametru nezdá (stránky nejsou vůbec duplicitní), může canonical ignorovat.
Další skupinou, se kterou nastávají problémy, je self-canonical.
Co je self-canonical?
V případě, že pomocí canonicalu odkazujete ze stránky A na stránku A (na sebe samého – aktuální URL), tak se jedná o self canonical.
Je to věc, kterou má nasazenou mnoho webů nesprávně a přináší velké množství chyb.
Častou chybou je dynamické nasazování self canonicalu na stránky s parametry. To znamená, že jakýkoliv parametr přidáme do URL, na stránku se přidá self canonical, což je chyba.
Správným řešením by mělo být nasazování self canonicalu (pokud ho už z nějakého důvodu musíte použít) jen na podporované parametry!
Příklad:
Máme například URL https://www.domena.cz/tricko?barva=zelena, která je unikátní, protože se tam nacházejí pouze trička se zelenou barvou. V tomto případě self canonical směruje na aktuální URL a je to v pořádku.
Pokud však změním hodnotu parametru na zelenomodrá (tato hodnota reálně neexistuje) – https://www.domena.cz/tricko?farba=zelenomodra a vrátí mi to stejný obsah jako v případě hodnoty zelena, avšak se self canonicalem na URL https://www.domena.cz/tricko?farba=zelenomodra, tak nastává problém.
Takto může vzniknout nekonečně mnoho indexovatelných URL adres.
Řešení?
Správným řešením by mělo být nasazování self canonicalu (když ho už z nějakého důvodu musíte použít) jen na podporované parametry! Sepište si GET parametry, které používáte a mějte self canonical nasazený pouze na ně.
Ostatní nepoužívané parametry přesměrujte.
Je self-canonical vůbec potřebný?
Self-canonical často udělá více škody, než užitku, protože je velmi často nasazený nesprávně. V některých případech dokonce není vůbec potřebný a místo něj můžete jednoduše nepodporované GET parametry z URL přesměrovávat a ponechávat pouze podporované.
Zda máte self-canonical nasazený správně, si můžete jednoduše ověřit tak, že do URL se self-canonical přidáte nahodný GET parametr (například ?neco=filip) a podíváte se do zdrojového kódu, kam se kanonizuje stránka poté. Pokud self-canonical tento nepodporovaný GET parametr obsahuje, pak je nasazen špatně.
Pokud místo self-canonicalu budete používat přesměrování (301) nepodporovaných parametrů, a ponechání pouze podporovaných v URL, tak si můžete ušetřit hodně starostí.
Kontrola správnosti nasazení
Nezapomeňte také pravidelně kontrolovat správnost nasazení canonicalu/přesměrování.
Zda je canonical správně nasazený, zkontrolujete tak, že přidáte pár náhodných parametrů do URL a zkontrolujete, kam vede canonical, příp. zda se daná stránka přesměrovává.
Jaké je ideální řešení duplicit?
V ideálním světě je nejlepším řešením nemít duplicity vůbec. Jelikož ale v ideálním světě nežijeme, je potřeba je řešit. Ne vždy je to možné, a pokud už nějaké duplicity máte, tak nejjednodušší možností je vyřešit je pomocí 301 přesměrování na správnou verzi (ne vždy je to však nejlepší řešení).
Nasazení canonicalu by mělo být poslední možností pro případy, které jsme popsali na začátku článku.
Canonical je velmi vábivé řešení, protože zapracování je poměrně málo nákladné. Většinou je to ale jen potlačení symptomů, ne léčba choroby. Např. když máte jeden produkt ve více kategoriích a má proto různé URL, potom canonical není první řešením, kterým byste se měli zabývat. Ideálním řešením je, aby URL produktu nebylo závislé na zatřídění do kategorií. Kromě toho, že URL jako https://www.domena.cz/nazev-produktu automaticky řeší duplicitu z pohledu vyhledávačů, to má další výhodu – kratší URL produktových stránek.
Podobně je to s jinými použitími canonicalu. Canonicalem se dá mnohé pokazit. Častým neduhem je použití canonicalu na stránkování. Vyhledávač při tomto nasazení canonicalu ztrácí signály na nalezení nebo hodnocení produktových stránek a můžete si tím uškodit. Zároveň je to něco, co děláte jen pro vyhledávače, ne pro uživatele stránek. A jak už to bývá, vyhledávače mohou k těmto řešením měnit svůj přístup. Stačí si vzpomenout na změnu přístupu Googlu k rel next a prev, k nofollow atributu, ale i ke canonicalu samotnému. Na začátku byl canonical použitelný jen pro interní URL adresy webu, teď se může používat i mezi weby. Na začátku byl jen na duplicitní stránky, teď už i na podobné. Později to může být trochu nebo úplně jinak. Canonical by proto měl být to poslední, když už řádné řešení nemůžete použít.
Tibor Peták
301 přesměrování
Pokud máte duplicitní stránky nebo nechtěné parametry, tak můžete využít automatické 301 přesměrování v případě, že se uživatel na tuto stránku dostane.
Při použití 301 přesměrování víme určitě, že se ze stránky A na přesměrovanou stránku B přenáší odkazová šťáva (link juice), kdežto při použití canonical tagu to nemůžeme říct s jistotou.
Pozor však na to, že při použití přesměrování se uživatel na stránku A nedostane (protože ho automaticky přesměrujeme). Při využití canonicalu je však tato stránka A stále přístupná pro uživatele.
Podívejte se na video od Matta Cuttsa, jaké jsou další výhody/nevýhody 301 přesměrování oproti canonicalu:
Odstranění nechtěných parametrů v .htaccess
Také vás otravují různé parametry, které si Facebook přidává do vašich URL adres? Pomocí následujícího kódu (který vložíte do souboru .htaccess) přidáte automatické 301 přesměrování k parametrům fbclid.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} (.*?)(&?fbclid=[a-zA-Z0-9_-]+)$
RewriteRule ^(.*)$ /$1?%1 [L,NE,R=301]
</IfModule>
Často vídám přímo v SERPu zaindexované URL s měřicími parametry pro Google Analytics nebo affiliate kampaně. Problém to způsobuje hned na dvou frontách – jednak vzniká duplicitní obsah, ale hlavně se v Google Analytics připisují návštěvy a konverze ke špatnému zdroji – místo organicu jinému kanálu. Může se tak stát, že vaši affiliate partneři budou pěkně vydělávat jen díky vaší interní duplicitě. Ověřte si tedy, že všechny URL parametry pro tracking kampaní máte vyřešeny buď self canonicalem, nebo přesměrováním.
Martin Šimko
Jak najít duplicity na vašem webu?
Google Search Console
Informace o chybách spojených s duplicitou a canonicalem najdete v GSC v sekci Pokrytí -> Vyňaté.
Mohou nastat různé stavy:
- Duplicitní stránka bez kanonické verze vybrané uživatelem – stránka má duplicitní verzi, ale žádná nebyla označená jako kanonická.
- Google zvolil jinou kanonickou stránku než uživatel – tato „chyba“ nastává tehdy, když si Google myslí, že lepší kanonickou stránkou by byla jiná URL adresa než si myslí uživatel. Tato stránka byla objevená bez žádosti o zaindexování.
- Odeslaná adresa URL nebyla vybrána jako kanonická – podobné jako výše uvedené, jen s tím rozdílem, že u této stránky jste požádali o zaindexování.
- Alternativní stránka se správnou značkou kanonické stránky – v tomto případě je všechno v pořádku, Google respektuje nasazený canonical a používá ho. Není třeba se ničeho bát, i když se to v GSC reportuje do podsekce Vyňaté.
Podrobné informace k jednotlivým stavům najdete na této adrese: https://support.google.com/webmasters/answer/7440203?hl=cs v sekci Vyloučeno.
Kontrola canonicalu URL v GSC
Po zadání URL adresy do vyhledávacího políčka v GSC Google zkontroluje danou webovou stránku a vrátí vám informace o kanonizaci.
Screaming Frog
Na průchod všech stránek, které mají nasazené rel=”canonical” můžete využít také nástroj Screaming Frog. Ve verzi zdarma můžete zkontrolovat až 500 URL adres.
Podrobný návod najdete na tomto odkazu: https://www.screamingfrog.co.uk/how-to-audit-canonicals/.
SiteBulb
Dalším z vynikajících nástrojů na odhalení duplicit je SiteBulb.
Kontroluje hlavní části, kde se mohou duplicity vyskytnout:
- Identický HTML obsah
- Technicky identické URL adresy
- Duplicitní title
- Duplicitní meta description
- Duplicitní H1
Víc si můžete přečíst zde: https://sitebulb.com/product/duplicate-content/.
Závěr
Canonical je jen doporučení. Vyhledávač se jím nemusí řídit. Obzvlášť když se kanonizované stránky nacházejí v interním prolinkování. Pokud máte duplicitního obsahu na webu hodně, určitě zvažte lepší možnosti eliminace duplicit. Např. přesměrování kódem 301 nebo odstranění duplicitních stránek. Já jsem si to v minulosti dostatečně neuvědomil a tato chyba nám utlumila růst v SEO na jeden rok (viz případovou studii).
Ján Januška
Je na vás, zda se rozhodnete použít canonical, nebo jinou formu odstranění duplicit. V tomto článku jsem se snažil přiblížit výhody a nevýhody použití canonicalu. Pevně věřím, že jsem vám aspoň trošku rozšířil obzory.
Doporučuji také nastudovat nápovědu ke canonicalu od vyhledávačů:
- Seznam: https://napoveda.seznam.cz/cz/fulltext-hledani-v-internetu/kanonicke-url/
- Google: https://support.google.com/webmasters/answer/139066?hl=cs
Pokud vás bude cokoliv ohledně canonicalu zajímat, nebo vám nebude jasné, tak mi dejte vědět na [email protected] a rád vám poradím. :-)