Co to jest cloaking i dlaczego nie widzisz spamu na własnej stronie?
Google Search Console pisze, że na Twojej stronie są setki podstron ze spamem. Klient mówi, że z telefonu wyrzuciło go na stronę z kasynem. A Ty wchodzisz na stronę — raz, drugi, piąty — i widzisz dokładnie to, co powinno tam być. Logiczny wniosek: „Google się myli, klient coś pomieszał”. Niestety wniosek jest zły. Najprawdopodobniej masz na stronie cloaking — kod, który pokazuje różnym odbiorcom różną treść. I to właśnie dlatego nie widzisz problemu: jesteś jedyną osobą, przed którą kod się chowa.
Cloaking — definicja w jednym zdaniu
Cloaking (ang. cloak — płaszcz, maskowanie) to serwowanie innej treści robotom wyszukiwarek, a innej ludziom — albo innej różnym grupom ludzi — pod tym samym adresem. Google wymienia cloaking wprost w swoich zasadach dotyczących spamu jako technikę zakazaną, bo jej jedynym celem jest oszukanie wyszukiwarki: pokazać jej treść, która dobrze się pozycjonuje, a użytkownikowi — coś zupełnie innego.
Historycznie cloaking był sztuczką nieuczciwych pozycjonerów. Dziś w zdecydowanej większości przypadków, z którymi się spotykamy, cloaking jest elementem włamania: spamer umieszcza na cudzej stronie własną treść i maskuje ją tak, żeby właściciel strony nie zauważył, a Google zauważył jak najpóźniej.
Jak kod rozpoznaje, komu co pokazać
Każde wejście na stronę niesie ze sobą kilka informacji o odwiedzającym. Złośliwy kod sprawdza je i decyduje, którą wersję strony zwrócić. Najczęstsze kryteria:
- Nazwa przeglądarki (user-agent). Robot Google przedstawia się jako „Googlebot”. Kod zwraca mu spam, a każdemu, kto przedstawia się jako Chrome czy Safari — czystą stronę. Albo odwrotnie: Googlebot dostaje czystą stronę (żeby Google nie oznaczył witryny), a ludzie z telefonów — przekierowanie.
- Skąd przyszedł odwiedzający (referer). Wejście z wyników Google lub z Facebooka = pokaż spam lub przekieruj. Wejście bezpośrednie (ktoś wpisał adres, ma go w zakładkach) = pokaż czystą stronę. Właściciel prawie zawsze wchodzi bezpośrednio.
- Ciasteczka. Zalogowany do panelu WordPressa ma ciasteczko logowania — kod wyklucza takie osoby. Po pierwszym przekierowaniu kod ustawia własne ciasteczko i przez dobę pokazuje tej osobie czystą stronę, żeby „sprawdzanie” nic nie dało.
- Adres IP. Kod ma listę adresów Google i innych wyszukiwarek, a czasem uczy się też Twojego adresu: kilka wejść z tego samego IP w ciągu dnia = to właściciel, pokazać czystą stronę.
- Typ urządzenia i język. Spam skierowany do japońskich użytkowników pokazuje się tylko przy japońskim języku przeglądarki; przekierowania na hazard — tylko na telefonach.
- Pora dnia i losowanie. Niektóre warianty przekierowują co dziesiątego odwiedzającego — na tyle rzadko, żeby reklamacje klientów brzmiały niewiarygodnie.
Wszystkie te kryteria można łączyć. Efekt: Ty, sprawdzając stronę z firmowego komputera, zalogowany, wpisując adres ręcznie — nie trafiasz w żaden warunek. Nigdy.
Gdzie fizycznie siedzi cloaking
Nie ma jednego pliku „cloaking.php”. Kod decydujący, co komu pokazać, siedzi zwykle w jednym z miejsc opisanych dokładniej w tekście o przekierowaniach: w plikach motywu lub wtyczek, w rdzeniu WordPressa, w regułach .htaccess (serwer sam przekierowuje po nazwie przeglądarki, zanim WordPress w ogóle się uruchomi), w bazie danych albo w skrypcie ładowanym z obcej domeny. Przy japońskim spamie kod dodatkowo generuje tysiące podstron, które „istnieją” tylko dla robota Google.
Jak zobaczyć stronę oczami Google — bez programisty
Dobra wiadomość: nie musisz zgadywać. Są cztery sposoby, od najprostszego:
- Test na żywo w Google Search Console. Wpisz adres podstrony w pole sprawdzania adresu URL, wybierz „Testuj URL na żywo”, a potem „Wyświetl przetestowaną stronę”. Zobaczysz kod HTML i zrzut ekranu dokładnie w takiej postaci, w jakiej odebrał je Googlebot — bo to Googlebot właśnie go pobrał. Jeśli jest tam obcy tekst, obce linki lub obce skrypty, a w Twojej przeglądarce ich nie ma — to cloaking.
- Wejście jak klient. Telefon, wyłączone Wi-Fi, tryb incognito, wyszukanie firmy w Google i kliknięcie w wynik. Omija większość warunków naraz (inny adres IP, brak ciasteczek, wejście z Google, urządzenie mobilne).
- Podgląd z udawanym Googlebotem. W Chrome: narzędzia dla programistów (F12) → menu trzech kropek → Więcej narzędzi → Network conditions → odznacz „Use browser default” przy User agent i wybierz Googlebot. Odśwież stronę. Prostsze warianty cloakingu dadzą się tak nabrać; sprytniejsze sprawdzają też adres IP i nie dadzą.
- Opis wyniku w Google. Wpisz
site:twojadomena.pl— fragmenty tekstu pod wynikami pochodzą z wersji, którą widział Google. Jeśli pod Twoją podstroną „O nas” Google pokazuje opis zegarków albo leków, masz odpowiedź.
Komplet samodzielnych testów, łącznie z tymi powyżej, zebraliśmy w tekście Jak sprawdzić, czy moja strona WordPress jest zhakowana? 7 prostych testów.
Dlaczego Google karze także ofiary
To bywa źródłem żalu: „przecież to nie ja, włamali mi się”. Google jednak ocenia to, co strona robi, nie intencje właściciela. Strona, która pokazuje robotowi co innego niż ludziom, łamie zasady dotyczące spamu — i Google reaguje tak samo, jakby to był celowy zabieg: etykietą „Ta witryna mogła zostać zhakowana”, spadkiem pozycji, a przy szkodliwych przekierowaniach — wpisem na listę Safe Browsing i czerwonym ekranem w przeglądarkach. Z punktu widzenia Google to zresztą logiczne: użytkownika nie obchodzi, dlaczego trafił na kasyno zamiast na warsztat.
Jest w tym też dobra wiadomość: Google odróżnia stronę zhakowaną od strony spamującej celowo. Po wyczyszczeniu i złożeniu wniosku o ponowne sprawdzenie ostrzeżenia znikają, a pozycje zwykle wracają. Przy celowym cloakingu kary bywają dłuższe i trwalsze.
Co zrobić, gdy potwierdzisz cloaking
- Zrób zrzuty ekranu z testu na żywo w Search Console — to dowód i punkt wyjścia do diagnozy.
- Zrób kopię plików i bazy w stanie „po włamaniu”, zanim cokolwiek usuniesz.
- Zmień hasła do panelu, hostingu, FTP/SFTP i bazy.
- Wyczyść stronę: podmiana rdzenia, wtyczek i motywu na oryginały, przegląd bazy, .htaccess, uploads, mu-plugins, cron, kont — i zamknięcie luki, przez którą weszli.
- Po wyczyszczeniu sprawdź ponownie testem na żywo, że Googlebot i Ty widzicie to samo. Dopiero wtedy złóż wniosek o ponowne sprawdzenie.
Jeśli wolisz to zlecić: czyszczenie strony po włamaniu — od diagnozy po zdjęcie ostrzeżeń Google, jedna stała kwota po analizie.
A czy jest „dobry” cloaking?
Nie, ale są rzeczy, które cloakingiem nie są, choć bywają z nim mylone: inna wersja strony dla telefonów i komputerów (ta sama treść, inny układ), treść zależna od języka przeglądarki (ta sama oferta po polsku i po angielsku), strony dostępne po zalogowaniu, reklamy wyświetlane losowo. Zasada Google jest prosta: robot ma widzieć to samo, co zobaczyłby człowiek w tych samych warunkach. Dopóki to zachodzi, wszystko jest w porządku.
Pytania
Pytania o cloaking
Co to jest cloaking?
Cloaking to serwowanie pod tym samym adresem innej treści robotom wyszukiwarek, a innej ludziom (albo innej różnym grupom ludzi). Google wymienia go w zasadach dotyczących spamu jako technikę zakazaną. Dawniej sztuczka nieuczciwych pozycjonerów; dziś najczęściej element włamania — spamer ukrywa na cudzej stronie swoją treść przed właścicielem, a pokazuje ją Google.
Czy cloaking jest karany przez Google?
Tak. Strona z cloakingiem łamie zasady Google dotyczące spamu, niezależnie od tego, czy właściciel o nim wie. Skutki: etykieta „Ta witryna mogła zostać zhakowana” pod wynikiem, spadek pozycji, a przy szkodliwych przekierowaniach — wpis na listę Safe Browsing i czerwony ekran w przeglądarkach. Google odróżnia jednak stronę zhakowaną od spamującej celowo: po wyczyszczeniu i wniosku o ponowne sprawdzenie ostrzeżenia znikają, a pozycje zwykle wracają.
Jak sprawdzić cloaking na stronie?
Porównaj stronę pobraną przez Googlebota z tym, co widzisz w przeglądarce: w Google Search Console wpisz adres w sprawdzanie adresu URL → „Testuj URL na żywo” → „Wyświetl przetestowaną stronę” (kod HTML i zrzut ekranu). Uzupełnienie: wejście z telefonu bez Wi-Fi, w trybie incognito, przez wynik wyszukiwania; wyszukiwanie site:twojadomena.pl (fragmenty pod wynikami pochodzą z wersji, którą widział Google); podmiana user-agenta na Googlebot w narzędziach dla programistów Chrome.
Jak zobaczyć stronę tak, jak widzi ją Googlebot?
Najwiarygodniej przez test na żywo w Google Search Console — stronę pobiera wtedy prawdziwy Googlebot z adresów Google, więc kod stosujący cloaking po adresie IP też da się nabrać. Wymaga zweryfikowanej domeny. Tańszy, mniej pewny sposób: Chrome → F12 → Network conditions → User agent: Googlebot — prostsze warianty cloakingu dadzą się oszukać, sprytniejsze (sprawdzające IP) nie.
Jak usunąć cloaking ze strony WordPress?
Cloaking nie jest osobnym plikiem — to logika w złośliwym kodzie, który trzeba usunąć w całości: pliki motywu i wtyczek, rdzeń, reguły .htaccess (przekierowania po user-agencie działają zanim WordPress się uruchomi), baza danych, fałszywe wtyczki i mu-plugins, zadania cron, skrypty z obcych domen. Po czyszczeniu sprawdź testem na żywo, że Googlebot i Ty widzicie to samo, zamknij lukę, wymień hasła i dopiero wtedy złóż wniosek o ponowne sprawdzenie.
Dlaczego Google widzi na mojej stronie inną treść niż ja?
Bo kod na stronie rozpoznaje odwiedzającego po nazwie przeglądarki, źródle wejścia, ciasteczkach (w tym ciasteczku logowania do panelu), adresie IP, urządzeniu i języku — i właścicielowi zawsze zwraca czystą wersję. Nie jest to błąd Google ani „stara wersja w pamięci podręcznej”. W naszej praktyce w takiej sytuacji strona praktycznie zawsze okazuje się zhakowana.
Czy wtyczka bezpieczeństwa wykryje cloaking?
Czasem — jeśli kod pasuje do znanej sygnatury. Ale wtyczka patrzy na pliki od środka, a cloaking objawia się na zewnątrz. Najpewniejszy test to porównanie strony pobranej przez Googlebota (test na żywo w Search Console) z tym, co widzisz w przeglądarce. Tego żadna wtyczka nie zastąpi.
Czy strona z cloakingiem przekierowuje wszystkich klientów?
Zwykle nie — kod wybiera część odwiedzających (telefony, wejścia z Google, co n-ta osoba). Dlatego reklamacje przychodzą pojedynczo i brzmią niewiarygodnie. Jedna wiarygodna reklamacja wystarczy, żeby zrobić testy.
Czy mogę zobaczyć stronę w pamięci podręcznej Google (cache)?
Dawniej link „Kopia” pod wynikiem pokazywał wersję zapisaną przez Google. Google wycofał tę funkcję — dziś najbliższym odpowiednikiem jest test na żywo w Search Console (wymaga weryfikacji domeny) oraz fragmenty tekstu pod wynikami przy wyszukiwaniu site:.
Wyczyściłem stronę, ale Google dalej widzi spam. Dlaczego?
Trzy możliwości: Google nie odwiedził jeszcze strony ponownie (złóż wniosek o ponowne sprawdzenie i prześlij mapę strony), został fragment kodu w miejscu, którego nie sprawdzono (np. .htaccess w podkatalogu, zadanie cron odtwarzające pliki), albo kod ładuje się z obcej domeny i Twoje pliki są czyste, a spam i tak jest. Test na żywo pokaże, która z nich zachodzi.
Google widzi coś, czego Ty nie widzisz?
Znajdziemy kod, który maskuje spam, usuniemy go razem z luką i doprowadzimy do zdjęcia ostrzeżeń. Jedna stała kwota po analizie.