← Všetky články

Prečo návštevníci z platenej reklamy dostávali najpomalšiu verziu webu

Laboratórne testy ukazovali rýchly web. Dáta reálnych používateľov však odhalili, že niektoré stránky sa načítali za menej než sekundu, zatiaľ čo iné potrebovali päť až deväť sekúnd.

Hodnotenia Webgate na Clutch

Dôveruje nám 50+ marketingových tímov

StaffinoOktagonCloudTalkAONVacuumlabsBloomreach
Prečo návštevníci z platenej reklamy dostávali najpomalšiu verziu webu

Sledujeme Core Web Vitals skutočných používateľov pre každú stránku webu. V dátach nás zaujal zvláštny vzor. Väčšina stránok mala odpoveď servera 200–500 ms. Homepage, produktové stránky a stránky žiadostí o demo však vykazovali 4–6,6 sekundy. Pri rovnakom obsahu to nedávalo zmysel.

Príznaky ukazovali na server. TTFB, teda čas do prvého bajtu, bol pomalý a celé ďalšie načítanie preberalo toto oneskorenie. Keď sme tie isté stránky testovali sami, boli rýchle. Cache hit, okamžitá odpoveď.

Čím sa teda líšili skutoční návštevníci?

Prečo návštevníci z platenej reklamy dostávali najpomalšiu verziu webu — ilustrácia 1

Čo sme našli

Pomalé stránky boli vstupnými stránkami platených kampaní a marketingových e-mailov. Tieto kliknutia neprichádzajú na čistú URL. Organický návštevník požiada o:

https://client.com/product-page/

Tá istá stránka vyzerá po kliknutí na Google Ads kampaň spravovanú cez HubSpot takto:

https://client.com/product-page/?utm_source=google&utm_medium=cpc
  &utm_campaign=identity-es&utm_term=verificacion
  &gclid=Cj0KCQjw4vKpBhCZARIsAOKHoWTn...
  &hsa_acc=1234567890&hsa_cam=20456789012&hsa_grp=1567890123
  &hsa_ad=678901234567&hsa_src=g&hsa_tgt=kwd-345678901234
  &hsa_kw=identity%20verification&hsa_mt=b&hsa_net=adwords&hsa_ver=3

Kliknutie z marketingového e-mailu HubSpot vyzerá takto:

https://client.com/request-a-demo/?_hsenc=p2ANqtz-_8FhTr2vXq...&_hsmi=987654321

Cache vrstvy majú zoznam „bezpečných“ parametrov, ktoré môžu ignorovať. WP Rocket obsahuje dobrý predvolený zoznam: utm_source, utm_medium, gclid, fbclid, msclkid a približne 70 ďalších. Všimnite si však URL reklamy vyššie. gclid a utm_* na zozname sú. Kampane Google Ads spravované cez HubSpot pridávajú aj desať parametrov hsa_*, ktoré tam nie sú. Chýbajú aj e-mailové tokeny _hsenc / _hsmi a CTA parametre HubSpot, napríklad hubs_content či hsCtaTracking.

Jediný neznámy parameter stačí, aby cache považovala celú URL za unikátnu dynamickú stránku:

  • Cloudflare obíde edge cache — v hlavičkách je cf-apo-via: origin,qs.
  • WP Rocket odmietne použiť uloženú kópiu.
  • Každé kliknutie čaká na úplné vykreslenie WordPressu bez cache. Namerali sme 4 až 8 sekúnd.

Každý klik nesie unikátny sledovací token. Hodnoty gclid či _hsenc sa neopakujú, preto sa cache pre túto návštevnosť nikdy nezahreje. Nejde o studenú cache, ktorá sa časom naplní, ale o trvalé obchádzanie.

Potvrdili sme to na reálnych query stringoch z analytiky požiadaviek Cloudflare. Vyše 11 000 požiadaviek týždenne obsahovalo parametre mimo známeho zoznamu WP Rocket. Najpomalšie stránky v RUM presne zodpovedali stránkam s touto návštevnosťou. Rýchle stránky navštevovali organickí používatelia s čistými URL.

Najdrahšia návštevnosť — kliknutia, za ktoré klient platí — teda dostávala najpomalšiu verziu webu.

