Licznik odsłon w WordPressie pokazuje więcej wejść niż Google Analytics. W logach serwera pojawiają się wizyty, których nie widać w analityce. Nie zawsze oznacza to źle skonfigurowany pomiar albo ruch botów.
Od WordPressa 6.8 działa mechanizm, dzięki któremu przeglądarka może pobrać podstronę jeszcze przed faktycznym przejściem na nią przez użytkownika.
Ma to przyspieszać korzystanie ze strony. Jednocześnie może wpływać na statystyki, liczniki odsłon i funkcje, które wykonują się po stronie serwera.
Po co WordPress pobiera stronę przed kliknięciem?
Chodzi o skrócenie czasu oczekiwania użytkownika.
Jeżeli przeglądarka przewiduje, że za chwilę przejdziesz na konkretną podstronę, może rozpocząć jej pobieranie wcześniej. Kiedy faktycznie ją otworzysz, część pracy jest już wykonana.
WordPress wykorzystuje do tego mechanizm nazywany Speculation Rules API.
W domyślnej konfiguracji WordPressa nie oznacza to agresywnego pobierania wszystkich linków widocznych na stronie. Mechanizm działa ostrożniej i reaguje dopiero na zachowanie użytkownika wskazujące, że prawdopodobnie zamierza przejść pod dany adres.
Z punktu widzenia szybkości strony brzmi to dobrze. Problem zaczyna się wtedy, gdy pobranie strony jest traktowane przez inne elementy systemu tak samo jak normalna wizyta.
Użytkownik jeszcze nie wszedł, ale WordPress już wygenerował stronę
Gdy przeglądarka pobiera podstronę z wyprzedzeniem, serwer otrzymuje normalne żądanie.
WordPress uruchamia się, generuje stronę, wykonują się wtyczki i kod działający po stronie serwera.
Jeżeli masz licznik odsłon zapisujący każde wygenerowanie strony do bazy danych, może on potraktować takie pobranie jako kolejną wizytę.
Użytkownik może później faktycznie kliknąć link. Może też zmienić zdanie.
W drugim przypadku WordPress zdążył obsłużyć podstronę, mimo że użytkownik nigdy jej nie zobaczył.
Dlaczego Google Analytics może pokazywać coś innego?
To właśnie tutaj pojawia się jeden z ciekawszych skutków tej funkcji.
Przy zwykłym pobraniu strony z wyprzedzeniem przeglądarka pobiera dokument, ale nie uruchamia jeszcze znajdującego się na nim JavaScriptu.
Google Analytics działa w przeglądarce i opiera się właśnie na JavaScript. Serwerowy licznik WordPressa może więc zapisać odsłonę, podczas gdy Google Analytics jeszcze niczego nie zarejestruje.
Jeżeli użytkownik ostatecznie nie przejdzie na tę stronę, w jednym systemie pozostanie odsłona, której w drugim nie będzie.
Dlatego różnicy między statystykami WordPressa, logami serwera i Google Analytics nie należy automatycznie tłumaczyć botami albo błędem konfiguracji.
Czy oznacza to, że Google Analytics pokazuje błędne dane?
Nie.
Oba systemy mogą po prostu mierzyć coś innego.
Licznik działający po stronie serwera może odpowiadać na pytanie, ile razy WordPress wygenerował daną podstronę. Google Analytics próbuje natomiast mierzyć zachowanie użytkownika w przeglądarce.
Jeszcze kilka lat temu różnica ta mogła mieć mniejsze znaczenie. Mechanizmy pobierania stron z wyprzedzeniem sprawiają jednak, że samo wygenerowanie dokumentu coraz rzadziej można utożsamiać z jego faktycznym obejrzeniem.
Ma to znaczenie szczególnie wtedy, gdy dane z WordPressa wykorzystujesz do raportowania popularności treści, rozliczeń albo podejmowania decyzji marketingowych.
Problem nie kończy się na statystykach
Większym ryzykiem są podstrony, których otwarcie powoduje jakąś zmianę.
Poprawnie zaprojektowana strona nie powinna wykonywać istotnej operacji tylko dlatego, że ktoś otworzył zwykły adres. W praktyce w starszych stronach i niestandardowych integracjach nadal można spotkać takie rozwiązania.
Może to być własny link dodający produkt do koszyka, wylogowanie użytkownika, potwierdzenie jakiejś operacji, przekierowanie afiliacyjne albo naliczenie konwersji wykonywane bezpośrednio po stronie serwera.
Jeżeli przeglądarka pobierze taki adres z wyprzedzeniem, operacja może zostać wykonana zanim użytkownik faktycznie zdecyduje się w niego wejść.
Dlatego po aktualizacji WordPressa warto zwrócić uwagę nie tylko na wygląd strony, ale również na niestandardowe mechanizmy działające po kliknięciu linków.
Co z WooCommerce?
Standardowy WooCommerce jest w znacznej części zabezpieczony przez sposób, w jaki WordPress dobiera adresy do pobierania z wyprzedzeniem.
WordPress domyślnie pomija między innymi adresy zawierające parametry. Dzięki temu klasyczne operacje WooCommerce wykorzystujące takie adresy nie są automatycznie traktowane jak zwykłe podstrony do wcześniejszego pobrania.
Więcej uwagi wymagają sklepy rozwijane indywidualnie.
Jeżeli przez lata powstawały w nich własne endpointy, integracje i akcje wykonywane po wejściu na określony adres, warto sprawdzić ich zachowanie.
Dotyczy to szczególnie dużych sklepów, w których WordPress i WooCommerce komunikują się z ERP, magazynem, programem lojalnościowym, systemem afiliacyjnym lub innymi usługami.
Czy trzeba wyłączać tę funkcję?
W większości przypadków nie.
Sam mechanizm ma sens. Jego zadaniem jest poprawa szybkości odczuwanej przez użytkownika i w prawidłowo zbudowanej stronie nie powinien powodować niepożądanych operacji.
Zamiast wyłączać go od razu, lepiej sprawdzić, czy wpływa na konkretne elementy witryny.
Jeżeli jedynym skutkiem jest zawyżony licznik odsłon we wtyczce, można poprawić sposób liczenia. Jeżeli określone adresy nie powinny być pobierane wcześniej, można je wykluczyć. Dopiero jeżeli mechanizm powoduje więcej komplikacji niż korzyści, można rozważyć jego całkowite wyłączenie.
Jak sprawdzić, czy WordPress korzysta z pobierania z wyprzedzeniem?
Jest tutaj jedna pułapka. WordPress domyślnie generuje te reguły dla niezalogowanych użytkowników.
Jeżeli administrator sprawdza stronę podczas pracy w panelu WordPressa, może ich w ogóle nie zobaczyć.
Dlatego test należy przeprowadzić jako zwykły odwiedzający, na przykład w prywatnym oknie przeglądarki.
Programista może następnie sprawdzić, które adresy są pobierane z wyprzedzeniem i czy takie żądania powodują zapis danych po stronie WordPressa.
Jeżeli statystyki zaczęły rozjeżdżać się po aktualizacji albo licznik odsłon wygląda podejrzanie, jest to jeden z elementów, które warto zweryfikować przed przebudową całej analityki.
Co warto sprawdzić na własnej stronie?
Najpierw warto ustalić, czy korzystasz z jakichkolwiek liczników działających bezpośrednio w WordPressie. Jeżeli ich wyniki mają znaczenie biznesowe, powinny odróżniać faktyczną wizytę od pobrania wykonanego z wyprzedzeniem.
Drugim obszarem są niestandardowe funkcje. Szczególnej uwagi wymagają linki, których samo otwarcie zapisuje coś w bazie, zmienia stan użytkownika albo uruchamia inną operację.
W sklepie warto również przejrzeć własne modyfikacje WooCommerce oraz integracje tworzone specjalnie dla danego biznesu.
Standardowa strona może nie wymagać żadnej zmiany. Im bardziej rozbudowany i indywidualnie rozwijany system, tym większy sens ma jednak sprawdzenie, jak zachowuje się po aktualizacji WordPressa.
Szybsza strona nie powinna oznaczać gorszych danych
Pobieranie podstron z wyprzedzeniem jest dobrym przykładem funkcji, która dla większości użytkowników pozostaje całkowicie niewidoczna.
Strona może dzięki niej reagować szybciej, ale sposób działania ma znaczenie dla analityki i kodu wykonywanego po stronie serwera.
Jeżeli liczba odsłon w WordPressie nie zgadza się z Google Analytics, nie oznacza to automatycznie, że jeden z systemów jest źle skonfigurowany. Mogą po prostu rejestrować inne zdarzenia.
W Dock zajmujemy się utrzymaniem i rozwojem stron oraz sklepów opartych o WordPress i WooCommerce. Przy przejmowaniu projektu sprawdzamy nie tylko aktualizacje i wydajność, ale również niestandardowe mechanizmy, integracje i sposób zbierania danych.
Jeżeli po aktualizacji WordPressa coś zaczęło zachowywać się inaczej albo dane przestały się zgadzać, możemy sprawdzić, z czego wynika różnica i czy wymaga zmian po stronie witryny.