Dobre praktyki
- Ustal preferowany adres każdej grupy duplikatów; na nim możesz użyć self-canonical, a warianty powinny wskazywać ten sam adres.
- Canonical powinien być adresem absolutnym, spójnym z wersją w sitemapie i linkowaniu wewnętrznym.
- Nie łącz canonicala z noindex na tej samej stronie, bo to sprzeczne sygnały.
- Paginacja i warianty językowe to nie duplikaty, więc nie kanonikalizuj ich do jednej strony.
Canonical to wskazówka, nie dyrektywa
Google traktuje rel="canonical" jako silną sugestię, którą może zignorować, jeśli inne sygnały (linki wewnętrzne, sitemap, przekierowania) wskazują inaczej. Spójność wszystkich sygnałów to warunek skutecznej kanonikalizacji.
Canonical a przekierowanie 301
Przekierowanie i canonical rozwiązują ten sam problem na dwa różne sposoby. Przekierowanie 301 usuwa stary adres z obiegu: użytkownik i crawler trafiają pod nowy URL, a stary przestaje być dostępny. Canonical zostawia oba adresy działające i tylko wskazuje, który jest preferowany.
Przekieruj trwale usunięty stary adres. Jeśli duplikat musi pozostać dostępny, wskaż canonical. Według Google te metody można łączyć: redirect ze starego URL-a i self-canonical na stronie docelowej przekazują spójny sygnał.
- Trwała zmiana adresu, zmiana domeny, http na https, www na bez www: przekierowanie 301.
- Duplikat, który musi zostać dostępny pod własnym adresem: canonical.
- Canonical kieruj bezpośrednio na końcowy adres, który nie przekierowuje dalej.
Przekierowanie kanoniczne i canonical wskazujący na przekierowanie
Określenie „canonical redirect” oznacza dwie różne rzeczy. Pierwsza to przekierowanie 301, które każdy wariant duplikatu (http, www albo adres bez końcowego ukośnika) odsyła pod adres kanoniczny. WordPress robi to domyślnie funkcją redirect_canonical(), a większość frameworków i CDN-ów ma podobne ustawienie. To najsilniejsza forma kanonikalizacji, bo duplikat przestaje być w ogóle dostępny.
Druga to ostrzeżenie z audytu: „canonical points to redirect”. Strona deklaruje jako kanoniczny adres, który sam odpowiada przekierowaniem 3xx. Wyszukiwarka dostaje wtedy sprzeczne wskazówki: znacznik wskazuje adres B, a serwer mówi, że treść jest pod adresem C, więc może zignorować canonical. Najczęstsze przyczyny to canonical zapisany z http albo bez końcowego ukośnika oraz przeniesiona strona, do której starego adresu wciąż odwołuje się szablon. Naprawa: wskaż w canonicalu końcowy adres zwracający 200.
Brakujący canonical
Brak znacznika canonical nie jest błędem samym w sobie. Wyszukiwarka wybierze wtedy wersję kanoniczną samodzielnie, na podstawie linkowania, sitemapy i przekierowań. Problem pojawia się, gdy jej wybór różni się od Twojego, a Ty nie masz jak go zakomunikować.
Self-canonical ma sens na preferowanej stronie. Nie kopiuj automatycznie pełnego bieżącego URL-a z parametrami: /produkt?utm_source=newsletter powinien wskazywać /produkt, jeśli treść jest taka sama.
Komunikat „Strona alternatywna ze swoim tagiem kanonicznym”
W raporcie indeksowania Search Console ten status (ang. „Alternate page with proper canonical tag”) oznacza, że strona nie została zaindeksowana, ponieważ jej własny canonical wskazuje na inny adres, a wyszukiwarka to uszanowała.
To nie jest błąd, jeśli tak zaplanowałeś kanonikalizację. Warto go sprawdzić tylko wtedy, gdy na liście pojawiają się adresy, które miały być indeksowane osobno. Najczęściej oznacza to szablon wpisujący ten sam canonical na całej sekcji serwisu albo kanonikalizowanie wersji językowych do jednej strony.
Canonical, sitemapa i robots.txt
Canonical wskazuje preferowany adres, sitemap pomaga go odkryć, a robots.txt określa dostęp crawlera do zasobów. Żaden z tych sygnałów nie zastępuje pozostałych: URL w sitemapie powinien być kanoniczny i zwracać 200, a robots.txt nie powinien blokować pobrania strony potrzebnego do odczytu sygnałów.
Przykład
Przykład: wariant kampanii wskazuje preferowaną kartę produktu. Stary, wycofany URL może przekierować do tej karty, a karta zawierać poniższy self-canonical. Sprawdź w URL Inspection osobno canonical zadeklarowany przez użytkownika i wybrany przez Google.
<link rel="canonical" href="https://example.com/produkty/koszulka-meska">Link: <https://example.com/produkty/koszulka-meska>; rel="canonical"To preferowany URL strony dostępnej pod kilkoma adresami lub grupy bardzo podobnych stron. Deklaracja rel="canonical" jest sygnałem dla wyszukiwarki, która może wybrać inny adres.
Tak. Canonical address to angielskie określenie adresu kanonicznego, czyli preferowanej wersji URL-a wskazanej wyszukiwarkom spośród duplikatów.
Nie. Canonical jest silną wskazówką, ale wyszukiwarka może ją zignorować, jeśli inne sygnały (na przykład redirecty, sitemapa lub linkowanie wewnętrzne) wskazują inną wersję.
Nie. Redirect służy do przekierowania użytkownika i konsolidacji trwale przeniesionych adresów, a noindex wyłącza stronę z indeksu. Canonical wskazuje preferowaną wersję przy dostępnych, podobnych URL-ach.
Brak canonicala sam w sobie nie wyklucza indeksowania. Ustal preferowany adres grupy duplikatów, sprawdź wybór Google w URL Inspection i dopiero wtedy dodaj spójną deklarację. Parametry kampanii nie powinny automatycznie tworzyć nowych self-canonicali.
Wskazuje preferowany URL strony, na której jest umieszczony. Nie oznacza mechanicznego kopiowania parametrów kampanii do canonicala; duplikaty powinny wskazywać wspólną wersję preferowaną.
Znacznik canonical wskazuje adres, który zamiast 200 odpowiada przekierowaniem. Wyszukiwarka może wtedy zignorować canonical. Zmień go na końcowy adres docelowy i utrzymaj ten sam adres w linkowaniu wewnętrznym i w sitemapie.
Źródła i dalsza lektura
- Google Search Central: Konsolidacja duplikatów URL dokumentacja
- RFC 6596: The Canonical Link Relation standard
- MDN: rel="canonical" dokumentacja