Canonical URL (tag rel="canonical") mówi Google: ta wersja strony jest oryginalna, indeksuj ją, a duplikaty ignoruj. Bez canonical Google widzi kilka wersji tej samej treści (z parametrami, z www i bez, HTTP i HTTPS, z sortowaniem albo filtrem) i nie wie, którą wybrać. Skutek: duplikacja treści, rozproszony autorytet linków, gorsze pozycje. Canonical rozwiązuje to jedną linijką w HTML-u.
Spis treści
TogglePo co w ogóle canonical
Ta sama treść może być dostępna pod wieloma URL-ami, a Google traktuje każdy URL jako osobną stronę.
| URL | Treść | Google widzi |
|---|---|---|
https://twojadomena.pl/artykul |
Artykuł X | Strona A |
https://www.twojadomena.pl/artykul |
Ten sam artykuł | Strona B (duplikat) |
http://twojadomena.pl/artykul |
Ten sam artykuł | Strona C (duplikat) |
https://twojadomena.pl/artykul?utm_source=fb |
Ten sam artykuł | Strona D (duplikat) |
https://twojadomena.pl/artykul/ (trailing slash) |
Ten sam artykuł | Strona E (duplikat) |
Pięć URL-i, jedna treść. Google nie wie, która jest „oryginalna”. Backlinki rozpraszają się na pięć adresów zamiast skupić na jednym. Canonical mówi po prostu: indeksuj wersję A, resztę traktuj jako duplikaty.
Jak wygląda tag
W sekcji <head>:
<link rel="canonical" href="https://twojadomena.pl/artykul" />
Tłumaczymy to jako „kanoniczna wersja tej strony to https://twojadomena.pl/artykul„. Nawet jeśli Google trafi na ?utm_source=fb, dzięki canonical wie, że ma indeksować wersję bez parametrów.
Jedna ważna rzecz: canonical to podpowiedź, nie dyrektywa. Google zwykle go respektuje, ale potrafi zignorować, jeśli uzna, że inna wersja jest bardziej kanoniczna (np. canonical wskazuje 404, albo treść na wskazanym URL jest faktycznie inna).
Kiedy canonical jest potrzebny
Ta sama treść pod wieloma URL-ami. Najczęstszy przypadek to parametry: UTM-y, sortowanie, filtrowanie, paginacja, sesje.
https://twojadomena.pl/artykul (oryginał)
https://twojadomena.pl/artykul?utm_source=newsletter (UTM)
https://twojadomena.pl/artykul?ref=homepage (referral)
https://twojadomena.pl/artykul?fbclid=abc123 (Facebook click ID)
→ Canonical na wszystkich: https://twojadomena.pl/artykul
HTTP vs HTTPS, www vs bez www. Jeśli .htaccess robi 301 z HTTP na HTTPS i z www na bez www, canonical jest dodatkową warstwą. Jeśli przekierowanie nie działa, canonical zostaje jedynym sygnałem dla Google.
Sklep z filtrami i sortowaniem.
https://twojsklep.pl/buty (oryginał)
https://twojsklep.pl/buty?kolor=czarny (filtr)
https://twojsklep.pl/buty?sortuj=cena-rosnaco (sortowanie)
https://twojsklep.pl/buty?kolor=czarny&sortuj=cena (filtr + sort)
→ Canonical na filtrowanych: https://twojsklep.pl/buty
Uwaga, w której łatwo się przejechać: jeśli filtrowana strona ma unikalną treść (na przykład kategoria „Buty czarne” z własnym opisem i metadanymi), nie dawaj jej canonical na wersję bez filtra. Canonical mówi „to jest duplikat” i jeśli treść jest unikalna, zabijesz ją w indeksie.
Paginacja.
https://twojsklep.pl/buty (strona 1)
https://twojsklep.pl/buty?page=2 (strona 2)
https://twojsklep.pl/buty?page=3 (strona 3)
Każda strona paginacji ma inną treść (inne produkty). Nie dawaj canonical strony 2 na stronę 1, bo Google nie zaindeksuje produktów ze strony 2. Daj na każdej stronie self-referencing canonical (page=2 ma canonical na page=2). Google rozumie paginację i obsługuje ją prawidłowo.
Treść syndykowana. Publikujesz artykuł na swoim blogu i na Medium albo LinkedInie. Bez canonical Google widzi 2 kopie i wybiera „lepszą”, co często oznacza Medium z większym autorytetem. Z canonical: strona partnerska dodaje canonical na twój blog i Google indeksuje twoją wersję jako oryginał.
Jak wdrożyć canonical w WordPressie
Yoast SEO i Rank Math. Obie wtyczki dodają rel="canonical" automatycznie na każdej stronie, domyślnie self-referencing (canonical wskazuje na samą siebie). Nie musisz nic konfigurować, działa od razu po instalacji.
Zmiana canonical per strona: edytujesz wpis, panel Yoasta albo Rank Matha, zakładka „Zaawansowane” (Advanced), pole „Canonical URL”, wpisujesz inny URL. Domyślnie zostawiasz puste, czyli self-referencing.
WooCommerce. WooCommerce plus Yoast/Rank Math obsługuje canonical dla produktów, kategorii, tagów i filtrowanych stron. Sprawdzisz to tak: otwierasz kategorię z filtrem (np. ?kolor=czarny), F12, Elements, szukasz rel="canonical". Powinien wskazywać na wersję bez filtra.
Ręcznie. W <head> (header.php albo Insert Headers and Footers): <link rel="canonical" href="https://twojadomena.pl/strona" />. Tylko jeśli nie używasz Yoasta ani Rank Matha. Mieszanie wtyczki z ręczną wstawką daje podwójny canonical, a Google bierze pierwszy z brzegu.
Self-referencing canonical: dlaczego ma znaczenie
Self-referencing canonical wskazuje na samego siebie. Strona /artykul ma canonical na /artykul. Brzmi nadmiarowo, ale ma realny sens: mówi Google „ta wersja URL jest kanoniczna, nawet jeśli ktoś dorzuci parametr (?utm, ?ref, ?fbclid)”.
Bez self-referencing Google sam decyduje, która wersja jest kanoniczna, i może wybrać tę z parametrem (np. dlatego, że ma więcej linków przychodzących). Z self-referencing Google ma jednoznaczną informację. Yoast i Rank Math dodają to domyślnie i nie ma sensu wyłączać.
Canonical vs 301 redirect
| Cecha | Canonical | 301 Redirect |
|---|---|---|
| Co robi | Podpowiedź dla Google: indeksuj tamtą wersję | Przekierowanie użytkownika i bota na nowy URL |
| Użytkownik widzi | Oryginalny URL (nie jest przekierowywany) | Nowy URL (przeglądarka zmienia adres) |
| Obie strony istnieją | Tak, oba URL-e działają | Nie, stary URL przekierowuje na nowy |
| Kiedy używać | Duplikaty, które muszą istnieć (parametry, filtry) | Trwała zmiana URL (migracja, zmiana sluga) |
| Transfer autorytetu | Konsoliduje na canonical | Przenosi około 90% |
Praktyczna zasada: stary URL nie musi już istnieć (zmieniłeś sluga, przeniosłeś stronę)? 301 redirect. Stary URL musi istnieć (parametry śledzenia, filtrowanie, wersja drukowana)? Canonical.
Canonical vs noindex
| Cecha | Canonical | Noindex |
|---|---|---|
| Strona w indeksie Google | TAK (canonical URL) | NIE (żadna wersja) |
| Transfer autorytetu | Tak (na canonical URL) | Nie (autorytet przepada) |
| Kiedy używać | Duplikat z wartością (ma linki, ruch) | Strona bez wartości (wyniki wyszukiwania, puste archiwa) |
Canonical: indeksuj oryginał, ignoruj duplikat (autorytet skonsolidowany). Noindex: w ogóle nie indeksuj (autorytet stracony). Duplikat ma backlinki? Canonical, żeby nie zmarnować autorytetu. Strona jest po prostu bezwartościowa (np. tag z 2 postami)? Noindex.
Najczęstsze błędy
Canonical na 404. Strona A ma canonical na B, ale B zwraca 404. Google ignoruje canonical i może w ogóle nie zaindeksować A. Po zmianach URL-i albo usuwaniu stron przepuść stronę przez Screaming Froga, filtr „Non-Indexable Canonical”.
Canonical cross-domain przez przypadek. Skopiowałeś szablon albo kod z innej strony i razem z nim ich canonical. Google deindeksuje twoją wersję na rzecz tamtej. Sam się tak kiedyś przejechałem, kopiując header.php z poprzedniego projektu. Sprawdzaj canonical po każdej akcji typu „skopiuj template”.
Canonical na stronie o innej treści. Strona A o butach ma canonical na stronę B o torebkach. Google to widzi i ignoruje canonical, bo treść się różni. Canonical działa tylko, kiedy treść jest identyczna albo prawie identyczna.
Podwójny canonical. Yoast generuje canonical, a ty dorzucasz drugi w header.php. Dwa tagi w head, Google bierze pierwszy albo jest zdezorientowany. Wybierz: albo wtyczka, albo ręcznie. Nigdy oba.
Jak sprawdzić canonical na stronie
F12 (DevTools). Otwierasz stronę, F12, Ctrl+F, szukasz canonical, widzisz tag <link rel="canonical"> z adresem.
Google Search Console. Inspekcja URL, porównanie „Canonical URL: Google wybrał” z „Canonical URL: Użytkownik zadeklarował”. Jeśli się różnią, Google nie zgadza się z twoim canonical i to znak, że trzeba to przejrzeć.
Screaming Frog. Crawl strony, zakładka „Canonicals”, filtry „Missing” (brak canonical), „Non-Indexable Canonical” (wskazuje na nieindeksowalną stronę), „Canonicalised” (strona ma canonical na inną).
Najczęściej zadawane pytania
Czy canonical jest obowiązkowy
Technicznie nie. Strona zadziała bez niego. Praktycznie tak, bo bez canonical Google sam wybiera wersję kanoniczną i potrafi wybrać tę z parametrem albo bez HTTPS. Yoast i Rank Math dodają canonical automatycznie, więc w typowym WP nie musisz o tym myśleć.
Czy canonical przenosi link juice jak 301
Tak. Google konsoliduje sygnały, w tym linki, na wersji kanonicznej. Ale 301 jest silniejszy, bo wymusza przekierowanie, podczas gdy canonical to tylko podpowiedź, którą Google może zignorować. Trwała zmiana URL: 301. Duplikaty, które muszą zostać: canonical.
Czy mogę dać canonical na inną domenę
Tak. Cross-domain canonical jest dozwolony. Scenariusz: publikujesz na Medium i na swoim blogu. Medium dodaje canonical na twój blog, Google indeksuje twoją wersję. Tylko ostrożnie, bo canonical na inną domenę oznacza „moja treść jest duplikatem tamtej”. Źle ustawiony deindeksuje twoją stronę na rzecz cudzej.
Co jeśli Google ignoruje mój canonical
Sprawdzasz w Search Console (Inspekcja URL) sekcję „Google-selected canonical”. Inne niż twoje? Google uznał twoją podpowiedź za błędną. Powody są zwykle trzy: treść na canonical URL jest inna niż na duplikacie, canonical wskazuje na 404 albo redirect albo noindex, canonical URL ma niższy autorytet niż duplikat. Napraw przyczynę i Google zaakceptuje canonical przy kolejnym crawlu.






