Il tuo sito può anticipare il prossimo clic? Speculative Loading e Speculation Rules API in WordPress
La Speculation Rules API permette al browser di preparare una pagina prima che l’utente ci clicchi sopra. Da WordPress 6.8 lo Speculative Loading è integrato nel core e attivo per i visitatori non loggati, con un’impostazione prudente: prefetch al momento della pressione sul link. Si può spingere oltre con il prerender e con un’anticipazione più “impaziente”, ma carrello, checkout, aree riservate e statistiche vanno progettati con attenzione.
Un clic. Una schermata bianca. Un indicatore che gira. Anche quando il sito è ben ottimizzato, ogni passaggio da una pagina all’altra comporta un’attesa: il browser deve chiedere il documento al server, riceverlo, scaricare le risorse e disegnare la pagina. Pochi decimi di secondo sommati, pagina dopo pagina, cambiano la percezione della velocità di un sito.
E se il browser potesse iniziare quel lavoro un attimo prima del clic? È esattamente l’idea dietro la Speculation Rules API, una tecnologia che oggi è già presente su moltissimi siti WordPress, spesso senza che i proprietari lo sappiano.
Cos’è la Speculation Rules API
La Speculation Rules API è un’interfaccia del browser che consente a una pagina di indicare quali link è probabile che l’utente apra e come prepararli in anticipo. Le regole vengono scritte in un blocco <script type="speculationrules"> in formato JSON: il browser le legge e decide, in base all’interazione dell’utente, quando avviare il precaricamento.
Sostituisce tecniche più vecchie come <link rel="prefetch"> e il deprecato <link rel="prerender">, con un vantaggio importante: invece di elencare URL fissi, si possono definire regole sui link presenti nella pagina (per esempio “tutti i link interni, tranne il carrello”).
Interazione
L’utente punta o preme un link interno: il browser riceve il segnale.
Precaricamento
La pagina di destinazione viene scaricata o preparata in background.
Navigazione
Al clic, parte del lavoro è già fatto: il passaggio può risultare quasi immediato.
Prefetch e prerender: due modi di anticipare
Le regole possono chiedere al browser due livelli di preparazione, molto diversi tra loro per guadagno di tempo e consumo di risorse.
| Prefetch | Prerender | |
|---|---|---|
| Cosa fa | Scarica in anticipo il documento HTML della pagina. | Carica e renderizza l’intera pagina in background, script compresi. |
| Guadagno | Elimina l’attesa della risposta del server; CSS, JS e immagini vanno ancora caricati. | Può rendere la navigazione praticamente istantanea. |
| Costo | Basso: una richiesta HTML in più. | Più alto: memoria, banda ed esecuzione di JavaScript. |
| Rischi | Contenuti: se la pagina non viene aperta, la richiesta è sprecata. | Anche statistiche, script di terze parti e azioni che cambiano dati. |
| In WordPress | È la modalità predefinita del core. | Va attivato esplicitamente (plugin o codice). |
Eagerness: quando il browser si muove
Oltre al “cosa”, le regole stabiliscono il “quando”, attraverso il parametro eagerness (letteralmente “impazienza”). Secondo la documentazione di Chrome:
Conservative
Si attiva quando l’utente preme il mouse o tocca il link. Il vantaggio è piccolo ma le richieste sprecate sono quasi nulle. È il valore predefinito di WordPress.
Moderate
Su desktop si attiva dopo circa 200 millisecondi di hover sul link (o alla pressione); su mobile usa euristiche basate sui link visibili dopo lo scorrimento. È il compromesso più usato.
Eager e immediate
Partono quasi subito: al minimo hover o non appena il link entra nello schermo, fino al caricamento immediato delle regole. Vanno riservati a pochi URL molto probabili.
Chrome applica anche dei limiti: con conservative, e con moderate su desktop, mantiene al massimo 2 prefetch e 2 prerender contemporanei, sostituendo i più vecchi. È una protezione utile, ma non elimina il carico aggiuntivo sul server.
WordPress lo supporta già: cosa fa il core dalla versione 6.8
Con WordPress 6.8 (aprile 2025) il team Performance ha portato nel core la funzione già testata con il plugin Speculative Loading, usato su oltre 50.000 siti. Secondo la nota tecnica ufficiale, la funzione è attiva di default sul frontend, con alcune eccezioni importanti:
- Modalità prefetch con eagerness conservative: il core sceglie l’opzione più prudente (valore
auto). - Disattivata per gli utenti loggati: amministratori, clienti con account e membri di aree riservate non ne beneficiano, per ragioni di sicurezza e privacy.
- Disattivata senza permalink “belli”: se gli URL sono del tipo
?p=123, la funzione non si attiva. - Esclusioni automatiche: area admin, login, file di plugin, temi e caricamenti, link con parametri nella query string, link
rel="nofollow"e link con la classeno-prefetch(ono-prerenderper il prerender).
Le versioni successive hanno lasciato invariato questo comportamento di base. Il passaggio di default a moderate sui siti con cache è stato discusso dal team Performance ma rinviato. Da WordPress 7.1, invece, anche gli hosting possono impostare modalità ed eagerness predefinite tramite le costanti WP_SPECULATIVE_LOADING_DEFAULT_MODE e WP_SPECULATIVE_LOADING_DEFAULT_EAGERNESS.
Cosa significa in pratica: se il tuo sito è aggiornato, probabilmente usa già lo Speculative Loading. Ma con l’impostazione di base il vantaggio è contenuto: il browser guadagna solo il tempo che passa tra la pressione e il rilascio del tasto del mouse.
Come verificare se il tuo sito lo usa
Controlla il codice da visitatore
Apri il sito in una finestra in incognito (da non loggato), visualizza il sorgente e cerca speculationrules. Se trovi un blocco JSON con "prefetch" e "conservative", è attiva la configurazione del core.
Osserva i caricamenti in DevTools
In Chrome apri Strumenti per sviluppatori → Application → Background services → Speculative loads: vedrai le regole attive e quali URL sono stati precaricati o scartati.
Verifica un prerender
Dopo aver aperto una pagina, nella console esegui performance.getEntriesByType('navigation')[0].activationStart: un valore diverso da zero indica che la pagina era stata prerenderizzata.
Ricorda che un sistema di cache può servire una versione della pagina generata prima dell’aggiornamento: se le regole non compaiono, svuota la cache e ricontrolla.
Come configurarlo: plugin o codice
Ci sono due strade per passare dalla configurazione di base a una più incisiva.
1. Il plugin ufficiale. Il plugin Speculative Loading del team Performance di WordPress aggiunge una sezione in Impostazioni → Lettura e, di default, usa prerender con eagerness moderate. Permette di scegliere modalità, livello di anticipazione e, se necessario, l’estensione agli utenti autenticati.
2. Un filtro nel codice. Chi preferisce non aggiungere plugin può usare il filtro wp_speculation_rules_configuration in uno snippet PHP. Il controllo is_array() mantiene la funzione disattivata dove il core l’ha già spenta, per esempio per gli utenti loggati.
add_filter( 'wp_speculation_rules_configuration', function ( $config ) {
if ( is_array( $config ) ) {
$config['mode'] = 'prerender';
$config['eagerness'] = 'moderate';
}
return $config;
} );Per escludere percorsi specifici si usa il filtro wp_speculation_rules_href_exclude_paths, che riceve anche la modalità attiva: utile, per esempio, per lasciare il prefetch su un’area ma vietarne il prerender.
add_filter( 'wp_speculation_rules_href_exclude_paths', function ( $paths, $mode ) {
$paths[] = '/carrello/*';
$paths[] = '/checkout/*';
$paths[] = '/mio-account/*';
return $paths;
}, 10, 2 );Nel template, un singolo link si esclude aggiungendo la classe no-prefetch o no-prerender. Gli slug dell’esempio vanno adattati a quelli reali del sito.
La velocità va progettata: dove serve attenzione
Anticipare un clic significa anche eseguire una richiesta che l’utente potrebbe non fare mai. Su un sito vetrina il rischio è minimo; su un e-commerce o un sito con aree riservate le scelte vanno ponderate.
- Azioni che cambiano dati. Link come “aggiungi al carrello”, logout o conferme non devono essere precaricati: la documentazione di Chrome cita proprio carrello, login e logout come esempi di effetti collaterali da evitare.
- Contenuti che dipendono dallo stato. Contatori del carrello, messaggi personalizzati e stato di accesso dovrebbero aggiornarsi al momento dell’attivazione della pagina, non durante il prerender.
- Statistiche e pixel. Google Analytics, per impostazione predefinita, attende che la pagina prerenderizzata venga effettivamente aperta. Altri strumenti di misurazione, pixel pubblicitari e script personalizzati potrebbero comportarsi diversamente: vanno verificati prima di attivare il prerender.
- Carico sul server. Ogni speculazione non seguita da un clic è una richiesta in più. Una cache di pagina efficiente rende molto più sostenibili le modalità più anticipatorie.
- Browser supportati. La funzione è disponibile nei browser basati su Chromium (Chrome, Edge, Opera). Safari la tiene ancora dietro un flag sperimentale e Firefox non la supporta: in questi browser il sito funziona normalmente, semplicemente senza il beneficio.
Il principio: lo Speculative Loading è un miglioramento progressivo. Non sostituisce un sito leggero, un hosting adeguato e una buona cache: li valorizza. Su una pagina lenta da generare, precaricarla in anticipo nasconde l’attesa solo in parte.
Quanto conta per l’esperienza utente e per la SEO
Il beneficio principale riguarda la velocità percepita durante la navigazione: chi passa dalla home a un servizio, da un articolo a un altro o dal catalogo a una scheda prodotto trova la pagina pronta prima. Secondo i dati raccolti dal team Performance di WordPress su oltre 50.000 siti, l’adozione della funzione ha migliorato di circa l’1,9% (alla mediana) il tasso di superamento del Largest Contentful Paint, una delle metriche Core Web Vitals.
È un miglioramento misurabile ma va letto con equilibrio: non esiste un “bonus” di posizionamento garantito per chi attiva lo Speculative Loading. Riguarda soprattutto le navigazioni interne, non il primo ingresso da Google, che dipende dalle prestazioni della singola pagina. Il vantaggio reale è un sito più fluido, che invoglia a visitare più pagine e a completare un contatto o un acquisto.
La velocità è una delle componenti di un sito progettato per persone e motori di ricerca: ne abbiamo parlato anche nella checklist per un sito AI-Ready.
Domande frequenti sullo Speculative Loading in WordPress
Lo Speculative Loading è già attivo sul mio sito WordPress?
Se il sito usa WordPress 6.8 o successivo e i permalink personalizzati, probabilmente sì, per i visitatori non loggati: il core usa prefetch con eagerness conservative. Puoi verificarlo cercando “speculationrules” nel codice sorgente della pagina aperta in incognito.
Qual è la differenza tra prefetch e prerender?
Il prefetch scarica in anticipo solo il documento HTML della pagina; il prerender prepara l’intera pagina in background, già renderizzata. Il prerender è più rapido ma consuma più risorse e richiede più attenzione a statistiche e script.
Lo Speculative Loading può creare problemi a un e-commerce WooCommerce?
Può farlo se vengono precaricati link che modificano dati, come “aggiungi al carrello” o logout, o pagine come carrello e checkout. Il core esclude già i link con parametri e non si attiva per gli utenti loggati, ma con configurazioni più spinte conviene escludere esplicitamente le aree sensibili.
Funziona su tutti i browser?
No. È supportato dai browser basati su Chromium, come Chrome, Edge e Opera. Safari lo offre solo dietro un flag sperimentale e Firefox non lo supporta: in quei browser il sito funziona normalmente, senza il precaricamento.
Migliora il posizionamento su Google?
Non direttamente. Può migliorare le metriche di caricamento delle pagine visitate durante la navigazione interna e l’esperienza complessiva, ma non è un fattore di ranking a sé e non garantisce posizioni migliori.
Serve un plugin per attivare il prerender?
Non obbligatoriamente. Il plugin ufficiale Speculative Loading offre un’interfaccia in Impostazioni → Lettura, ma lo stesso risultato si ottiene con il filtro wp_speculation_rules_configuration in uno snippet PHP.
Fonti ufficiali e approfondimenti
- Make WordPress Core — Speculative Loading in 6.8
- Make WordPress Core — WordPress 6.8 performance improvements
- WordPress.org — plugin Speculative Loading
- WordPress Trac — ticket #64066 sull’eagerness predefinita
- Chrome for Developers — Prerender pages in Chrome
- MDN — Speculation Rules API
Le modifiche alla configurazione dello Speculative Loading andrebbero testate in un ambiente di prova, soprattutto su e-commerce e siti con aree riservate.
Il tuo sito è davvero veloce?
Un sito professionale non deve soltanto essere bello: deve offrire un’esperienza di navigazione fluida. Albano L. – Siti Web, Grafiche e Social può analizzare prestazioni, cache e Speculative Loading del tuo sito WordPress e configurarli in modo sicuro.
Richiedi una verifica del tuo sito →