Czym jest znacznik canonical i jak działa
Znacznik canonical to element HTML, którym wskazujesz Google preferowany URL, gdy ta sama lub bardzo podobna treść jest dostępna pod kilkoma linkami. Wyszukiwarka grupuje takie duplikaty i wybiera z nich jeden reprezentatywny dokument, który pokazuje w wynikach, a resztę odwiedza rzadziej. Powtórzenia powstają zwykle przez warianty regionalne, wydania na telefon i komputer, protokoły HTTP i HTTPS, sortowanie i filtry w kategoriach albo przypadkowo otwartą kopię testową.
Wdrożenie polega na umieszczeniu w sekcji <head> tagu link z atrybutem rel="canonical" i pełnym URL oryginału. Dzięki temu nawet wtedy, gdy użytkownik albo robot trafi na wariant z parametrami śledzenia czy identyfikatorem sesji, dostaje informację, który adres jest właściwy. Według dokumentacji Google takie oznaczenie to wskazówka, a nie reguła, więc algorytm może wybrać inną podstronę, np. gdy uzna ją za pełniejszą.
Dlaczego poprawna implementacja canonical ma znaczenie
Poprawny canonical decyduje, który URL zobaczysz w wynikach i gdzie trafią sygnały z linków; Google wymienia 4 powody, żeby go ustawić.
- Wybór adresu widocznego w Google: Możesz sprawić, że w wynikach pojawi się czysty link, np.
https://www.przyklad.pl/sukienki/zielona-midi/, a nie wariant z parametrem gclid. Powielona treść sama w sobie nie jest karana: według przewodnika SEO dla początkujących jest to niewydajne, ale nie spowoduje ręcznych działań. - Konsolidacja sygnałów linkowych: Odnośniki zewnętrzne i wewnętrzne prowadzące do różnych kopii tej samej treści są łączone na jednym URL, zamiast rozpraszać się między kilka duplikatów.
- Prostsze dane w raportach: Gdy jeden materiał ma kilka adresów, trudniej zebrać dla niego łączne kliknięcia i wyświetlenia.
- Oszczędność budżetu indeksowania: Googlebot zamiast skanować powtórzenia może odwiedzać nowe i zaktualizowane podstrony. Osobny przewodnik na ten temat Google kieruje jednak głównie do dużych projektów: z ponad milionem unikalnych URL zmienianych raz w tygodniu albo z więcej niż 10 tys. aktualizowanych codziennie.
Jak prawidłowo zaimplementować canonical w kodzie strony
Canonical wdraża się na trzy sposoby o różnej sile: przekierowanie i element rel w kodzie Google traktuje jako wyraźny sygnał, a wpis w pliku sitemap jako słaby. Metody się kumulują, więc użycie co najmniej 2 z nich zwiększa szansę, że w wynikach pokaże się wybrany przez Ciebie link. Niżej kroki dla najczęstszego rozwiązania, czyli tagu w HTML.
Umieszczenie tagu w sekcji head dokumentu
Tag canonical musi stać w <head>, obok title, meta description i innych metadanych, bo Google akceptuje go tylko tam i tylko wtedy, gdy ta część kodu jest poprawnym HTML. Przykład składni:
<link rel="canonical" href="https://www.przyklad.pl/kategoria/podstrona/" />
Gdy treść renderuje JavaScript po stronie przeglądarki, Google zaleca wpisanie wskazania w źródłowym HTML i dopilnowanie, żeby skrypt go nie zmieniał. Dodanie elementu wyłącznie z poziomu JS to wyjście zapasowe, gdy w kodzie bazowym nie da się go ustawić.
Stosowanie bezwzględnych adresów URL
W atrybucie href wpisuj pełny URL z protokołem (https://) i domeną. Ścieżki względne (np. /kategoria/podstrona/) Google obsługuje, ale ich nie zaleca, bo z czasem mogą sprawiać problemy, np. gdy przez pomyłkę zezwolisz robotom na skanowanie wersji testowej.
Bezwzględny zapis wygląda tak:
https://www.domena.pl/sciezka/do/strony/
Względny zapis (niezalecany):
/sciezka/do/strony/
Pełnego adresu wymaga też nagłówek HTTP rel="canonical", którym oznacza się pliki inne niż HTML, np. PDF. W docelowym linku nie umieszczaj fragmentu po znaku #, bo Google w zasadzie nie obsługuje takich końcówek.
Spójność wskazań canonical na całej stronie internetowej
Jeśli karta produktu jest dostępna pod kilkoma URL (np. z sortowaniem, identyfikatorem sesji, znacznikiem UTM), każda z tych kopii powinna wskazywać ten sam oryginał, najczęściej czysty link bez parametrów.
Przykład:
abc.pl/buty?sort=cenaabc.pl/buty?sessionid=abc123abc.pl/buty?utm_source=email
Wszystkie powyższe warianty powinny mieć w sekcji head:
<link rel="canonical" href="https://abc.pl/buty" />
Spójność obejmuje też inne miejsca: linkowanie wewnętrzne ustawiaj na wersję główną, a nie na duplikat, i nie podawaj w sitemap innego URL niż w tagu. Google odradza także łączenie nagłówka HTTP i elementu HTML naraz, bo łatwo wtedy o dwa różne wskazania.
Czy strona powinna wskazywać canonical na samą siebie?
Tak, Google zaleca, żeby oryginał miał tag prowadzący do siebie (tzw. self-canonical). Ten sam element dodajesz na duplikatach, tylko z linkiem do wersji głównej. Według Google takie oznaczenie nie jest obowiązkowe: bez niego wyszukiwarka sama wybierze najlepszy wariant, więc mała strona bez powtórzonych treści zwykle działa dobrze także bez tagu.
Monitorowanie wdrożenia za pomocą narzędzi diagnostycznych
Decyzję Google zobaczysz w Search Console w dwóch miejscach, a resztę wychwyci crawler.
- Narzędzie do sprawdzania adresów URL pokazuje przy każdym linku pole "Adres kanoniczny wybrany przez Google" obok tego, który wskazałeś.
- Raport Indeksowanie stron grupuje podstrony z problemami.
- Gdy Google nie zgodzi się z Twoim tagiem, taki link trafi tam do stanu "Duplikat, wyszukiwarka Google wybrała inną stronę kanoniczną niż użytkownik".
- Crawler, np. Screaming Frog SEO Spider lub Sitebulb, przeskanuje całość, aby wychwycić niespójności lub złe wskazania.
Po poprawkach Google może trzymać URL w grupie duplikatów nawet do 2 tygodni. Najważniejsze URL możesz zgłosić ponownie funkcją "Poproś o zindeksowanie", choć ma ona limity.
Typowe błędy techniczne przy wdrażaniu canonical
Najczęstsze błędy to sprzeczne sygnały i tagi, które Google odrzuci; niżej 6 sytuacji opisanych w jego dokumentacji:
- Względne adresy URL w atrybucie href: Google je obsługuje, ale nie zaleca, bo przy kopii testowej albo kilku subdomenach łatwo o link do złego hosta.
- Wskazywanie wszystkich podstron na stronę główną: Jeśli każdy dokument ma canonical prowadzący do domeny (np.
https://abc.pl/), Google go nie uwzględni, bo oryginał musi być podobny do duplikatu. W pomocy Search Console stoi, że gdy wzorzec nie przypomina tego, co stoi pod bieżącym URL, Google nigdy go nie wybierze. - Niespójność wskazań między wariantami tej samej treści: Gdy kopie odsyłają do różnych wersji (np. jedna do
/buty, druga do/buty/z ukośnikiem, trzecia do/buty?ref=abc), wyszukiwarka nie dostaje czytelnego sygnału i decyduje sama. - Brak aktualizacji po zmianach w strukturze URL: Po migracji na HTTPS, nowych kategoriach albo innych permalinkach przejrzyj wszystkie tagi. Google woli HTTPS, ale wybierze HTTP, gdy np. dokument HTTPS ma canonical z linkiem do HTTP, nieprawidłowy certyfikat albo przekierowuje na HTTP.
- Canonical wskazujący nieistniejący adres: Gdy wycofujesz duplikat, Google radzi użyć trwałego przekierowania (najszybciej zadziała to wykonane przez serwer), a tag powinien prowadzić do docelowej, aktywnej wersji z tą samą treścią.
- Blokady zamiast canonical: Google pisze: "Do wyboru strony kanonicznej nie używaj pliku robots.txt", bo zablokowany URL może trafić do indeksu bez zawartości. Noindex też nie jest zalecany, bo całkowicie odcina wyszukiwarkę od podstrony, a narzędzie do usuwania adresów ukryje w Google wszystkie wersje linku.
Canonical a paginacja i warianty językowe
Przy podziale listy na kolejne strony (np. kategorii z produktami na 5 ekranach) każdy fragment dostaje osobny URL i własny canonical, a Google odradza wskazywanie pierwszej z nich jako oryginału dla wszystkich. Numer umieść w parametrze, np. ?page=2, a nie po znaku #, i łącz je zwykłym linkiem HTML. Tagów rel="next" i rel="prev" Googlebot już nie używa.
Przy tłumaczeniach stosuj atrybut hreflang razem z tagiem canonical. Każdy przekład wskazuje oryginał w tym samym języku (albo w najbliższym zastępczym, gdy takiego nie ma), a pozostałe wersje oznacza link rel="alternate". Atrybuty lang, media i type dopisane do samego elementu kanonicznego Google ignoruje, a przy wyborze preferuje URL, które odsyłają do siebie nawzajem w klastrze hreflang.
Canonical przy treściach generowanych dynamicznie
W systemach CMS, takich jak WordPress, Magento czy PrestaShop, canonical zwykle dodaje wtyczka albo moduł SEO, a Google radzi szukać w panelu ustawień wyszukiwarki zamiast ręcznie edytować kod. Efekt sprawdź jednak w źródle: według dokumentacji niektóre CMS-y i rozszerzenia wstawiają wskazanie do niepożądanych adresów, a widać to w narzędziach dla programistów w przeglądarce.
Przy filtrach i sortowaniu (np. ?order=price) Google podaje dwie drogi: ustaw canonical na czystą listę, a jeśli warianty nie powinny trafiać do indeksu, zablokuj je dyrektywą noindex w metatagu albo wyłącz skanowanie ich wzorców w pliku robots.txt. Parametry zostają wtedy dla użytkowników, a w wynikach widnieje 1 URL kategorii.
















