Script speculationrules to je v najnovších verziách WordPressu novinka, ktorá na prvý pohľad vyzerá nenápadne, <script type="speculationrules">
. Tento HTML element nie je určený pre bežné skriptovanie, ale na definovanie tzv. „špekulatívnych pravidiel“, teda predikcie toho, čo používateľ (návštevník webu) pravdepodobne spraví ďalej na webovej stránke pri návšteve. V článku sa pokúsim vysvetliť, čo táto technológia znamená. Ako funguje a prečo ju WordPress nasadzuje.
Čo je script speculationrules
Tento špeciálny script umožňuje prehliadaču získať pravidlá pre takzvaný prerendering a prefetching. Ide teda o pred načítanie alebo pred pripravenie stránok ešte predtým, ako na ne používateľ klikne. Pomocou JSON syntaxe vo vnútri tohto tagu môžeme definovať:
Ktoré odkazy na webe sledovať.
Ako má prehliadač reagovať (prefetch vs. prerender).
Aké podmienky musia byť splnené.
Ako to využíva WordPress?
Od verzie 6.5 WordPress automaticky pridáva tento tag do hlavičky stránky (ak to umožňuje téma a hosting). Cieľom je zlepšiť rýchlosť používateľského zážitku – hlavne pri blogoch a weboch, kde sa očakáva navigácia medzi článkami. Od verzie 6.8 WordPress automaticky pridáva tento tag do hlavičky stránky „natvrdo a automaticky“.
WordPress dynamicky generuje JSON štruktúru podľa toho, aké odkazy sú na stránke. Takto napríklad vieš pripraviť prerender budúceho článku, ak má používateľ kurzor na odkaze.
Výhody použitia:
Rýchlosť: Stránky sa môžu načítať vopred – výsledkom je takmer okamžité zobrazenie.
Lepší UX: Predikcia zámerov používateľa znižuje latenciu.
Jednoduchá implementácia: WordPress to rieši automaticky – vývojár sa nemusí o nič starať.
Nevýhody a riziká:
Zvýšené zaťaženie servera: Pri prerenderi sa stránka načíta aj vtedy, keď si ju používateľ napokon nepozrie.
Script speculationrules nie je html5 valídnym prvkom v HTML zdroji webu.
Možné problémy s analytikou: Prerenderovaná stránka môže odoslať dáta (napr. do Google Analytics), hoci ju používateľ nikdy nevidel.
Ochrana osobných údajov: Treba dávať pozor, čo sa načítava – najmä pri personalizovaných stránkach.

Ako vidíte na obrázku mnohé weby (nie všetky) majú po aktualizácii WordPressu 6.8 problém s testovaním webov (v prostredí Lighthouse prehliadačov Edge, Chrome, Firefox, Chrome Dev a Chrome Canary). Po deaktivácii scriptu „speculationrules“ sa opäť bez problémov dá web testovať vo všetkých prehliadačoch. Na tejto stránke gitu sa o tom probléme píše. Asi potrebujeme viac času kým testery zvalidujú tento samostatný script, no nateraz je to menší problém v HTML5. Takže rozhodnutie je vždy na vývojároch, čo bude pre konkrétny web dôležitejšie. Koniec koncov každý vývojár si napíše svoje pravidlá aké mu vyhovujú. Nie každý vývojár chce dodržovať normy a už je ich aj tak veľa, ktorí netušia čo je WCAG A a nedodržujú ani normu WCAG AA alebo WCAG AAA.
Ako túto funkciu pre script speculationrules vypnúť
Pre pokročilých vývojárov je možné funkciu špecifikovať vlastnými pravidlami, alebo ju úplne vypnúť napríklad cez functions.php.

Záver:
<script type="speculationrules">
predstavuje jeden z moderných prístupov, ako zlepšiť používateľský zážitok prostredníctvom predikcie interakcií. WordPress túto možnosť elegantne integruje, no vývojári by mali porozumieť jej dopadom a prípadne ju upraviť podľa potrieb svojho webu a potrieb. Predikcie interakcií je síce výborná voľba no netreba zabudnúť, že samotný script nie je pre html zdrojový kód valídnym zápisom. Preto je rozhodovanie vždy zložitým elementom pre daný webový projekt.
Pre vás pripravil Pavol Knut Navrátil