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.
W Search Console pojawia się status mówiący, że Google wybrało jako kanoniczny inny adres niż ten, który zadeklarowałeś. To jedna z bardziej frustrujących sytuacji w technicznym SEO, bo wszystko wygląda na wdrożone poprawnie, a wyszukiwarka po prostu robi swoje.
Warto od początku przyjąć właściwą ramę: to nie jest błąd ani awaria. Tag canonical zawsze był wskazówką, nie poleceniem. Google zbiera wszystkie sygnały o tym, która wersja adresu jest podstawowa, i jeśli wskazują one w różne strony, podejmuje własną decyzję.
Wynika z tego, jak wygląda diagnoza. Nie szukam „dlaczego Google nie posłuchało”, a szukam drugiego sygnału, który mówi coś innego niż mój tag. Niemal zawsze taki sygnał istnieje.
Zacznij od narzędzia do sprawdzania adresów w Search Console. Pokazuje ono dwie osobne informacje: canonical zadeklarowany przez użytkownika oraz canonical wybrany przez Google.
Porównanie tych dwóch wartości od razu zawęża problem. Jeśli Google wybrało adres, który w ogóle nie występuje w Twoich deklaracjach, przyczyną jest zwykle linkowanie albo mapa witryny. Jeśli wybrało inną wersję tego samego adresu — z ukośnikiem, z innym protokołem, z parametrem — problem jest w niespójności technicznej.
Sprawdź też, czy strona w ogóle została odczytana w wersji, którą widzisz w przeglądarce. Zakładka pokazująca pobrany kod pozwala się upewnić, że robot dostał ten sam dokument co Ty.
Najczęstsze przyczyny techniczne, w kolejności częstotliwości, jaką obserwuję.
Canonical prowadzący na adres, który nie może być wersją podstawową, zostanie zignorowany — i słusznie.
Sprawdź, czy wskazany adres zwraca poprawny status, a nie przekierowanie albo błąd. Sprawdź, czy nie ma na nim znacznika noindex, bo jednoczesne wskazywanie strony jako kanonicznej i wykluczanie jej z indeksu jest sprzeczne. Sprawdź, czy nie jest zablokowany w pliku robots — adres, którego robot nie może odczytać, nie może zostać wersją podstawową.
Osobny przypadek: łańcuchy. Strona A wskazuje B, B wskazuje C. Google zwykle sobie z tym poradzi, ale sygnał słabnie i lepiej wskazywać cel bezpośrednio.
To najczęstsza przyczyna, gdy technicznie wszystko jest w porządku.
Jeśli canonical wskazuje jedną wersję adresu, a wszystkie linki w menu, w treści i w mapie witryny prowadzą do innej, to masz jeden sygnał przeciw dziesiątkom. Google racjonalnie uznaje, że wersją podstawową jest ta, do której faktycznie prowadzą odnośniki.
Sprawdzam więc trzy rzeczy: dokąd prowadzą linki w nawigacji, dokąd prowadzą linki w treści i która wersja adresu jest w mapie witryny. Wszystkie trzy powinny być zgodne z canonicalem. Naprawa linkowania wewnętrznego bywa nudna, ale to ona zwykle rozstrzyga sprawę.
Warto też sprawdzić linki zewnętrzne, jeśli jakieś są — nie masz nad nimi kontroli, ale wiedza o tym, którą wersję wskazują, tłumaczy decyzję Google.
Canonical działa przy stronach o tej samej albo bardzo zbliżonej treści. Jeśli różnice są istotne, Google potraktuje strony jako osobne i wskazówkę odrzuci.
To bywa źródłem nieporozumień w drugą stronę: ktoś próbuje scalić canonicalem dwa artykuły o pokrewnych, ale różnych tematach i dziwi się, że nie działa. W takiej sytuacji właściwym narzędziem jest scalenie treści i przekierowanie, nie canonical.
Odwrotnie też się zdarza — strony, które uważasz za różne, dla wyszukiwarki są duplikatami, bo różnią się tylko jednym parametrem w tabeli. Wtedy decyzja Google o scaleniu jest zasadna, a właściwą reakcją jest zróżnicowanie treści, nie walka z tagiem.
Nawet poprawna zmiana potrzebuje czasu. Google musi ponownie odwiedzić stronę, odczytać nowe sygnały i przeliczyć decyzję. Przy rzadko skanowanych podstronach to tygodnie.
Można to przyspieszyć: zgłoszenie adresu do indeksowania w Search Console po naprawie, aktualizacja mapy witryny wyłącznie z wersjami kanonicznymi, dodanie linków do właściwej wersji z najczęściej skanowanych stron serwisu.
Czego nie robię: nie zmieniam konfiguracji co kilka dni, bo za każdym razem resetuję proces. Jedna porządna zmiana i cierpliwość dają lepszy efekt niż pięć poprawek w miesiąc.
Jeśli po naprawie sygnałów Google nadal wybiera inaczej, a Tobie zależy na konkretnej wersji, canonical przestaje być właściwym narzędziem.
Przekierowanie stałe jest sygnałem nieporównywalnie silniejszym i praktycznie rozstrzygającym. Stosuję je, gdy wersja niekanoniczna nie musi być dostępna dla użytkownika — a przy parametrach sortowania czy identyfikatorach sesji zwykle nie musi.
Znacznik noindex ma sens, gdy strona ma zniknąć z indeksu, ale pozostać dostępna. Pamiętaj tylko, że to nie to samo co scalenie sygnałów — noindex ich nie przekazuje.
Reguły w pliku robots ograniczają skanowanie, ale nie porządkują indeksu i nie mogą współwystępować z canonicalem na tych samych adresach.
Na koniec rzecz, którą warto sobie powiedzieć uczciwie przed rozpoczęciem tej pracy: czasem decyzja Google jest lepsza od Twojej. Jeśli wyszukiwarka konsekwentnie wybiera inną wersję adresu i to ona zbiera ruch, warto sprawdzić, czy nie ma po prostu racji — bo zwykle wybiera ten adres, do którego faktycznie prowadzi cały serwis.
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 |