Canonical link – co to jest?

  • 32 minuty czytania
  • SEO, Wiedza SEO

Canonical link (zwany po polsku linkiem kanonicznym) to element kodu HTML, który pozwala wskazać wyszukiwarkom internetowym preferowany (kanoniczny) adres URL spośród zestawu stron o takiej samej lub bardzo zbliżonej treści. Innymi słowy, link kanoniczny mówi robotom indeksującym: „Jeśli znajdziesz duplikaty tej treści pod różnymi adresami, traktuj ten wskazany adres jako główny i najważniejszy.” Dzięki temu rozwiązujemy problem zduplikowanej treści w ramach jednej witryny lub pomiędzy różnymi witrynami, co ma istotne znaczenie dla SEO (optymalizacji dla wyszukiwarek). W dalszej części artykułu wyjaśnimy szczegółowo, czym jest link kanoniczny, jak działa, jak go zaimplementować, w jakich sytuacjach należy go stosować oraz jakie błędy są najczęściej popełniane przy jego użyciu.

Link kanoniczny to nic innego jak specjalny tag HTML umieszczany w sekcji <head> strony internetowej. Jego zadaniem jest wskazanie adresu kanonicznego, czyli głównej wersji strony, którą wyszukiwarka powinna zaindeksować i wyświetlać w wynikach zamiast innych, alternatywnych wersji URL. W praktyce każda strona internetowa może posiadać taki tag informujący, który URL jest uznawany za kanoniczny dla danej treści. Na przykład strona może sama wskazywać siebie jako kanoniczną (tzw. self-canonical), albo może wskazywać na inny URL, jeśli jest tylko kopią lub wariantem treści znajdującej się pod tym innym adresem.

Problem duplikacji treści

Aby zrozumieć sens linków kanonicznych, trzeba najpierw wiedzieć, na czym polega problem duplikacji treści (duplicate content). Duplikacja treści występuje wtedy, gdy identyczna lub bardzo podobna zawartość strony jest dostępna pod więcej niż jednym adresem URL. Z punktu widzenia użytkownika może to nie robić różnicy – widzi tę samą stronę – ale dla wyszukiwarek stanowi to wyzwanie. Wyszukiwarka, taka jak Google, chce w indeksie posiadać unikalne strony. Jeśli napotyka wiele adresów prowadzących do tej samej treści, może:

  • Niepotrzebnie indeksować ten sam content wielokrotnie, marnując tzw. crawl budget (limit zasobów na przeszukiwanie witryny).
  • Mieć problem z wyborem, którą wersję strony wyświetlić użytkownikom w wynikach wyszukiwania.
  • Rozdzielać wartość rankingową (np. linki zewnętrzne prowadzące do różnych wersji) pomiędzy duplikaty, zamiast skumulować ją na jednym właściwym adresie.

W efekcie niezarządzana duplikacja treści może utrudniać osiąganie wysokich pozycji w wynikach wyszukiwania. Przykładowo, sklep internetowy może udostępniać tę samą listę produktów pod kilkoma różnymi URL (np. z różnymi parametrami filtrowania lub sortowania). Bez mechanizmu kanonicznego Google może uznać każdy z tych URL za oddzielną stronę i indeksować je osobno, co nie jest pożądane.

Jak działa atrybut rel="canonical"

Atrybut canonical działa na zasadzie wskazówki dla robotów wyszukiwarek. Gdy robot (np. Googlebot) odwiedza stronę, która posiada w kodzie <head> element link kanoniczny, odczytuje go i zapamiętuje wskazany w nim adres. Jeśli ta sama lub podobna treść pojawiła się wcześniej pod innym adresem, wyszukiwarka porównuje te strony i na podstawie linku kanonicznego wie, który adres powinna traktować jako wersję oficjalną. Zazwyczaj skutkuje to tym, że:

  • Google zaindeksuje i wyświetli w wynikach tylko tę stronę, która została oznaczona jako kanoniczna.
  • Alternatywne adresy (duplikaty) nie pojawią się oddzielnie w wynikach – wyszukiwarka pominie je lub co najwyżej odnotuje ich obecność jako duplikatów w narzędziach dla webmasterów.
  • Wszelkie sygnały rankingowe (np. linki przychodzące, sygnały użytkowników) z tych duplikatów wyszukiwarka przypisze do strony kanonicznej, dzięki czemu unikamy rozproszenia wartości SEO.

Warto podkreślić, że link kanoniczny jest tylko wskazówką, a nie poleceniem. Wyszukiwarki na ogół respektują kanoniczne wskazanie webmastera, ale w pewnych sytuacjach mogą je zignorować. Dzieje się tak np. wtedy, gdy wskazany adres kanoniczny wydaje się nie mieć nic wspólnego z treścią strony lub gdy wystąpi błąd techniczny (np. wskazujemy kanoniczny URL, który nie istnieje). Mimo to, w zdecydowanej większości przypadków poprawne użycie rel="canonical" przynosi zamierzony efekt i jest podstawową praktyką w technicznym SEO.

Skonfigurowanie linku kanonicznego na stronie sprowadza się do dodania odpowiedniego wpisu w kodzie HTML lub nagłówkach serwera. Najczęściej odbywa się to poprzez umieszczenie tagu <link rel="canonical"> wewnątrz sekcji <head> każdej strony, dla której chcemy określić adres kanoniczny. Poniżej omówimy dwie główne metody: poprzez kod HTML oraz alternatywne sposoby (nagłówki HTTP i mapa strony).

Podstawowym sposobem ustawienia linku kanonicznego jest dodanie w części HTML <head> następującego tagu link:

