Jak poprawnie ustawić canonical tags i unikać duplikacji treści w WordPressie

Duplikacja treści to jeden z cichych zabójców SEO.
W WordPressie może wystąpić nieświadomie — np. przez różne adresy prowadzące do tej samej strony lub powielone treści w archiwach.

Na szczęście rozwiązanie jest proste: tag kanoniczny (rel="canonical").
W tym poradniku pokażę, jak działa, dlaczego jest ważny i jak poprawnie go ustawić w WordPressie — zarówno ręcznie, jak i za pomocą kodu.


1. Co to jest tag kanoniczny (canonical tag)

Tag kanoniczny to meta znacznik HTML, który informuje Google, która wersja danej strony jest oryginalna.

Przykład:

<link rel="canonical" href="https://twojastrona.pl/jak-przyspieszyc-wordpress/">

Jeśli ta sama treść pojawia się również pod adresem:

https://twojastrona.pl/kategoria/poradniki/jak-przyspieszyc-wordpress/

to tag kanoniczny pozwala wyszukiwarce zrozumieć, że oryginalna wersja znajduje się pod pierwszym adresem.


2. Dlaczego duplikacja treści szkodzi SEO

Google nie nakłada za nią kary, ale:

  • osłabia autorytet strony – linki rozkładają się między duplikatami,
  • obniża pozycje – wyszukiwarka nie wie, którą wersję indeksować,
  • marnuje crawl budget – robot Google skanuje niepotrzebnie powielone strony.

Najczęstsze źródła duplikacji w WordPressie:

  • dostępność strony z i bez końcowego ukośnika /,
  • różne adresy dla tej samej treści (np. /kategoria/wpis/ i /wpis/),
  • paginacja (/page/2/),
  • parametry URL (?utm_source=facebook),
  • archiwa kategorii, tagów, autorów, dat.

3. Jak sprawdzić, czy Twoje strony mają tag kanoniczny

  1. Otwórz dowolną stronę w przeglądarce.
  2. Kliknij prawym przyciskiem → Pokaż źródło strony.
  3. Wyszukaj w kodzie: rel="canonical"

Jeśli widzisz coś takiego:

<link rel="canonical" href="https://twojastrona.pl/aktualnosci/">

– wszystko działa poprawnie.
Jeśli tagu brakuje lub ma błędny adres (np. z parametrem ?utm_source), trzeba go poprawić.


4. Jak WordPress obsługuje canonical tags domyślnie

WordPress od wersji 2.9 sam generuje tagi kanoniczne w sekcji <head> każdej strony.
Robi to funkcja:

wp_get_canonical_url()

Większość motywów poprawnie wywołuje ją poprzez:

<?php wp_head(); ?>

Jeśli używasz Yoast SEO, Rank Math lub All in One SEO, wtyczka sama nadpisuje domyślne wartości i dba o poprawne canonicale.


5. Jak ręcznie ustawić tag kanoniczny w WordPressie

Jeśli tworzysz własny motyw lub chcesz wymusić określony adres, możesz to zrobić samodzielnie:

add_action( 'wp_head', function() {
    if ( is_single() ) {
        echo '<link rel="canonical" href="' . esc_url( get_permalink() ) . '">';
    }
});

Możesz też dodać kanoniczny URL dla konkretnej strony:

add_action( 'wp_head', function() {
    if ( is_page( 'promocja' ) ) {
        echo '<link rel="canonical" href="https://twojastrona.pl/oferta/">';
    }
});

To przydatne, jeśli różne wersje strony pokazują tę samą treść (np. /promocja/ i /oferta/).


6. Jak wymusić kanoniczny adres bez wtyczek SEO

Czasem chcesz, aby canonical zawsze wskazywał główną domenę (np. bez „www”).
Można to zrobić tak:

add_filter( 'wpseo_canonical', function( $canonical ) {
    return str_replace( 'www.', '', $canonical );
});

Lub jeśli nie korzystasz z Yoast:

add_filter( 'get_canonical_url', function( $canonical ) {
    return str_replace( 'www.', '', $canonical );
});

7. Jak ustawić canonical w Yoast SEO

W Yoast SEO (wersja darmowa i premium):

  1. Otwórz dowolny wpis lub stronę.
  2. Przejdź do zakładki Zaawansowane (Advanced) w Yoast SEO.
  3. W polu Canonical URL wpisz docelowy adres.

To przydatne np. przy powielonych landing pages lub treściach podobnych do siebie.


8. Jak unikać duplikacji w archiwach i tagach

Archiwa autorów, dat i tagów często generują powielone treści.
Można je:

  • wyłączyć w Yoast SEO → Ustawienia → Archiwa,
  • lub dodać tag noindex i kanoniczny link do strony głównej bloga:
add_action( 'wp_head', function() {
    if ( is_archive() ) {
        echo '<meta name="robots" content="noindex,follow">';
        echo '<link rel="canonical" href="' . esc_url( home_url( '/blog/' ) ) . '">';
    }
});

9. Kanoniczne adresy dla paginacji i parametrów UTM

Google sam rozpoznaje parametry UTM, ale warto zachować spójność.
Jeśli używasz linków z parametrami (?utm_source=facebook), zadbaj, by canonical wskazywał na stronę bez parametrów:

add_filter( 'wp_get_canonical_url', function( $canonical ) {
    return strtok( $canonical, '?' );
});

Dla paginacji (/page/2/) WordPress automatycznie generuje poprawne canonicale – nie trzeba nic zmieniać.


10. Podsumowanie

Poprawne ustawienie canonical tags to jedna z najprostszych i najskuteczniejszych metod walki z duplikacją treści w WordPressie.
Zapamiętaj:

  • zawsze używaj jednego głównego adresu dla każdej treści,
  • kontroluj canonicale w Yoast lub w kodzie,
  • wyłącz niepotrzebne archiwa,
  • nie pozwól, by parametry URL tworzyły duplikaty.

Dzięki temu Twoja witryna będzie lepiej zindeksowana, a jej autorytet nie rozproszy się między powielonymi stronami.

KROK 1 Z 4

Z CZYM POTRZEBUJESZ POMOCY?