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
- Otwórz dowolną stronę w przeglądarce.
- Kliknij prawym przyciskiem → Pokaż źródło strony.
- 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):
- Otwórz dowolny wpis lub stronę.
- Przejdź do zakładki Zaawansowane (Advanced) w Yoast SEO.
- 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.