<link rel="canonical" href="https://www.example.com/adres-preferowany-strony" />

W powyższym przykładzie atrybut href zawiera kanoniczny adres URL danej strony. Należy go zastąpić właściwym adresem, który chcemy uznać za główny. Kilka ważnych zasad przy implementacji:

  • Pełny adres (URL absolutny) – w href najlepiej podawać pełny adres wraz z protokołem (http:// lub https://) i domeną. Unikaj stosowania ścieżek względnych, ponieważ mogą prowadzić do niejednoznaczności. Poprawny przykład to href="https://twojadomena.pl/podstrona" zamiast href="/podstrona".
  • Umiejscowienie – tag link kanoniczny umieszczamy między znacznikiem <head> a </head>. Powinien znaleźć się tylko raz na stronie. Wygenerowanie więcej niż jednego takiego tagu na pojedynczej stronie jest błędem (wyszukiwarka może wtedy zignorować wszystkie lub wybrać losowo jeden z nich).
  • Wartość adresu – jeśli dana strona jest oryginałem treści (to właśnie ta strona ma być indeksowana), wtedy w href podajemy jej własny adres URL (tzw. kanoniczny wskazujący sam na siebie). Natomiast jeśli strona jest duplikatem lub wersją alternatywną, w href podajemy adres oryginału. Dzięki temu robot odwiedzający duplikat od razu wie, jaka jest właściwa, kanoniczna wersja.
  • Spójność protokołu i domeny – upewnij się, że adres wpisany w kanonicznym tagu jest dokładnie tym, pod którym powinna być widoczna strona. Na przykład, jeżeli cała witryna działa pod https:// i z prefiksem www, to kanoniczny URL także powinien mieć https://www.. Niespójności (np. wskazywanie na wersję http lub inną domenę przez pomyłkę) mogą zniweczyć działanie kanonicznego.
  • Każda podstrona z własnym canonical – dobrą praktyką jest, aby każda podstrona serwisu posiadała zdefiniowany link kanoniczny. W większości przypadków będzie on wskazywał po prostu na nią samą (zapobiega to ewentualnym niejasnościom, a robot otrzymuje jasny sygnał). Wyjątki to sytuacje, gdy celowo chcemy kanonizować stronę do innego URL (o takich przypadkach piszemy w dalszej części).

Wiele popularnych systemów zarządzania treścią (CMS), jak np. WordPress, Joomla czy sklepowe platformy e-commerce, oferuje automatyczne dodawanie linków kanonicznych lub wtyczki, które to umożliwiają. Warto sprawdzić, czy nasza strona już posiada taki tag w kodzie (można to zrobić, przeglądając kod źródłowy strony w przeglądarce – szukając w nim słowa „canonical”). Jeśli nie, należy rozważyć dodanie go ręcznie lub skorzystanie z odpowiedniego modułu/rozszerzenia.

Alternatywne metody wskazania adresu kanonicznego

Choć umieszczenie linku kanonicznego w HTML to podstawowy i najpopularniejszy sposób, istnieją też inne metody informowania wyszukiwarek o kanonicznej wersji strony:

  • Nagłówek HTTP Link: rel="canonical" – serwer web może wysłać w odpowiedzi HTTP specjalny nagłówek informujący o kanonicznym URL. Ta metoda jest przydatna w przypadku zasobów, które nie są stronami HTML, a również mogą pojawić się w wynikach wyszukiwania (np. pliki PDF lub obrazy). Przykładowo, jeśli posiadamy plik PDF z treścią identyczną jak na stronie HTML, możemy skonfigurować serwer, by przy wysyłaniu PDF dodał nagłówek: bashKopiujLink: <https://www.example.com/strona-html-z-trescia>; rel="canonical" Wówczas robot otrzymujący plik PDF dowie się, że właściwą wersją kanoniczną treści jest podany adres HTML. Konfiguracji takiej dokonuje się na poziomie serwera (np. w pliku .htaccess na serwerach Apache lub poprzez ustawienia nagłówków w aplikacji). Ta metoda jest bardziej zaawansowana i najczęściej stosowana właśnie dla treści nie-HTML, ale wyszukiwarki (jak Google) obsługują ją równie dobrze jak standardowy tag w kodzie strony.
  • Mapa strony (sitemap) – pośrednio na kanoniczność może wpływać także plik mapy strony XML. Dobrą praktyką jest umieszczanie w pliku sitemap wyłącznie kanonicznych adresów URL. Jeśli nasza witryna generuje duplikaty z różnymi parametrami, w mapie strony powinniśmy umieszczać tylko „czyste” adresy (te, które chcemy indeksować). Google sam wskazuje, że choć obecność adresu w sitemap nie gwarantuje uznania go za kanoniczny, to pomaga zasygnalizować, które adresy uważamy za główne. W przypadku dużych witryn, gdzie trudno zarządzać indywidualnie wszystkimi duplikatami, zadbanie o poprawną mapę strony jest istotnym elementem strategii kanonicznej.

Warto zauważyć, że wskazanie adresu kanonicznego nie musi ograniczać się do tej samej domeny. Możliwe jest ustawienie kanonicznego URL wskazującego na zupełnie inną domenę (tzw. kanoniczny między domenami, ang. cross-domain canonical). Takie zastosowanie bywa przydatne, gdy np. publikujemy tę samą treść na dwóch różnych serwisach i chcemy, aby tylko jeden z nich (konkretny, wskazany) był przez Google uznawany za źródłowy. Implementacja cross-domain canonical odbywa się tak samo – poprzez tag HTML lub nagłówek, tyle że w href podajemy pełny URL do strony na innej domenie.

Typowe przypadki użycia linku kanonicznego

Wiemy już, że linki kanoniczne służą do zwalczania duplikatów treści. Przyjrzyjmy się teraz konkretnym sytuacjom, w których zastosowanie atrybutu canonical jest szczególnie pomocne. Każdy z opisanych niżej przypadków ilustruje, kiedy należy rozważyć dodanie linku kanonicznego oraz jak go prawidłowo użyć.

Parametry filtrowania i sortowania (nawigacja fasetowa)

Jednym z najczęstszych źródeł duplikatów w obrębie jednej witryny są parametry URL generowane przez filtrowanie lub sortowanie treści. Dzieje się tak zwłaszcza w sklepach internetowych i serwisach z rozbudowaną nawigacją fasetową (filtry po cechach produktów). Przykładowo, weźmy stronę kategorii w sklepie:

  • Adres bazowy kategorii (bez filtrów): https://sklep.pl/kategoria/krzesla – to nasza główna strona kategorii krzeseł, zawierająca listę wszystkich produktów w tej kategorii.
  • Wersja z filtrem koloru: https://sklep.pl/kategoria/krzesla?kolor=biale – ta sama lista krzeseł, ale zawężona tylko do koloru białego.
  • Wersja z innym filtrem: https://sklep.pl/kategoria/krzesla?material=drewno – lista krzeseł wykonanych z drewna.

Treść tych stron w dużej mierze się pokrywa – wszystkie zawierają opis kategorii „krzesła” i różnią się głównie listą wyświetlanych produktów. Dla Google każda z tych stron to osobny URL z podobną zawartością, co oznacza duplikację. Rozwiązanie: ustawiamy link kanoniczny wszystkich wariantów na główny adres kategorii. To znaczy, zarówno strona z filtrem ?kolor=biale, jak i ?material=drewno powinny mieć w <head> tag:

<link rel="canonical" href="https://sklep.pl/kategoria/krzesla" />

W ten sposób sygnalizujemy, że oryginalną, kanoniczną wersją jest nieofiltrowana strona kategorii. Robot wyszukiwarki, trafiając na wersję z parametrami, zauważy ten tag i zrozumie, że właściwym adresem do indeksowania jest strona bez parametru. W efekcie tylko ona znajdzie się w indeksie jako reprezentant tej kategorii, a różne warianty z parametrami nie zaśmiecą wyników wyszukiwania.

Podobnie postępujemy z parametrami sortowania. Jeśli URL kategorii zmienia się w zależności od kryterium sortu (np. ...?sort=price_asc dla sortowania po cenie rosnąco), to wszystkie te warianty również powinny wskazywać canonical na bazową stronę kategorii. Użytkownicy nadal mogą korzystać z filtrów i sortowania na stronie, ale z perspektywy Google istnieje jedna główna wersja.

Warto dodać, że w niektórych nowoczesnych implementacjach filtrowania (za pomocą JavaScript, bez zmiany URL) problem duplikatów nie występuje, ponieważ adres pozostaje stały. Jeśli jednak parametry pojawiają się w URL, link kanoniczny jest niezbędny, aby unikać mnożenia zaindeksowanych stron.

Parametry śledzące w adresie (UTM, FBclid itp.)

Innym typem parametrów, które mogą powodować duplikaty, są parametry śledzące kampanie i ruch. Najbardziej znanym przykładem są parametry UTM dodawane do linków w kampaniach marketingowych, np.:

https://twojastrona.pl/promocja?utm_source=newsletter&utm_medium=email

Taki adres kieruje do strony „promocja”, ale zawiera dodatkowe informacje o źródle ruchu. Dla użytkownika treść strony jest identyczna jak pod adresem bez parametrów (np. https://twojastrona.pl/promocja), natomiast wyszukiwarka widzi to jako inny URL. Podobnie parametry typu fbclid (dodawane automatycznie przez Facebook) czy gclid (Google Ads) generują unikalne adresy URL.

Aby uniknąć indeksowania takich wariantów, na stronie dostępnej pod adresem z parametrami śledzącymi również umieszczamy link kanoniczny wskazujący na czysty URL strony, bez tych parametrów. Dzięki temu, jeśli robot trafi na link z kampanii (co może się zdarzyć, gdy ktoś udostępni taki link publicznie lub gdy Google sam znajdzie go w logach), nie zaindeksuje zdublowanej strony. W praktyce wiele systemów analitycznych i CMS-ów samodzielnie dba o to, by parametry typu UTM nie wpływały na kanoniczność (np. poprzez automatyczny canonical na adres bez parametru). Warto jednak być tego świadomym i upewnić się, że taka konfiguracja działa.

Warianty adresu URL tej samej strony (HTTP vs HTTPS, WWW vs non-WWW, ukośnik)

Duplikacja treści może wystąpić nawet bez udziału parametrów, jeśli nasza witryna jest dostępna pod kilkoma wariantami adresu. Przykładowo:

  • Strona może działać zarówno z prefiksem www, jak i bez niego (np. https://www.twojadomena.pl i https://twojadomena.pl wyświetlają ten sam serwis).
  • Może być dostępna przez dwa protokoły – zabezpieczony HTTPS oraz niezabezpieczony HTTP.
  • Czasem adresy działają zarówno z końcowym ukośnikiem (slash) jak i bez niego (np. twojadomena.pl/strona oraz twojadomena.pl/strona/ oba prowadzą do tej samej treści).
  • Zdarza się także duplikacja przez różną pisownię adresu (np. /Strona z wielkiej litery i /strona z małej litery mogą być traktowane jako różne ścieżki na niektórych serwerach).

Najlepszym rozwiązaniem takich sytuacji jest ustalenie jednej wersji kanonicznej i przekierowanie pozostałych (np. zawsze przekierowujemy z HTTP na HTTPS, z non-WWW na WWW albo odwrotnie, tak samo dodajemy lub usuwamy ukośnik wedle jednolitej konwencji). Jednak w niektórych przypadkach konfiguracja przekierowań bywa trudna lub niemożliwa do natychmiastowego wdrożenia. Wówczas link kanoniczny może pomóc tymczasowo zażegnać problem duplikacji.

Przykład: jeśli nasza strona jest dostępna pod kilkoma wariantami i obecnie nie mamy przekierowań, możemy na wszystkich tych wersjach umieścić tag canonical wskazujący na wybrany główny URL. Załóżmy, że preferujemy https://www.twojadomena.pl/ jako adres kanoniczny:

<link rel="canonical" href="https://www.twojadomena.pl/" />

Ten tag umieszczamy na każdej wersji strony (HTTP, non-www, itp.). Dzięki temu, nawet jeśli robot trafi na nieprzekierowaną wersję alternatywną, będzie to dla niego sygnał, by traktować tamten adres jako właściwy. Należy jednak traktować to jako plan B. Docelowo warto wdrożyć rzeczywiste przekierowania 301, ponieważ przekierowanie od razu przenosi użytkownika i bota na właściwy adres, podczas gdy canonical jedynie sugeruje kanoniczność (robot wciąż musi zaindeksować obie wersje, zanim zrozumie relację). Mimo to, lepszy canonical niż nic – pozwoli on przynajmniej uniknąć sytuacji, gdzie wyszukiwarka losowo wybiera sobie mniej optymalną wersję naszego serwisu do indeksu.

Strony mobilne a wersje desktop (oddzielne witryny)

Współcześnie wiele stron stosuje podejście responsywne (ta sama URL, dostosowany układ dla urządzenia), co eliminuje problem duplikatów między wersją mobilną i desktop. Istnieją jednak witryny, które mają osobne adresy dla wersji mobilnej – np. subdomena m.twojadomena.pl albo zupełnie inny adres dla tej samej treści. W takich przypadkach również powstaje duplikat: ta sama zawartość jest dostępna pod dwoma URL (wersja mobilna i wersja desktop).

Standardowym rozwiązaniem dla wyszukiwarek jest tu użycie dwóch powiązanych tagów:

  • Na stronie mobilnej dodajemy link kanoniczny wskazujący na odpowiedni URL wersji desktop (kanoniczny adres).
  • Na stronie desktopowej dodajemy tag <link rel="alternate" media="only screen and (max-width: 640px)" href="..."> wskazujący na wersję mobilną (tzw. tag alternatywny dla urządzeń mobilnych).

Taka konfiguracja informuje Google, że strony są odpowiednikami dla różnych urządzeń, przy czym wersja desktop jest traktowana jako ta główna. W dobie indeksowania mobilnego (Mobile-First Indexing) Google i tak preferuje wersje mobilne treści, ale jeśli mamy oddzielne adresy, to nadal dobrze wskazać ich relacje. W praktyce, jeżeli posiadamy osobną domenę mobilną, niezbędne jest stosowanie linku kanonicznego między domenami (mobilna -> desktop) wraz z linkiem alternatywnym (desktop -> mobilna). To zapewni, że Google nie potraktuje tych dwóch wersji jako niezależne, duplikujące się strony w wynikach.

Identyczna treść na różnych domenach (cross-domain canonical)

Bywa, że ta sama treść (np. artykuł, opis produktu lub wpis na blogu) jest dostępna na dwóch różnych witrynach internetowych. Może to mieć miejsce, gdy:

  • Publikujemy gościnny artykuł na cudzej stronie, który oryginalnie pojawił się u nas.
  • Mamy kilka własnych serwisów i duplikujemy treści między nimi.
  • Ktoś skopiował naszą treść (legalnie lub nie) i umieścił ją na innym adresie.

W oczach wyszukiwarki to typowy przypadek duplikatu, tylko rozszerzony na różne domeny. Mechanizm linku kanonicznego działa tutaj podobnie. Możemy na stronie duplikatu umieszczonej na innej domenie dodać w kodzie:

<link rel="canonical" href="https://oryginalna-domena.pl/moja-tresc" />

To powie Google, że kanoniczna, preferowana wersja znajduje się pod wskazanym adresem (na innej domenie). W rezultacie wyszukiwarka powinna indeksować i wyświetlać przede wszystkim oryginał. Ten sposób jest często wykorzystywany przy tzw. syndykacji treści, czyli udostępnianiu swoich artykułów w wielu miejscach. Warunkiem jest oczywiście możliwość edycji strony na drugim serwisie – musimy mieć tam wpływ na kod HTML, by dodać tag canonical.

Przykład: załóżmy, że napisałeś ekspercki wpis na blogu i zgodziłeś się opublikować go również na portalu branżowym (aby dotrzeć do szerszej publiczności). Uzgadniasz z redakcją portalu, że na opublikowanej kopii artykułu umieszczą link kanoniczny do oryginału na Twoim blogu. Tym sposobem Google wie, że Twój blogowy wpis jest źródłem, a wersja na portalu to tylko kopia – nie będzie więc traktować tego jako dwóch konkurujących stron w wynikach wyszukiwania.

Podobne lub zduplikowane produkty w e-commerce

W sklepach internetowych często spotykamy się z sytuacją, gdzie kilka osobnych stron produktowych ma prawie taką samą treść. Dzieje się tak np. gdy produkt występuje w wielu wariantach (rozmiar, kolor, model) rozbitych na osobne strony, albo gdy różnice między produktami są kosmetyczne, a opis i specyfikacja są w zasadzie identyczne. Przykładowo, sklep sprzedaje dany model telefonu w czterech kolorach, ale każdy kolor to oddzielna podstrona produktu, różniąca się właściwie tylko zdjęciem i nazwą koloru, podczas gdy opis, cena i reszta informacji są takie same.

Takie strony to typowe duplikaty z punktu widzenia treści. Jeśli pozostawimy je same sobie, Google może sam zdecydować, który z nich uznać za kanoniczny (może zaindeksować np. tylko wersję czarną telefonu, a inne pominąć jako powielone). Lepiej nie zdawać się na przypadek – możemy wskazać preferowaną wersję za pomocą linków kanonicznych. Najczęściej wybiera się wtedy jeden wariant produktu jako główny (np. najpopularniejszy kolor) i na pozostałych wariantach umieszcza się canonical prowadzący do tego głównego. W efekcie wszystkie „klony” produktu będą przez wyszukiwarkę utożsamiane z wybraną wersją kanoniczną.

Warto się jednak zastanowić, czy rozbicie na osobne strony jest w ogóle potrzebne. Jeżeli warianty różnią się tylko kosmetycznie, być może lepszym rozwiązaniem jest połączenie ich na jednej stronie (np. użytkownik wybiera kolor z listy na stronie jednego produktu). Link kanoniczny w tym kontekście bywa więc czasem rozwiązaniem tymczasowym – stosujemy go, żeby ratować SEO przy obecnej strukturze strony, ale docelowo można przebudować witrynę tak, by uniknąć tworzenia wielu duplikatów. Niemniej, gdy już mamy takie podobne podstrony, canonical jest narzędziem pozwalającym zapanować nad ich indeksacją.

Wersje wydruku i alternatywne wersje strony

Niektóre serwisy udostępniają specjalne wersje stron, przeznaczone do określonych celów – na przykład wersję „do druku” (pozbawioną grafik i dodatków) lub wersję strony dla innego kontekstu wyświetlania. Jeśli taka wersja zawiera tę samą treść co oryginał, również powinna korzystać z linku kanonicznego. Przykładowo:

  • Mamy artykuł pod adresem https://portal.pl/artykul123 i przycisk „Wersja do druku”, który otwiera uproszczoną stronę z samym tekstem pod adresem https://portal.pl/artykul123?print=1.
  • Strona ?print=1 powiela treść artykułu, więc w jej kodzie dajemy canonical na główny adres bez parametru.

Podobnie, jeżeli generujemy dynamicznie jakieś alternatywne widoki treści (np. strona z komentarzami i strona bez komentarzy pod różnymi URL), warto wskazać kanoniczny na wersję uznaną za nadrzędną.

Najczęstsze błędy przy korzystaniu z linków kanonicznych

Mimo że koncepcja linku kanonicznego jest stosunkowo prosta, w praktyce łatwo o pomyłki przy jego wdrażaniu. Poniżej opisujemy szereg często spotykanych błędów i pułapek związanych z canonicalem. Unikanie tych błędów jest równie ważne, co samo zastosowanie linków kanonicznych, ponieważ niepoprawny canonical może nie zadziałać lub wręcz zaszkodzić widoczności strony.

Brak linku kanonicznego tam, gdzie jest potrzebny

Najbardziej podstawowym błędem jest nieumieszczenie tagu kanonicznego na stronach z duplikatami treści. Gdy posiadamy w serwisie strony o powtarzającej się zawartości (jak opisane wcześniej warianty URL czy zbliżone produkty) i nie wskażemy kanonicznego URL, wyszukiwarka samodzielnie będzie musiała rozstrzygnąć kwestię duplikacji. Google zazwyczaj stara się wybrać jedną wersję jako reprezentatywną, ale bez naszej wskazówki może wybrać nie tę, którą byśmy chcieli. Co gorsza, może też stwierdzić, że wszystkie wersje są na swój sposób istotne i zaindeksować je oddzielnie – prowadząc do wewnętrznej konkurencji naszych stron w wynikach wyszukiwania (tzw. kanibalizacja wyników). Dlatego brak linku kanonicznego w sytuacji, gdy treść jest dostępna pod wieloma adresami, to utracona szansa na kontrolę nad tym, co trafi do indeksu. Warto przeprowadzić audyt strony i zidentyfikować sekcje, gdzie mogą istnieć duplikaty, a następnie zastosować tam canonical.

Wskazywanie kanonicznego URL na niewłaściwą stronę

Kolejna pomyłka to ustawienie atrybutu canonical z błędnym adresem w href. Może to przybierać różne formy:

  • Literówka lub zły URL w tagu – np. wskazujemy ...href="https://twojadomena.pl/prodkt123" (brakuje litery w słowie „produkt”), przez co link prowadzi donikąd. Robot trafiając na taki canonical uzna go za nieistniejący adres i prawdopodobnie zignoruje tag, pozostawiając naszą stronę bez ochrony przed duplikacją.
  • Wskazanie innej, nieadekwatnej strony – np. omyłkowo wszystkie strony w serwisie mają canonical ustawiony na stronę główną witryny. Taki błąd jest krytyczny, ponieważ de facto mówimy Google, że każda z tych podstron to kopia strony głównej. W efekcie Google może pominąć w indeksie większość wartościowych podstron, mylnie wierząc, że jedynym ważnym adresem jest strona główna. Takie przypadki zdarzały się w praktyce (błędna konfiguracja modułów SEO), co skutkowało zniknięciem wielu podstron z wyników wyszukiwania.
  • Canonical wskazuje na stronę mniej ważną lub nieaktualną – np. nowy artykuł przez pomyłkę ma canonical kierujący do starszego artykułu o podobnej tematyce. Wtedy nowy artykuł może nie zostać zaindeksowany samodzielnie, bo wyszukiwarka potraktuje go jako duplikat starego. Zawsze upewniajmy się, że adres w href jest dokładnie tym, który chcemy promować i który odpowiada tożsamej lub bardzo podobnej treści.

Więcej niż jeden tag canonical na stronie

W kodzie pojedynczej strony powinien znajdować się tylko jeden link kanoniczny. Umieszczenie dwóch lub więcej takich tagów (np. poprzez zdublowanie sekcji <head> lub przez pomyłkowe wstawienie dodatkowego canonicala przez wtyczkę) powoduje niejednoznaczność. Robot wyszukiwarki napotykając dwa różne canonicale może:

  • Wybrać jeden z nich losowo lub według własnych kryteriów (co oznacza, że nie mamy kontroli, który zadziała).
  • Albo całkowicie zignorować oba z powodu konfliktu.

Obie sytuacje są niepożądane. Aby ich uniknąć, należy sprawdzić output HTML strony (np. używając narzędzi developerskich lub analizatorów SEO) i upewnić się, że generuje się dokładnie jeden znacznik <link rel="canonical" ...>. Gdy integrujemy różne moduły na stronie, zwróćmy uwagę, czy któryś nie dodaje własnego canonicala nakładając się na już istniejący.

Używanie linku kanonicznego zamiast przekierowania 301 w nieodpowiednich sytuacjach

Link kanoniczny bywa niekiedy nadużywany jako zamiennik przekierowań. Choć te mechanizmy mają zbliżony cel (zapobieganie duplikacji), działają inaczej i nie zawsze są wymienne. 301 redirect (trwałe przekierowanie) fizycznie przenosi zarówno użytkownika, jak i bota na inny adres. Canonical natomiast nie przenosi nikogo – użytkownik pozostaje na podstronie duplikacie, a tylko wyszukiwarka jest informowana, że ma w indeksie preferować inny URL.

Kiedy nie należy zastępować przekierowania canonicalem? Przykłady:

  • Gdy przenosimy stronę A całkowicie pod nowy adres B, właściwym rozwiązaniem jest zastosowanie przekierowania 301 z A do B. Użycie linku kanonicznego na stronie A wskazującego B mogłoby teoretycznie przekazać sygnały SEO, ale użytkownicy dalej trafialiby na stronę A (która może np. być pustą stroną z samym canonicalem). To zła praktyka z punktu widzenia UX i może być mniej skuteczna SEO niż bezpośredni redirect.
  • Gdy mamy duplikaty spowodowane prostą kwestią techniczną (np. http vs https jak wyżej). Jeśli możemy zaimplementować przekierowanie, zróbmy to. Canonical w takich przypadkach to rozwiązanie drugorzędne, bo problem i tak najlepiej rozwiązać na poziomie nawigacji.
  • Ogólnie, jeśli dany duplikat nie ma żadnej unikalnej wartości dla użytkownika, a jego istnienie nie jest potrzebne, lepiej przekierować go na wersję kanoniczną lub go usunąć, niż tylko dodawać canonical. Canonical zostawia stronę w sieci (dostępną pod starym adresem), co czasem nie jest pożądane.

Podsumowując: przekierowania 301 i linki kanoniczne to dwa różne narzędzia. Niekiedy można je stosować zamiennie (canonical jako proteza, gdy przekierowanie niemożliwe), ale nie należy rezygnować z przekierowań tam, gdzie są one standardem. Kombinacja obu podejść też nie ma sensu – np. strona z canonicalem, która i tak przekierowuje, to redundancja (jeśli jest przekierowanie, canonicala i tak robot nie zobaczy, bo nastąpi przeniesienie).

Kanoniczny wskazuje na stronę o zupełnie innej treści

Link kanoniczny powinno się stosować między stronami, które są duplikatami lub bardzo mocno zbliżone tematycznie. Częstym błędem jest próba kanonizowania stron kompletnie różnych, w nadziei że jedna „podciągnie” drugą w wynikach. Na przykład ktoś posiada dwie strony: jedną z artykułem A, drugą z artykułem B (na inny temat), i dodaje na stronie B canonical do strony A, bo ta pierwsza ma lepszą pozycję lub bardziej mu zależy na jej promocji. Takie działanie jest nieprawidłowe. Wyszukiwarki prawdopodobnie taki canonical zignorują, ponieważ widzą, że treść stron A i B się nie pokrywa. Co więcej, Google może w konsekwencji całkowicie pominąć stronę B w indeksowaniu (bo sama „mówi”, że nie jest ważna, tylko A jest). A strona A nic na tym nie zyska, bo nie była realnym duplikatem B.

Unikajmy więc kanonicznych linków między stronami o odmiennych treściach. Canonical to nie mechanizm do wskazywania, która strona jest ważniejsza ogólnie – to mechanizm do grupowania tych samych treści. Jeśli mamy dwie różne podstrony, obie powinny mieć własne kanoniczne adresy (najczęściej samoreferencyjne, czyli wskazujące same na siebie).

Błędy przy paginacji

Paginacja (czyli podział treści lub listy wyników na kolejne strony, np. strona 1, 2, 3…) rodzi pytanie, jak traktować strony dalsze: jako osobne byty czy jako duplikaty pierwszej strony? Dawniej Google zachęcało do używania atrybutów rel="next" i rel="prev" między stronami paginacji, jednak obecnie ich nie wykorzystuje. Nie oznacza to jednak, że powinniśmy używać canonical! Błędem jest ustawianie linku kanonicznego z kolejnych stron paginacji na stronę pierwszą. Dlaczego? Ponieważ strona 2, 3 itd. zazwyczaj zawierają inne elementy (np. kolejne produkty, kolejne akapity artykułu). Kanoniczny spowoduje, że Google nie zaindeksuje samodzielnie stron 2 i dalszych. To może zaszkodzić, jeśli treść na nich jest istotna (np. użytkownik szuka czegoś, co jest na stronie 3 listy – nie znajdzie tego w Google, bo Google potraktuje stronę 3 jako duplikat strony 1 i ją pominie).

Zamiast tego, najlepszą praktyką jest pozostawienie stron paginacji z kanonicznymi wskazującymi na siebie (czyli strona 2 ma canonical na siebie, strona 3 na siebie itp.), ewentualnie każda strona paginacji może też mieć canonical na stronę pierwszą tylko jeśli kolejne strony to czyste duplikaty pierwszej (co jest rzadko spotykane, bo po coś je paginujemy). Generalnie, unikajmy kanonicznego w paginacji, a skupmy się na linkowaniu wewnętrznym między stronami (poprzednia/następna) i mapie strony zawierającej przynajmniej pierwszą stronę takiej sekcji.

Niewłaściwe użycie canonical przy wersjach językowych

Witryny wielojęzyczne to kolejny obszar, gdzie można popełnić błąd. Jeśli mamy np. wersję polską i angielską strony, to nie są one duplikatami, lecz odrębnymi treściami (różne języki). Zdarzało się jednak, że właściciele stron błędnie ustawiali canonical, np. każda wersja językowa wskazywała canonical na wersję angielską, uznając ją za „główną”. To poważny błąd – w ten sposób inne języki mogą w ogóle nie pojawić się w wynikach (Google pomyśli, że to kopie strony angielskiej). Do zarządzania wielojęzycznymi stronami służy inny mechanizm: atrybuty hreflang w <link rel="alternate">, które informują o alternatywnych wersjach językowych, ale nie kanonizują ich do jednego języka.

Zasadniczo każda wersja językowa powinna mieć własny link kanoniczny (do siebie samej lub ewentualnie do swojego odpowiednika, jeśli są jakieś duplikaty w obrębie tego języka). Nie należy kanonicznie łączyć stron o różnym języku czy różnych krajach.

Kanoniczny wskazuje na stronę nieindeksowalną lub niedostępną

Ostatnim częstym błędem jest wskazanie jako kanonicznego adresu, który i tak nie może być zaindeksowany. Na przykład:

  • Canonical kieruje na stronę, która ma ustawiony noindex (czyli sama prosi, by jej nie indeksować). W takiej sytuacji mija się to z celem – wskazujemy jako główny URL taki, którego Google nie powinien indeksować. Może to zostać zignorowane lub spowoduje, że żadna z duplikatów nie będzie indeksowana (bo kanoniczna wersja jest wykluczona z indeksu).
  • Canonical prowadzi do strony blokowanej w pliku robots.txt lub wymagającej autoryzacji (niedostępnej publicznie). Jeśli Google nie może zaindeksować docelowego URL, to canonical traci sens. Robot co prawda dowie się o kanonicznym adresie, ale jeśli nie może go odwiedzić, nie zweryfikuje treści ani nie zaindeksuje.
  • Canonical wskazuje URL, który zwraca błąd (404, 500 itp.) – to skrajny przypadek złego linku. Traktujmy canonical jak każdy ważny link: musi prowadzić do działającej strony.

Zawsze sprawdzajmy, czy nasz adres kanoniczny jest poprawny, działa i nie koliduje z innymi ustawieniami. W razie potrzeby, trzeba dostosować albo canonical, albo owe ustawienia (np. usunąć noindex z kanonicznej strony, jeśli ma być indeksowana).

Jak sprawdzić poprawność linków kanonicznych?

Wdrożenie linków kanonicznych to jedno, ale warto też monitorować, czy działają one zgodnie z założeniami. Oto kilka sposobów na weryfikację poprawności canonicali i upewnienie się, że wyszukiwarka właściwie je interpretuje:

Google Search Console

Google Search Console (GSC) to podstawowe narzędzie do sprawdzania, jak Google widzi naszą stronę. W kontekście linków kanonicznych przydatne są dwa miejsca:

  • Inspekcja adresu URL – w GSC możemy wpisać adres konkretnej podstrony (zarówno kanonicznej, jak i potencjalnego duplikatu) i zobaczyć szczegóły, jakie Google zna na jej temat. Po skorzystaniu z opcji „Sprawdź adres URL w indeksie” otrzymamy informację, czy strona jest zaindeksowana i jaki adres kanoniczny został przez Google wybrany. GSC pokazuje zarówno „Kanoniczny wskazany przez użytkownika” (czyli przez nas w kodzie), jak i „Kanoniczny wybrany przez Google”. Idealnie te dwie wartości powinny być takie same. Jeśli Google wybrał inny kanoniczny niż ten, który wskazaliśmy, to sygnał, że coś jest nie tak (wyszukiwarka mogła uznać, że nasz wybór był błędny lub strona ma jeszcze inny duplikat, do którego ją przyporządkowała).
  • Raport indeksowania (Stan indeksu) – w sekcji raportów indeksacji GSC (zwykle pod „Indeks” -> „Strony” lub „Stan”) znajdziemy listę stron, które Google wykluczył z indeksu jako duplikaty. Są one oznaczone komunikatami w stylu „Duplikat: Google wybrał inny kanoniczny niż użytkownik” lub „Strona z tagiem kanonicznym wskazującym inny URL”. Tego typu wpisy w raporcie potwierdzają, że canonical działa (skoro strona jest wykluczona jako duplikat, to znaczy, że zapewne indeksuje się tylko jej kanoniczna wersja). Warto przejrzeć te raporty, aby upewnić się, że nie ma tam zaskakujących URL-i. Jeżeli widzimy, że jakaś istotna strona trafiła do wykluczonych z adnotacją o kanonicznym, trzeba sprawdzić jej konfigurację.

Google Search Console dostarcza też narzędzie podglądu strony (inspekcja z renderowaniem), gdzie można przeanalizować kod strony widziany przez robota i upewnić się, że tag <link rel="canonical"> jest obecny i prawidłowy.

Ręczne sprawdzenie i inne narzędzia

Poza GSC, są też inne sposoby:

  • Przegląd kodu strony – najprostsze: wejść na stronę w przeglądarce, wyświetlić kod źródłowy (np. Ctrl+U) i poszukać w sekcji <head> wpisu canonical. Upewnić się, że jest dokładnie jeden i że ma poprawny URL. To manualne podejście sprawdza się przy kilku stronach, ale przy większej liczbie duplikatów bywa żmudne.
  • Narzędzia SEO i audytory – istnieją programy takie jak Screaming Frog SEO Spider, Sitebulb czy online’owe crawlery, które przechodzą przez witrynę i potrafią raportować dla każdej strony, jaki canonical jest ustawiony i czy są ewentualne błędy (np. canonical wskazujący na nieistniejący URL). Korzystając z takich narzędzi, można wychwycić globalne problemy, np. wspomniane duplikowane canonicale czy błędne wskazania.
  • Wyniki wyszukiwania – choć to mniej bezpośrednie, pewne testy da się wykonać w samej wyszukiwarce. Można spróbować wyszukać w Google fragment unikalnego tekstu z duplikowanej strony i zobaczyć, czy wynik prowadzi do wersji kanonicznej. Albo użyć operatora site: z adresem duplikatu – często Google wtedy i tak pokaże kanoniczny jako wynik (lub nie zwróci nic, jeśli tylko kanoniczny jest w indeksie). To potwierdza, że strona duplikat nie jest indeksowana samodzielnie.

Regularne sprawdzanie kilku najważniejszych sekcji witryny pod kątem duplikacji i poprawnych canonicali pozwoli nam spać spokojnie. Jeśli znajdziemy coś podejrzanego (np. Google ignoruje canonical lub indeksuje strony z parametrami), warto przyjrzeć się temu bliżej lub skonsultować ze specjalistą SEO.

Podsumowanie i wskazówki końcowe

Najważniejsze informacje o linkach kanonicznych

  • Link kanoniczny (rel=”canonical”) to narzędzie do informowania wyszukiwarek, jaki adres URL jest preferowany jako główny dla danej treści. Pomaga rozwiązać problem zduplikowanej treści i zapobiega rozproszeniu wyników.
  • Dodaj link kanoniczny w <head> każdej strony, zwłaszcza jeśli istnieje ryzyko duplikacji. Najczęściej będzie on wskazywał na tę samą stronę (adres własny), a w przypadku duplikatu – na odpowiednią stronę oryginalną.
  • Stosuj canonical w typowych sytuacjach duplikatów: przy parametrach w URL, filtrach, sortowaniu, wersjach śledzących (UTM), stronach mobilnych (oddzielnych), powielonej treści między domenami, bardzo podobnych produktach itp. Wszędzie tam link kanoniczny powie Google, którą wersję ma indeksować.
  • Uważaj na błędy: tylko jeden tag canonical na stronę, zawsze poprawny i istniejący URL w atrybucie href, brak literówek. Nie kanonizuj różnych treści na siłę i nie używaj canonical zamiast przekierowań, gdy nie jest to wskazane.
  • Weryfikuj działanie: korzystaj z Google Search Console i innych narzędzi, by sprawdzić, czy Google respektuje Twoje ustawienia kanoniczne. Jeśli widzisz, że wyszukiwarka wybiera inny kanoniczny niż założony, przeanalizuj przyczynę.
  • Link kanoniczny to ważny element technicznego SEO, który przy właściwym zastosowaniu poprawia indeksowanie strony. Pamiętaj jednak, że jest to mechanizm dedykowany do radzenia sobie z duplikatami treści – nie zastąpi jakości contentu ani linkowania, a jedynie pomoże wyszukiwarce skupić się na właściwej wersji Twojej treści.

Podsumowując, canonical link jest prostym, ale potężnym narzędziem w arsenale webmastera i specjalisty SEO. Dzięki niemu masz kontrolę nad tym, która wersja strony ma być widoczna w Google, nawet jeśli ta sama zawartość pojawia się pod wieloma adresami. Stosując linki kanoniczne zgodnie z powyższymi wytycznymi, zapewnisz swojej witrynie bardziej przejrzystą obecność w indeksie wyszukiwarki i wyeliminujesz problemy związane z duplikacją treści. Teraz, gdy wiesz już dokładnie, co to jest canonical link i jak z niego korzystać, możesz śmiało wdrożyć te praktyki na swojej stronie, dbając o jej lepszą widoczność i pozycje w wynikach wyszukiwania.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz