Modelowane listy odbiorców nie zawierają konkretnych osób, tylko prawdopodobieństwa. Wyjaśniam, jak powstają, gdzie ich szukać w panelu i jak czytać ich raporty.
Duplikacja adresów jest jednym z tych problemów, które w małym serwisie prawie nie istnieją, a w sklepie internetowym potrafią wygenerować dziesiątki tysięcy adresów prowadzących do praktycznie tej samej treści. Filtry, sortowania, paginacja, parametry z kampanii, wersje z ukośnikiem i bez — każdy z tych mechanizmów mnoży adresy.
Tag canonical jest podstawowym narzędziem porządkowania tego bałaganu. Jego działanie jest proste do opisania i trudne do konsekwentnego wdrożenia, bo wymaga podjęcia decyzji o tym, która wersja adresu jest tą właściwą — a to decyzja, której nikt w firmie zwykle nie chce podjąć.
Zacznę od rzeczy, która jest źródłem większości nieporozumień: canonical nie jest poleceniem. Jest wskazówką. Google może ją uwzględnić i najczęściej uwzględnia, ale nie musi.
Tag informuje wyszukiwarkę, że wśród kilku adresów o tej samej albo bardzo podobnej treści jeden jest wersją podstawową. Skutki są dwa: w indeksie ma znaleźć się wskazany adres, a sygnały zebrane przez pozostałe wersje mają być mu przypisane.
Czego canonical nie robi:
Warto też pamiętać, że narzędzie do obsługi parametrów w Search Console, którym kiedyś sterowano częścią tych spraw, zostało wycofane w 2022 roku. Dziś zostają canonical, robots i przekierowania.
Lista, którą przechodzę przy każdym audycie technicznym.
Każda strona ma canonical, także wskazujący na siebie. Samowskazujący tag jest najprostszym zabezpieczeniem przed adresami, których nie przewidziałeś — parametrami kampanii, identyfikatorami sesji, śmieciami dopisywanymi przez zewnętrzne serwisy.
Adres w tagu jest bezwzględny i kanoniczny co do znaku. Ten sam protokół, ta sama wersja domeny z prefiksem lub bez, ta sama konwencja ukośnika na końcu. Niespójność tutaj jest najczęstszą przyczyną ignorowania tagu.
Jeden tag na stronę. Dwa różne wskazania sprawiają, że Google wybiera sam, a najczęściej ignoruje oba.
Wskazany adres musi zwracać status poprawny i być indeksowalny. Canonical prowadzący na stronę z przekierowaniem, błędem albo znacznikiem noindex jest sprzeczny sam w sobie.
Canonical jest spójny z mapą witryny i z linkowaniem wewnętrznym. Jeśli mapa podaje jedną wersję adresu, linki w treści drugą, a canonical trzecią, wysyłasz trzy różne sygnały.
Tu zapada większość realnych decyzji, więc przejdę przez najczęstsze przypadki.
Sortowanie i widok listy. Adresy z parametrem porządku wyświetlania albo liczby produktów na stronie wskazują jako wersję podstawową adres kategorii bez parametrów. Treść jest ta sama, kolejność nie tworzy nowej wartości.
Filtry. Najtrudniejszy przypadek i wymagający decyzji biznesowej. Kombinacje filtrów odpowiadające realnym zapytaniom — na przykład „buty trekkingowe damskie z membraną” — bywają warte własnego miejsca w indeksie i wtedy dostają canonical wskazujący na siebie oraz własne treści. Pozostałe kombinacje wskazują na kategorię nadrzędną. Kryterium jest proste: czy ktoś tego szuka.
Paginacja. Kolejne strony listingu powinny wskazywać na siebie, nie na pierwszą stronę. Wskazanie wszystkich podstron na pierwszą sprawia, że produkty widoczne tylko na dalszych stronach mogą wypaść z indeksu.
Warianty produktu. Jeśli rozmiar albo kolor mają osobne adresy, a treść jest praktycznie identyczna, wskazuję wersję podstawową produktu. Jeśli warianty mają własne zdjęcia, opisy i są osobno wyszukiwane, mogą zasługiwać na własne miejsce.
Parametry kampanii. Adresy z oznaczeniami z systemów reklamowych zawsze wskazują na wersję bez parametrów. To jedyny przypadek na tej liście, w którym nie ma nad czym się zastanawiać.
Nie zakładam, że wdrożenie zadziałało, dopóki tego nie zobaczę.
Narzędzie do sprawdzania adresów w Search Console pokazuje dwie rzeczy naraz: canonical zadeklarowany przez Ciebie oraz ten wybrany przez Google. Rozbieżność między nimi jest sygnałem, że wskazówka została odrzucona.
Raport indeksowania stron ma kategorie mówiące wprost o duplikatach — w tym o sytuacji, w której Google wybrało inną wersję niż zadeklarowana. To najszybszy sposób oszacowania skali problemu w całym serwisie.
Skan własnym crawlerem pozwala wychwycić błędy techniczne: strony bez tagu, strony z kilkoma tagami, canonical prowadzący do przekierowania, niespójność protokołu.
Sprawdzam też, jak to wygląda w wersji renderowanej strony, a nie tylko w kodzie źródłowym. Jeśli tag jest wstawiany albo modyfikowany skryptem po stronie przeglądarki, warto się upewnić, że robot widzi to, co powinien.
Trzy sytuacje, w których sięgam po coś innego.
Gdy strona ma przestać istnieć — przekierowanie stałe, nie canonical. Canonical zostawia adres żywym i skanowanym.
Gdy strona nie ma trafić do indeksu w ogóle, na przykład koszyk, wyniki wyszukiwania wewnętrznego, panel klienta — znacznik noindex.
Gdy problemem jest liczba skanowanych adresów, a nie ich obecność w indeksie — reguły w pliku robots. Tu jednak ostrożnie: adres zablokowany dla robota nie zostanie odczytany, więc jego canonical nie będzie widziany. Blokowanie i wskazywanie wersji podstawowej wykluczają się wzajemnie i mieszanie ich to jeden z częstszych błędów w dużych sklepach.
Na koniec zasada, która oszczędza najwięcej pracy: lepiej nie tworzyć duplikatów, niż je potem porządkować. Jeśli da się zaprojektować adresy tak, żeby filtry i sortowania nie mnożyły wersji, canonical staje się zabezpieczeniem, a nie podstawowym narzędziem utrzymania porządku.
Używamy plików cookies, aby ułatwić Ci nawigację oraz wykonywanie określonych funkcji. Szczegółowe informacje o wszystkich plikach cookies znajdziesz w każdej kategorii zgody poniżej.
Pliki cookies oznaczone jako "Niezbędne" są przechowywane w Twojej przeglądarce, ponieważ są one kluczowe dla zapewnienia podstawowych funkcji strony.
Używamy również plików cookies firm trzecich, które pomagają nam analizować, w jaki sposób korzystasz z tej strony, zapamiętują Twoje preferencje oraz dostarczają treści i reklamy odpowiednie dla Ciebie. Te pliki cookies będą przechowywane w Twojej przeglądarce tylko za Twoją uprzednią zgodą.
Możesz zdecydować, czy chcesz włączyć lub wyłączyć niektóre bądź wszystkie te pliki cookies, jednak wyłączenie niektórych z nich może wpłynąć na Twoje doświadczenia podczas przeglądania strony.
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __cf_bm | 13 minutes | Cloudflare bot management — distinguishes humans from bots. |
| rc::* | Persistent | Google reCAPTCHA — localStorage holding anti-bot challenge state. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| wpEmojiSettingsSupports | Session | WordPress — sessionStorage flag caching whether the browser can render emoji (feature detection). |
| ytidb* | Persistent | YouTube — IndexedDB storing playback/search state for embedded videos. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| _ga_* | 400 days | Google Analytics 4 — persists session state per property. |
| _ga | 400 days | Google Analytics — distinguishes unique users via a client id. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| NID | 183 days | Google — stores preferences for personalized ads. |
| fr | 90 days | Meta — encrypted Facebook id and browser id for ads. |
| _gcl_au | 90 days | Google AdSense/Ads — experiments with advertising efficiency (conversion linker). |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __Secure-YNID | 180 days | |
| YSC | Session | |
| __Secure-ROLLOUT_TOKEN | 180 days | |
| VISITOR_INFO1_LIVE | 180 days | |
| VISITOR_PRIVACY_METADATA | 180 days | |
| datr | 400 days | |
| sb | 400 days | |
| wd | 7 days |