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.
Meta description to pole, które w większości serwisów, jakie audytuję, wygląda jednakowo: albo jest puste, albo wypełnione automatycznie przez wtyczkę, albo powtarza pierwsze zdanie ze strony. Rozumiem, dlaczego tak się dzieje — od lat wiadomo, że opis nie jest czynnikiem rankingowym, więc łatwo uznać go za pole do odhaczenia.
To błąd, tylko innego rodzaju niż rankingowy. Pozycja daje wyświetlenie, ale nie daje wizyty. O wizycie decyduje to, co użytkownik przeczyta w wyniku wyszukiwania, a opis jest w tym miejscu najdłuższym fragmentem tekstu, na który mam realny wpływ.
Sytuacja stała się ciekawsza od zeszłorocznej zmiany, po której Google zaczął szerzej przepisywać znaczniki title w wynikach. Skoro nad tytułem mam mniej kontroli niż wcześniej, opis zyskał na znaczeniu. Poniżej opisuję, jak do niego podchodzę: co realnie działa, czego się nie da wymusić i jak sprawdzić, czy zmiana cokolwiek dała.
Zacznę od uporządkowania pojęć, bo to źródło większości nieporozumień. Meta description nie jest czynnikiem rankingowym — Google potwierdzał to wielokrotnie i nie ma tu żadnej ukrytej furtki. Wpisanie do opisu dziesięciu fraz kluczowych nie podniesie strony ani o jedno miejsce.
Opis pracuje na innym etapie. Strona już się wyświetliła i teraz konkuruje z dziewięcioma innymi wynikami o uwagę człowieka, który skanuje ekran przez kilka sekund. Tytuł mówi, o czym jest strona. Opis odpowiada na pytanie, dlaczego warto wejść właśnie tutaj, a nie do wyniku wyżej lub niżej.
Jest jeszcze efekt pośredni, o którym mówi się ostrożnie i słusznie. Współczynnik klikalności nie jest bezpośrednim czynnikiem rankingowym — nie ma potwierdzenia, że wyższy CTR sam z siebie podnosi pozycję. Ale ruch, który przychodzi na stronę faktycznie odpowiadającą na zapytanie, zachowuje się inaczej niż ruch przypadkowy: rzadziej wraca do wyników, częściej dociera do celu. Dlatego traktuję optymalizację opisu jako pracę nad dopasowaniem oczekiwań, a nie nad sztucznym podbijaniem kliknięć.
W praktyce daje to jedną zasadę, do której wracam za każdym razem: opis ma zapowiadać treść strony, a nie sprzedawać jej lepszą wersję. Obietnica niezgodna z zawartością przyniesie kliknięcie i natychmiastowy powrót do wyszukiwarki, a to najgorszy możliwy wynik tej pracy.
To druga rzecz, którą tłumaczę na początku każdej rozmowy o snippetach. Meta description nie jest tekstem, który Google ma obowiązek wyświetlić. Jest sugestią.
Wyszukiwarka generuje opis dynamicznie, dopasowując go do konkretnego zapytania. Jeśli uzna, że fragment treści ze strony odpowiada na pytanie lepiej niż mój opis, wyświetli ten fragment — czasem z pogrubioną frazą z zapytania, czasem złożony z dwóch odległych zdań. Zjawisko dotyczy dużej części wyników i nie jest karą ani błędem wdrożenia.
Przepisanie zdarza się szczególnie często w kilku sytuacjach:
Wniosek jest odwrotny do intuicyjnego. Skoro Google potrafi mnie nadpisać, nie znaczy to, że pisanie opisów jest bezcelowe — znaczy, że opis ma sens tam, gdzie strona ma jedno główne zapytanie i jedną klarowną obietnicę. Na stronie kategorii z setkami wariantów zapytań szansa na wyświetlenie mojej wersji jest mniejsza niż na wpisie odpowiadającym na jedno konkretne pytanie. Dlatego zaczynam od tych drugich.
Pytanie o dokładny limit dostaję w każdym projekcie i odpowiedź brzmi: limitu liczonego w znakach nie ma, bo Google ucina snippet na podstawie szerokości w pikselach. Litera „i” zajmuje mniej miejsca niż „w”, więc dwa opisy o tej samej długości mogą urwać się w innym punkcie.
Praktycznie posługuję się przybliżeniem: około 150–160 znaków na komputerze i wyraźnie mniej na telefonie, gdzie kolumna jest węższa. Ponieważ w większości serwisów, które prowadzę, ruch mobilny dawno przeważa, piszę tak, żeby najważniejsza informacja zmieściła się w pierwszych kilkudziesięciu znakach. Wszystko za wielokropkiem to bonus, nie treść.
Nie zalecam też sztucznego dobijania do limitu. Opis krótki, ale kompletny, wygląda w wynikach lepiej niż wypełniony do granicy i urwany w połowie zdania. Jeśli sensowna zapowiedź strony zmieściła się w stu znakach, zostawiam sto.
Odwrotny błąd — opis kilkuzdaniowy, na trzysta znaków — nie powoduje żadnej kary, po prostu marnuje pracę. Przez chwilę, kilka lat temu, Google eksperymentował z dłuższymi opisami w wynikach, ale szybko wrócił do krótszej formy i od tego czasu długość jest przewidywalna. Zdania, które nie mają szansy się wyświetlić, są tekstem dla nikogo.
Mój schemat jest prosty i sprowadza się do trzech elementów: co tu jest, dla kogo i co konkretnie zyskujesz po wejściu.
Najważniejszy jest pierwszy fragment. Wstawiam w niego frazę, na którą strona ma rankować — nie po to, żeby wpłynąć na pozycję, bo nie wpłynie, ale dlatego że Google pogrubia w snippecie słowa z zapytania. Pogrubienie jest sygnałem trafności dla oka i działa szybciej niż jakikolwiek argument.
Dalej daję konkret zamiast przymiotnika. „Kompleksowa oferta najwyższej jakości” nie mówi nic i nie różni się od czterech wyników obok. Informacja, że tekst zawiera listę kontrolną, przykłady konfiguracji albo porównanie dwóch rozwiązań, jest weryfikowalna i wybiera użytkownika, który tego właśnie szuka.
Kilka rzeczy, które stosuję rutynowo:
Czego nie robię: nie wstawiam emoji ani ozdobników w nadziei na wyróżnienie, bo Google zwykle je usuwa. Nie piszę wielkimi literami. Nie obiecuję pierwszego miejsca w rankingu ani gwarancji, których strona nie potwierdza. Opis to zapowiedź, nie nagłówek reklamowy — a różnicę widać po tym, ilu użytkowników wraca do wyników po dwóch sekundach.
Bez pomiaru cała ta praca jest zgadywaniem, a potrzebne dane są dostępne bezpłatnie w Search Console, w raporcie skuteczności.
Pracuję na widoku stron i zapytań z włączonymi wszystkimi czterema metrykami: kliknięcia, wyświetlenia, CTR i średnia pozycja. Szukam adresów z dużą liczbą wyświetleń i niską klikalnością przy przyzwoitej pozycji — to najlepsi kandydaci na poprawę opisu, bo widoczność już jest, brakuje tylko powodu do kliknięcia.
Kilka zasad, bez których taka analiza prowadzi do fałszywych wniosków:
Zmiany wprowadzam partiami i porównuję okres do okresu, najlepiej rok do roku albo do analogicznego przedziału o podobnej sezonowości. Na efekt czekam kilka tygodni: Google musi ponownie odwiedzić stronę i zaktualizować snippet, a potem potrzebna jest próbka wyświetleń, żeby różnica w klikalności przestała być szumem. Zmiana opisu na trzech podstronach i ocena po dwóch dniach to nie test, to loteria.
Przy serwisie liczącym tysiące adresów pisanie opisów ręcznie dla wszystkiego jest nierealne i nie ma sensu. Ustawiam kolejność.
Na początek biorę strony z największą liczbą wyświetleń, bo tam każdy punkt procentowy klikalności przekłada się na najwięcej wizyt. Potem strony, które zarabiają: kategorie, oferta, koszyk lejka — nawet jeśli ich widoczność jest mniejsza. Na trzecim miejscu wpisy blogowe, które rankują na jedno wyraźne pytanie, bo tam moja wersja opisu ma największą szansę się wyświetlić.
Reszta — na przykład karty produktów w liczbie kilkudziesięciu tysięcy — dostaje szablon generowany z pól, którymi już dysponuję: nazwa produktu, marka, kluczowy parametr, informacja o dostawie. Szablon musi tworzyć zdanie, które da się przeczytać na głos. Sklejka w rodzaju „Kup nazwa produktu marka tanio” jest gorsza od braku opisu, bo Google i tak ją zignoruje, a ja zostanę z przekonaniem, że temat jest odhaczony.
Warto też pamiętać, że opis nie jest jedynym elementem wyniku. Poprawnie wdrożone dane strukturalne mogą dodać oceny, ceny czy ścieżkę nawigacyjną, a czytelny adres URL sam nadaje kontekst. Optymalizacja klikalności to praca nad całym wynikiem wyszukiwania, nie nad jednym znacznikiem.
Lista jest krótka i powtarza się od lat w niemal każdym audycie.
Najpierw duplikaty. Wtyczka SEO ustawiona raz i zapomniana potrafi wstawić ten sam opis na całą sekcję serwisu — łącznie ze stronami paginacji, gdzie identyczny opis pojawia się kilkadziesiąt razy. To sytuacja, w której Google z pewnością napisze własny snippet.
Potem opis powtarzający tytuł. Skoro tytuł już mówi to samo, opis nie dodaje żadnej informacji, a marnuje jedyne miejsce w wyniku, w którym mogłem powiedzieć coś więcej.
Trzeci błąd to opisy niezaktualizowane po zmianie treści. Podstrona przeszła przebudowę, a opis nadal obiecuje coś, czego już na niej nie ma. Sprawdzenie zgodności opisu z treścią wpisuję do listy kontrolnej każdej większej zmiany na stronie.
Na koniec dwie rzeczy techniczne, o których warto wiedzieć, choć rzadko się ich używa. Za pomocą znacznika robots można ograniczyć długość wyświetlanego fragmentu albo całkiem zablokować pokazywanie snippetu, a atrybutem umieszczonym w kodzie strony da się wyłączyć wybrany fragment treści z możliwości wykorzystania w wyniku. Stosuję to wyjątkowo — na przykład tam, gdzie do snippetu trafiał tekst zgody na cookies albo element menu. W codziennej pracy skuteczniejsze jest jednak dopisanie sensownego opisu niż odbieranie wyszukiwarce materiału do jego budowy.
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 |