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.
Od kilku tygodni w każdej rozmowie o treściach pojawia się to samo pytanie: co zrobić, żeby nasz artykuł był tym, z którego korzysta model, kiedy ktoś zadaje pytanie zamiast wpisywać frazę. Pytanie jest uzasadnione — w maju Google uruchomiło w Stanach AI Overviews, czyli generowane podsumowania nad wynikami, a asystenci oparci na modelach językowych od miesięcy chodzą po sieci i podają odnośniki do stron, z których korzystali.
Chcę od razu ustawić proporcje, bo to temat, w którym łatwo o naciąganie. Nie znam nikogo, kto ma sprawdzoną, powtarzalną metodę „wchodzenia do odpowiedzi modelu”. Nie ma tu panelu, statystyk ani dokumentacji z listą czynników. Google konsekwentnie powtarza, że nie istnieją osobne wymagania techniczne ani specjalne znaczniki, żeby pojawić się w tych funkcjach.
Da się natomiast powiedzieć, co utrudnia wykorzystanie tekstu jako źródła, i to jest treść tego artykułu. Piszę o warsztacie redakcyjnym, nie o sztuczkach.
Do niedawna cel był jeden: wejść wysoko na listę linków, żeby użytkownik kliknął. Teraz doszedł drugi mechanizm — tekst może zostać przeczytany, streszczony i pokazany bez kliknięcia, z odnośnikiem do źródła obok.
Warto rozdzielić dwie sytuacje, bo działają inaczej. Pierwsza to podsumowania w samej wyszukiwarce. AI Overviews wystartowały w maju w Stanach Zjednoczonych i w polskich wynikach ich nie ma; przez ostatnie tygodnie widzieliśmy zresztą, jak Google je koryguje po fali błędnych i kompromitujących odpowiedzi. Druga sytuacja to asystenci i wyszukiwarki oparte na modelach, do których użytkownik idzie zamiast do wyszukiwarki i które również podają źródła.
Dla mnie praktyczna różnica jest taka, że w pierwszym przypadku nadal obowiązuje wszystko, co wiem o SEO, a w drugim liczy się to, czy tekst da się w ogóle pobrać i czy da się z niego wyjąć spójny fragment. Obie sytuacje mają jeden wspólny warunek wstępny: strona musi być indeksowalna i czytelna bez wykonywania skomplikowanych skryptów. Treść wstrzykiwana po kliknięciu w zakładkę bywa niewidoczna dla tego, kto ją zbiera.
Uproszczony obraz, który mi wystarcza do pracy: najpierw następuje wyszukanie kilku źródeł, potem złożenie z nich odpowiedzi. Model nie ocenia całej strony w skali od jednego do dziesięciu. Wybiera fragmenty, które pasują do pytania, i próbuje z nich zrobić spójny akapit.
To ma bardzo konkretny skutek dla sposobu pisania. Jeśli odpowiedź na pytanie „ile trwa okres uczenia strategii stawek” jest u mnie rozproszona na cztery akapity w trzech różnych sekcjach, to nawet dobry model ma trudność, żeby ją stamtąd wyciągnąć w całości. Jeśli ta sama odpowiedź stoi w jednym miejscu jako dwa zdania, szansa jest większa.
Druga konsekwencja: kontekst musi być w tym samym fragmencie. Zdanie „w takim wypadku lepiej tego nie robić” jest bezużyteczne w oderwaniu, bo nie wiadomo, o co chodzi. Piszę więc częściej niż dawniej pełnymi, samodzielnymi zdaniami, powtarzając podmiot zamiast zastępować go zaimkiem. Wygląda to trochę mniej elegancko i przez pierwsze tygodnie mnie to drażniło.
Praktyka, którą przyjąłem, sprowadza się do jednej reguły: każde pytanie, na które artykuł odpowiada, ma w tekście swoje jedno miejsce.
W praktyce oznacza to kilka nawyków:
Nie zmieniłem przy tym niczego w kwestii długości. Nadal uważam, że artykuł ma być tak długi, jak wymaga temat. Zmieniło się rozmieszczenie treści wewnątrz artykułu.
Model nie ma powodu, żeby zaufać akurat mnie, ale ma powód, żeby wybrać fragment, który jest konkretny i wewnętrznie spójny.
Dlatego twarde rzeczy w tekście traktuję poważniej niż kiedyś. Podaję datę przy każdej informacji o zmianie w produkcie — „od marca 2024″ mówi więcej niż „niedawno” i pozostaje prawdziwe po roku. Nazwy produktów piszę pełne, w wersji obowiązującej dziś, bo tekst z nieaktualną nazwą jest gorszym źródłem niż tekst, który jej nie zawiera wcale. Liczby podaję tylko wtedy, gdy mam je z konkretnego, wskazanego miejsca, i mówię, skąd pochodzą.
Osobna sprawa to autorstwo. Nie mam dowodów, że podpis pod tekstem wpływa na to, czy fragment zostanie zacytowany. Wiem natomiast, że tekst bez autora, bez daty i bez informacji o tym, kto stoi za stroną, jest trudniejszy do oceny przez kogokolwiek — człowieka, algorytm rankingowy i model. Skoro to jest tanie w zrobieniu, to nie widzę powodu, żeby tego nie mieć.
Rzecz, której świadomie nie robię: nie doklejam do tekstu list pytań i odpowiedzi wyłącznie po to, żeby „nakarmić” model. Widzę takie artykuły coraz częściej i czyta się je fatalnie. Jeżeli sekcja z pytaniami ma sens dla czytelnika — piszę ją. Jeżeli nie — nie.
Tu jest kilka rzeczy, które warto rozumieć, bo bywają mylone.
Decyzja o blokowaniu robotów AI jest biznesowa, nie techniczna. Wydawcy, którzy żyją z ruchu, mają inny interes niż firma, dla której blog jest wsparciem sprzedaży. Sam na stronach usługowych ich nie blokuję.
Najsłabszy punkt całego tematu. Nie ma raportu pokazującego, ile razy zostałeś użyty jako źródło odpowiedzi, i nie zapowiedziano narzędzia, które by to pokazywało.
Co robię w zamian: raz na jakiś czas biorę listę kilkunastu pytań, na które odpowiadają moje teksty, i po prostu je zadaję — w asystentach, które podają źródła. Zapisuję, czy pojawia się moja strona, czy konkurencja, i czy odpowiedź jest zgodna z tym, co napisałem. To ręczna, niereprezentatywna próbka, ale wyłapuje rzecz najważniejszą: czy jestem cytowany poprawnie. Zdarzyło mi się zobaczyć streszczenie mojego tekstu, które odwracało wniosek — i to był sygnał, że napisałem niejasno, a nie że model zawinił.
Poza tym pilnuję zwykłych danych: wyświetleń i kliknięć w raporcie skuteczności, ruchu z wyszukiwarki, zapytań. Jeśli kiedyś podsumowania trafią do polskich wyników i zabiorą część kliknięć, zobaczę to jako rozjazd między wyświetleniami a klikami, nie jako nagły spadek pozycji.
I ostatnia rzecz, bardziej porządkowa niż techniczna: nie przebudowuję dziś całego bloga pod hipotezę. Zmieniam sposób pisania nowych tekstów i porządkuję te, które i tak wymagały aktualizacji. Gdyby okazało się, że mechanizmy działają inaczej, niż zakładam, nie stracę na tym nic — bo wszystkie te zabiegi robią tekst czytelniejszym dla człowieka.
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 |