Riešenie

Tieto parametre spracúva analytický JavaScript v prehliadači. Server s nimi aj bez nich generuje rovnaké HTML, takže ich cache v tomto prípade môže bezpečne ignorovať. WP Rocket na to poskytuje filter rocket_cache_ignored_parameters. Stačí malý must-use plugin:

<?php
/**
 * Plugin Name: WP Rocket Extra Ignored Query Params
 * Description: Serve cached pages for tracking params that never change the HTML.
 */

defined( 'ABSPATH' ) || exit;

add_filter(
    'rocket_cache_ignored_parameters',
    function ( $params ) {
        $extra = array(
            // HubSpot-managed Google Ads.
            'hsa_acc', 'hsa_cam', 'hsa_grp', 'hsa_ad', 'hsa_src',
            'hsa_tgt', 'hsa_kw', 'hsa_mt', 'hsa_net', 'hsa_ver',
            // HubSpot content/CTA links.
            'hubs_content', 'hubs_content-cta', 'hubs_signup-cta',
            'hubs_signup-url', 'hubs_post', 'hubs_post-cta',
            'hsCtaTracking', 'hsCtaAttrib',
            // HubSpot email tracking.
            '_hsenc', '_hsmi',
            // Other marketing params seen in real traffic.
            'utm_referrer', 'mkt_tok', 'li_fat_id',
        );

        return array_merge( (array) $params, array_fill_keys( $extra, 1 ) );
    },
    20 // after WP Rocket's own dynamic list, so nothing gets lost
);

Dve úskalia nás stáli čas:

  • Zoznam je zapísaný v konfiguračnom súbore. WP Rocket ukladá ignorované parametre do wp-content/wp-rocket-config/{domain}.php. Jeho skorá cache vrstva číta súbor ešte pred načítaním WordPressu. Pridať mu-plugin nestačí — treba znova vygenerovať konfiguráciu:
   wp eval "rocket_generate_config_file();"
  • OPcache môže zmenu skryť. Ak server uchováva PHP súbory s intervalom opätovnej kontroly — u nás 300 sekúnd — ešte pár minút používa starú konfiguráciu. Nehľadajte ďalšiu chybu v oprave, ktorá sa ešte neprejavila. Pred testovaním počkajte na uplynutie intervalu.

Pred nasadením skontrolujte, čo už zoznam obsahuje. WP Rocket ho aktualizuje vzdialene a už zahŕňal dva parametre, ktoré sme pôvodne chceli pridať: gad_source a gad_campaignid.

Výsledky pred a po oprave sme merali na skutočných kampaňových URL cez Cloudflare:

PožiadavkaPred opravouPo oprave
Klik z reklamy s hsa_* + gclid + utm_*4,0 s0,5 s
Klik z marketingového e-mailu (_hsenc / _hsmi)6,6 s0,13 s
Klik z CTA na homepage (hubs_*)4,1 s0,2 s
Kontrola: skutočne neznámy parameter7,4 s7,4 s — správne, stále sa vytvára čerstvá stránka

Prečo je monitoring reálnych používateľov dôležitý

Laboratórny test by problém nezachytil. Syntetické nástroje žiadajú čisté URL, zvyčajne s pripravenou cache. Práve tento scenár už fungoval rýchlo. Aj priemery vyzerali dobre, pretože ich zlepšovala organická návštevnosť.

RUM problém odhalil: skutoční návštevníci, skutočné URL, rozdelenie po stránkach. Až dáta z prevádzky ukázali vzor: stránky, ktoré propagujeme, sú pomalé.

Odhaľujte problémy včas a opravujte ich rýchlo. Skôr než potichu minú reklamný rozpočet na návštevníkov, ktorí odídu ešte pred vykreslením stránky.

Chcete zistiť, čo naozaj zažívajú vaši návštevníci? Ozvite sa nám.

← Späť na Blog

KONTAKT

Máte záujem o spoluprácu?

Napíšte nám alebo si dohodnime online hovor, kde si povieme viac o možnostiach spolupráce.

Tomáš a Roman – zakladatelia Webgate

Porozprávajte sa priamo
so zakladateľmi Webgate.