Kanonická adresa (rel canonical): ako ju nastaviť a čo robiť, keď ju Google ignoruje
Kanonická adresa je tá verzia stránky, ktorú chcete vo vyhľadávaní vidieť, keď rovnaký alebo veľmi podobný obsah nájdete na viacerých adresách. Google ju podľa oficiálnej dokumentácie určuje z viacerých signálov a značka rel="canonical" je len jedným z nich, hoci silným, takže jej správny zápis aj podpora zo strany sitemapy a odkazov rozhodujú o tom, či sa vami zvolená adresa naozaj ujme.
1. Čo je kanonická adresa a kedy ju potrebujete
Kanonická adresa (po anglicky canonical URL) je adresa, ktorú považujete za hlavnú verziu stránky. Obsah sa totiž na webe často dostane pod viac URL: s parametrom na triedenie, s filtrom v e-shope, s kódom kampane, vo verzii pre tlač alebo cez dve rôzne cesty v menu. Pre návštevníka je to jedna stránka, no vyhľadávač vidí viac samostatných adries a musí sa rozhodnúť, ktorú z nich ukáže vo výsledkoch.
Google to v dokumentácii o zlučovaní duplicitných adries opisuje takto: značka rel="canonical" je prvok v hlavičke HTML (sekcia head), ktorý označuje, že obsah stránky najlepšie reprezentuje iná adresa. Dokumentácia zároveň uvádza, že Google sám rozhoduje, ktoré stránky sú duplicity, a robí to podľa podobnosti obsahu. Vami zadaná adresa je teda silný podnet, nie rozkaz.
Dôležitá je aj druhá veta z tej istej dokumentácie: žiadna z metód nie je povinná a web bez zadanej kanonickej adresy bude podľa Googlu pravdepodobne fungovať dobre. Ak kanonickú adresu neurčíte, Google vyberie verziu, ktorú považuje za objektívne najlepšiu pre používateľov. Značka sa preto oplatí tam, kde chcete tento výber ovplyvniť, a nie ako ozdoba na každej stránke naslepo.
Základné pojmy duplicít vysvetľuje článok o duplicitnom obsahu. Tento návod sa sústreďuje na to, ako vybranú adresu technicky zapísať a podporiť.
2. Ako Google signály vyhodnocuje
Dokumentácia Googlu radí metódy podľa toho, ako silno môžu ovplyvniť výber kanonickej adresy. Presmerovanie je podľa nej silný signál, že cieľ presmerovania má byť kanonický. Značka rel="canonical" je rovnako silný signál, že zadaná adresa má byť kanonická. Zahrnutie adresy do sitemapy je slabý signál, ktorý pomáha adresám zo sitemapy stať sa kanonickými.
| Metóda | Sila signálu podľa Googlu | Kedy ju použiť |
|---|---|---|
| Presmerovanie 301 | silný | Duplicitná adresa nemá existovať a návštevník má skončiť na hlavnej verzii. |
rel="canonical" v head | silný | Obe adresy musia zostať dostupné, napríklad filtrovaný zoznam a základná kategória. |
| Sitemap | slabý | Ako doplnok: do sitemapy patria len preferované adresy. |
Google k tomu pripája dôležitú poznámku: metódy sa môžu sčítať, a preto sú účinnejšie v kombinácii. Ak teda značka ukazuje na adresu A, sitemap obsahuje adresu A a interné odkazy mieria na adresu A, signály sa podporujú. Ak sa rozchádzajú, Google musí rozhodnúť sám a výsledok môže byť iný, než ste čakali.
Presmerovanie a značka sa navzájom dopĺňajú. Postup pri trvalých presmerovaniach rozoberá článok o presmerovaniach 301. Sitemap a pravidlá pre prehľadávanie opisuje návod k súborom robots.txt a sitemap.
3. Ako značku rel canonical správne zapísať
Značka sa vkladá do sekcie head každej stránky, ktorej sa týka. Dokumentácia výslovne uvádza, že Google ju akceptuje iba v sekcii head dokumentu HTML. Ak ju šablóna omylom vypíše do tela stránky, ostane bez účinku.
<head>
<link rel="canonical" href="https://www.example.com/kategoria/zelene-saty/" />
</head>
Pri zápise sa oplatí dodržať niekoľko pravidiel, ktoré vyplývajú z dokumentácie.
- Absolútna adresa. Google odporúča používať absolútne cesty, teda adresu vrátane protokolu a domény. Relatívne cesty podľa dokumentácie síce podporuje, no z dlhodobého hľadiska môžu spôsobiť problémy.
- Jedna značka na stránku. Dokumentácia varuje pred tým, aby ste pre tú istú stránku uviedli odlišné kanonické adresy rôznymi technikami. Ak sa značka v kóde zopakuje dvakrát s odlišnou adresou, signály si protirečia.
- Bez fragmentu. Časť adresy za znakom
#nepoužívajte, pretože fragmenty Google vo všeobecnosti nepodporuje. - Značka aj na kanonickej stránke. Dokumentácia odporúča uviesť rel="canonical" aj na samotnej hlavnej stránke, čím vzniká takzvaná samoodkazujúca kanonická adresa.
- Bez zásahu JavaScriptu. Ak web upravuje obsah skriptom, dbajte, aby skript značku nepozmenil. Súvislosti s vykresľovaním opisuje článok o JavaScript SEO.
Rovnaký výsledok sa dá dosiahnuť aj hlavičkou HTTP. Dokumentácia uvádza, že prvok v head funguje len pre stránky HTML a pre súbory ako PDF môžete použiť hlavičku rel="canonical". Podporu tejto metódy Google obmedzuje na webové vyhľadávanie. Postup pri dokumentoch PDF opisuje článok o SEO súborov PDF.
4. Typické situácie a ako v nich postupovať
Pri rozhodovaní pomôže jednoduché pravidlo: ak stará adresa nemá slúžiť návštevníkom, presmerujte ju, a ak musí zostať dostupná, použite značku. Nasledujúce situácie sa na weboch opakujú najčastejšie.
Adresy s parametrami
Triedenie, stránkovanie alebo sledovacie parametre vytvárajú nové URL pri rovnakom obsahu. Ak sa obsah naozaj nelíši, nechajte na všetkých variantoch značku, ktorá ukazuje na čistú adresu bez parametrov. Návštevník aj sledovanie kampane tak ostanú funkčné a hlavnú verziu vyberiete vy.
Rôzne verzie jednej adresy
Adresa s protokolom http a https, s predponou www a bez nej alebo s lomkou na konci a bez nej sú z pohľadu vyhľadávača samostatné URL. Tu je lepšie presmerovanie, pretože pravidlo na úrovni servera zjednotí všetky varianty naraz. Podrobnosti k lomke nájdete v článku o lomke na konci URL. Značka je v takom prípade len záloha.
Rovnaký text pod viacerými cestami
Produkt zaradený v dvoch kategóriách alebo článok dostupný pod dvoma sekciami vytvára dve adresy pre jeden obsah. Vyberte jednu cestu ako hlavnú a z druhej nasmerujte značku na ňu. Interné odkazy a sitemap potom používajte už len pre hlavnú verziu.
Platí tiež, že pri úplne odlišných stránkach značka nepomôže. Google rozhoduje podľa podobnosti obsahu, a keď dve stránky nie sú duplicitné, značku môže jednoducho ignorovať. Konkurenciu dvoch rôznych stránok o tej istej fráze rieši článok o kanibalizácii kľúčových slov, nie značka canonical.
5. Chyby, ktoré kanonickú adresu znehodnotia
Väčšina problémov nevzniká tým, že značka chýba, ale tým, že si signály protirečia. Pred nasadením skontrolujte nasledujúce body.
| Chyba | Prečo je problém | Oprava |
|---|---|---|
Relatívna adresa v href | Google ju podporuje, no dokumentácia ju označuje za zdroj dlhodobých problémov. | Použite úplnú adresu s protokolom a doménou. |
Značka mimo head | Google ju akceptuje iba v sekcii head. | Skontrolujte šablónu a vykreslený kód. |
| Dve rôzne kanonické adresy | Rôzne techniky ukazujú na rôzne URL a signály sa rozchádzajú. | Určte jednu adresu a zjednoťte značku, sitemap aj presmerovanie. |
| Fragment v adrese | Google fragmenty vo všeobecnosti nepodporuje. | Odstráňte časť za znakom #. |
| Zablokovanie v robots.txt | Dokumentácia radí nepoužívať robots.txt na účely kanonizácie. | Nechajte adresu prehľadateľnú a použite značku. |
| Noindex namiesto značky | Dokumentácia neodporúča používať noindex na zabránenie výberu kanonickej stránky v rámci jedného webu. | Preferovaným riešením je rel="canonical". |
Pri blokovaní v súbore robots.txt je dôvod jasný: Google podľa dokumentácie môže adresy zakázané v robots.txt aj tak zaindexovať, len bez ich obsahu. Zablokovaná stránka teda značku vôbec neprečíta a signál sa k vyhľadávaču nedostane. Rozdiel medzi pokynmi na prehľadávanie a pokynmi na indexáciu vysvetľuje článok o pravidlách meta robots.
Ďalším zdrojom zmätku býva zmes metód. Dokumentácia uvádza, že súčasné použitie viacerých spôsobov zápisu, napríklad značky aj hlavičky HTTP pre tú istú stránku, je náchylnejšie na chyby. Ak niektorú stránku označujete hlavičkou, nepridávajte k nej ešte iný zápis, ktorý by mohol ukazovať inam.
6. Ako zistiť, ktorú adresu si Google vybral
Zadanie kanonickej adresy je len návrh, a preto je dôležité overiť, ako ho Google prijal. Pomôže nástroj Kontrola adresy URL v službe Google Search Console. Pri indexovanej stránke zobrazuje dva údaje: kanonickú adresu, ktorú stránka sama deklaruje, a kanonickú adresu, ktorú Google zvolil, keď na vašom webe našiel podobné stránky. Pomocník Search Console zároveň upozorňuje, že živý test nevie predpovedať, či sa testovaná verzia bude považovať za kanonickú, takže výber overujte na indexovaných údajoch. Ak sa obe adresy líšia, nájdite rozpor v signáloch: skontrolujte interné odkazy, sitemap, presmerovania a kód v hlavičke vykreslenej stránky.
Odporúčaný postup po každej zmene:
- Vyberte reprezentatívnu stránku z každej skupiny duplicít, napríklad kategóriu s filtrom a základnú kategóriu.
- Skontrolujte zdrojový kód vykreslenej stránky a overte, že značka je v
head, je jedna a obsahuje úplnú adresu. - Overte, že hlavná adresa vracia kód 200 a nepresmeruje inam, pretože značka by inak smerovala na adresu, ktorá sama nie je cieľom.
- Skontrolujte, že sitemap obsahuje hlavné adresy a interné odkazy mieria na ne.
- Po niekoľkých týždňoch opäť otvorte Kontrolu adresy URL a porovnajte výber Googlu s vaším zámerom.
Google nedáva žiadnu záruku, že zmenu prevezme okamžite, a dokumentácia neuvádza časový rámec. Ak výber stále nesedí, riešte príčinu v obsahu: dve stránky, ktoré sa od seba podstatne líšia, Google ako duplicity nezlúči, aj keď značku nastavíte správne. Ak však obsah naozaj sedí a signály sú zjednotené, výber sa väčšinou ustáli na vašej adrese.
Časté otázky
Čo je kanonická adresa?
Je to adresa, ktorú považujete za hlavnú verziu stránky, keď sa rovnaký alebo veľmi podobný obsah nachádza na viacerých adresách. Google ju používa ako preferovanú verziu, ktorú zobrazí vo vyhľadávaní.
Je rel canonical príkaz, ktorý musí Google dodržať?
Nie. Dokumentácia Googlu ju označuje za silný signál, že zadaná adresa má byť kanonická, no rozhodnutie robí Google sám podľa podobnosti obsahu a ďalších signálov.
Kam patrí značka rel canonical?
Do sekcie head dokumentu HTML. Google podľa dokumentácie značku akceptuje iba tam. Pre súbory ako PDF slúži hlavička HTTP s rovnakým významom.
Treba mať kanonickú adresu na každej stránke?
Nie je to povinné. Dokumentácia uvádza, že web bude pravdepodobne fungovať dobre aj bez nej. Odporúča však uviesť značku aj na samotnej hlavnej stránke, kde ide o samoodkazujúcu adresu.
Čo je lepšie, presmerovanie 301 alebo rel canonical?
Obe metódy sú podľa Googlu silné signály. Presmerovanie použite, keď duplicitná adresa nemá zostať dostupná, a značku, keď musia zostať dostupné obe adresy.
Môžem duplicitné adresy zablokovať v robots.txt?
Dokumentácia radí nepoužívať robots.txt na kanonizáciu. Zablokovanú adresu Google nemusí prehľadať, takže značku nepreberie, a adresa sa môže zaindexovať aj bez obsahu.