Canonical URL (tag rel="canonical") mówi Google: „to jest oryginalna wersja tej strony – indeksuj TĘ, a duplikaty ignoruj”. Bez canonical: Google widzi kilka wersji tej samej treści (z parametrami URL, z/bez www, HTTP/HTTPS, z sortowaniem/filtrowaniem) i nie wie, którą wybrać. Efekt: duplikacja treści, rozproszony autorytet linków, gorsze pozycje. Canonical rozwiązuje to jedną linijką HTML.
Spis treści
TogglePo co canonical – problem duplikatów
Ta sama treść może być dostępna pod wieloma URL-ami – i 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ł X | Strona B (duplikat) |
http://twojadomena.pl/artykul |
Ten sam artykuł X | Strona C (duplikat) |
https://twojadomena.pl/artykul?utm_source=fb |
Ten sam artykuł X | Strona D (duplikat) |
https://twojadomena.pl/artykul/ (trailing slash) |
Ten sam artykuł X | Strona E (duplikat) |
5 URL-i, 1 treść – Google nie wie, która jest „oryginalna”. Autorytet linków (backlinki) rozpraszają się na 5 URL-i zamiast konsolidować na jednym. Canonical mówi: „indeksuj wersję A, resztę traktuj jako duplikaty”.
Jak wygląda tag canonical
W sekcji <head> strony HTML:
<link rel="canonical" href="https://twojadomena.pl/artykul" />
Czytamy: „kanoniczna (oryginalna) wersja tej strony to https://twojadomena.pl/artykul„. Nawet jeśli Google trafił na https://twojadomena.pl/artykul?utm_source=fb – canonical mówi mu, żeby zaindeksował wersję bez parametrów.
Canonical to podpowiedź (hint), nie dyrektywa. Google zwykle go respektuje, ale może zignorować jeśli uzna, że inna wersja jest bardziej „kanoniczna” (np. canonical wskazuje na stronę 404, albo treść na wskazanym URL jest inna niż na duplikacie).
Kiedy potrzebujesz canonical
Ta sama treść pod wieloma URL-ami
Najczęstszy przypadek: parametry URL (UTM-y, sortowanie, filtrowanie, paginacja, sesje):
https://twojadomena.pl/artykul (oryginał)
https://twojadomena.pl/artykul?utm_source=newsletter (UTM tracking)
https://twojadomena.pl/artykul?ref=homepage (referral tracking)
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 prawidłowo przekierowuje (301) HTTP → HTTPS i www → bez www (lub odwrotnie): canonical jest dodatkową warstwą bezpieczeństwa. Jeśli przekierowanie nie działa: canonical jest jedynym sygnałem dla Google.
Sklep – filtrowanie i sortowanie
Kategoria produktów z filtrami:
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: jeśli filtrowana strona ma unikalne treści (np. opis „Buty czarne” inny niż „Buty”) – nie dawaj canonical na wersję bez filtra. Canonical oznacza „ta treść jest duplikatem” – jeśli treść jest unikalna, canonical ją zabije w indeksie.
Paginacja (strona 1, 2, 3…)
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). Zamiast tego: self-referencing canonical na każdej stronie (page=2 ma canonical na page=2). Google rozumie paginację i obsługuje ją poprawnie z self-canonical.
Treść syndykowana (ten sam artykuł na wielu stronach)
Publikujesz artykuł na swoim blogu i na Medium / LinkedIn / partnerskim serwisie. Bez canonical: Google widzi 2 kopie i wybiera „losowo” (zwykle: stronę z wyższym autorytetem = Medium może wygrać!). Z canonical: strona partnerska dodaje canonical na Twój blog = Google indeksuje Twoją wersję jako oryginał.
Jak wdrożyć canonical na WordPress
Yoast SEO / Rank Math (automatycznie)
Yoast SEO i Rank Math automatycznie dodają rel="canonical" na każdej stronie WordPressa – domyślnie self-referencing (canonical wskazuje na samą siebie). Nie musisz nic konfigurować – działa od razu po instalacji wtyczki.
Zmiana canonical per strona: edytuj wpis/stronę → panel Yoast/Rank Math → zakładka „Zaawansowane” (Advanced) → pole „Canonical URL” → wpisz inny URL (jeśli chcesz wskazać na inną stronę jako oryginał). Domyślnie: puste = self-referencing (poprawnie).
WooCommerce
WooCommerce + Yoast/Rank Math automatycznie obsługuje canonical dla: produktów, kategorii, tagów, filtrowanych stron. Sprawdź: otwórz stronę kategorii z filtrem (np. ?kolor=czarny) → F12 → Elements → szukaj rel="canonical" → powinien wskazywać na wersję bez filtra.
Ręcznie (bez wtyczki)
W <head> strony (header.php lub Insert Headers and Footers):
<link rel="canonical" href="https://twojadomena.pl/strona" />
Ale: nie rób tego ręcznie jeśli masz Yoast/Rank Math – wtyczka generuje canonical automatycznie. Ręczne dodanie = podwójny canonical = Google bierze pierwszy (lub żaden).
Self-referencing canonical – dlaczego ważny
Self-referencing canonical to canonical, który wskazuje na sam siebie: strona /artykul ma canonical na /artykul. Brzmi dziwnie – ale jest ważny, bo mówi Google: „ta wersja URL jest kanoniczna, nawet jeśli ktoś doda do niej parametr (?utm, ?ref, ?fbclid)”.
Bez self-referencing: Google sam zdecyduje, która wersja jest kanoniczna – i może wybrać wersję z parametrem (bo np. ma więcej linków). Z self-referencing: Google wie jednoznacznie.
Yoast i Rank Math dodają self-referencing canonical domyślnie. Nie wyłączaj.
Canonical vs 301 redirect – jaka różnica
| 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, filtrowanie) | Trwała zmiana URL (migracja, zmiana slug) |
| Transfer autorytetu | Konsoliduje na canonical | Przenosi ~90% autorytetu |
Zasada: jeśli stary URL nie musi istnieć (zmieniłeś slug, przeniosłeś stronę): 301 redirect. Jeśli stary URL musi istnieć (parametry śledzenia, wersja mobilna, filtrowanie): canonical.
Canonical vs noindex – jaka różnica
| 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, tagi, puste archiwa) |
Canonical: „indeksuj oryginał, ignoruj duplikat” (autorytet konsolidowany). Noindex: „nie indeksuj w ogóle” (autorytet stracony). Jeśli duplikat ma backlinki: canonical (żeby nie stracić autorytetu). Jeśli strona jest bezwartościowa (np. strona tagów z 2 postami): noindex.
Najczęstsze błędy z canonical
Canonical na stronę 404. Strona A ma canonical na stronę B – ale B zwraca 404. Google ignoruje canonical → traktuje A jako oryginał (lub nie indeksuje wcale). Sprawdzaj: po zmianach URL-i/usuwaniu stron → Screaming Frog → filtr „Non-Indexable Canonical”.
Canonical cross-domain bez intencji. Przypadkowe ustawienie canonical na inną domenę (np. kopiujesz kod z innej strony i zostawiasz ich canonical) = Google deindeksuje Twoją stronę na rzecz tamtej. Sprawdzaj canonical po kopiowaniu szablonów/kodu.
Canonical na stronie z inną treścią. Strona A (o butach) ma canonical na stronę B (o torebkach). Google: „to nie duplikat, treść jest inna” → ignoruje canonical. Canonical działa tylko gdy treść jest identyczna lub prawie identyczna.
Podwójny canonical. Yoast generuje canonical + Ty dodajesz ręcznie w header.php = dwa tagi canonical w head. Google bierze pierwszy (lub jest zdezorientowany). Nie mieszaj: albo wtyczka, albo ręcznie.
Jak sprawdzić canonical na stronie
F12 (DevTools): otwórz stronę → F12 → Ctrl+F → szukaj canonical → zobaczysz tag <link rel="canonical"> z URL-em.
Google Search Console: Inspekcja URL → „Canonical URL: Google wybrał” vs „Canonical URL: Użytkownik zadeklarował”. Jeśli się różnią: Google nie zgadza się z Twoim canonical (problem).
Screaming Frog: crawl strony → zakładka „Canonicals” → filtry: „Missing” (brak canonical), „Non-Indexable Canonical” (wskazuje na stronę nieindeksowalną), „Canonicalised” (strona ma canonical na inną).
Najczęściej zadawane pytania
Czy canonical jest obowiązkowy?
Nie technicznie – strona działa bez canonical. Ale praktycznie tak – bez canonical Google sam wybiera wersję kanoniczną i może wybrać złą (z parametrem, bez HTTPS). Yoast/Rank Math dodaje canonical automatycznie – nie musisz o tym myśleć.
Czy canonical przenosi link juice jak 301?
Tak – Google konsoliduje sygnały (w tym linki) z duplikatów na wersji kanonicznej. Ale: 301 jest silniejszy (wymusza przekierowanie), canonical to hint (Google może go zignorować). Dla trwałych zmian URL: 301. Dla duplikatów, które muszą istnieć: canonical.
Czy mogę mieć canonical na inną domenę?
Tak – cross-domain canonical jest dozwolony. Scenariusz: publikujesz artykuł na Medium i na swoim blogu. Medium dodaje canonical na Twój blog → Google indeksuje Twoją wersję. Używaj ostrożnie: canonical na inną domenę = „moja treść jest duplikatem tamtej strony” → Google może deindeksować Twoją wersję na rzecz tamtej.
Co jeśli Google ignoruje mój canonical?
Sprawdź w Search Console (Inspekcja URL): „Google-selected canonical” → jeśli inne niż Twoje: Google uznał, że Twój canonical jest błędny. Przyczyny: (1) treść na canonical URL jest inna niż na duplikacie, (2) canonical wskazuje na 404/redirect/noindex, (3) canonical URL ma niższy autorytet niż duplikat. Napraw przyczynę → Google zaakceptuje canonical przy kolejnym crawlu.


