SEO con Cloudflare Workers
Come applicare modifiche SEO tecniche su Cloudflare Workers: l’handler fetch, HTMLRewriter per iniettare canonical/hreflang/JSON-LD, i redirect basati su KV, la Cache API contro la cache edge contro Cache-Control, il confine del cloaking e il modo in cui Bot Fight Mode può bloccare Googlebot.
Lingue
1 segnale di evidenza in questa pagina
- Dati della fonte collegatigooglebot.json
La SEO con Cloudflare Workers consiste nel fare SEO tecnica sul runtime serverless di Cloudflare: un Worker vede solo le richieste corrispondenti alla sua route e ciascuna entra in un handler fetch dove riscrivi richiesta, header della risposta e corpo della risposta. La riscrittura del corpo passa da HTMLRewriter, il meccanismo reale per iniettare un canonical, correggere hreflang o aggiungere JSON-LD senza un deployment del CMS, e deve essere idempotente nei casi di risposta mancante, duplicata e non HTML. I redirect su larga scala appartengono a KV o D1; Bulk Redirects/Rules sono più semplici per piccoli insiemi, ma scegli un solo proprietario per URL così i sistemi non entrano in conflitto. Tre cose diverse condividono la parola cache — Workers Cache API, cache edge Cloudflare e Cache-Control dell’origine — e confonderle è il motivo per cui un tag iniettato sembra non comparire: diagnostica per chiave della cache, livello, TTL e invalidazione. La regola ferrea è il cloaking: applica logica identica a Googlebot e agli utenti. Il rischio più specifico dei Workers è Bot Fight Mode, che può bloccare Googlebot su una pipeline che le allow-rule WAF non raggiungono. Pubblica ogni modifica SEO con metadati di versione registrati e rollback testato, poi verifica con GSC URL Inspection e l’header CF-Cache-Status. Vedi l’hub Edge SEO per il concetto generale.
TL;DR — I Cloudflare Workers sono piccoli programmi che girano sulla rete Cloudflare, davanti al tuo sito reale. Un Worker può aggiungere un redirect, correggere un meta tag o iniettare un tag canonical mentre la pagina passa, senza toccare il CMS né aspettare gli sviluppatori. Questa pagina è la versione pratica e a livello di codice della più ampia idea di Edge SEO: come farlo davvero, nello specifico su Workers. L’unica regola che non puoi infrangere è questa: qualunque modifica faccia un Worker, deve applicarsi nello stesso modo a Google e ai visitatori reali. Mostrare a Google qualcosa di diverso è cloaking.
Cos’è un Cloudflare Worker, in parole semplici
Se il tuo sito è su Cloudflare, ogni richiesta di un visitatore (o di Googlebot) passa dalla rete Cloudflare prima di raggiungere il server effettivo. Un Worker è un piccolo script che puoi eseguire in quel punto del percorso. Vede la richiesta in entrata e la risposta in uscita e può modificare entrambe. Evidence for this claim Cloudflare Workers run code on Cloudflare's network and can inspect or modify requests and responses. Scope: Cloudflare Workers request handling. Confidence: high · Verified: Cloudflare Workers: How Workers works
Questo è il suo principale vantaggio per la SEO: puoi correggere cose su pagine che altrimenti non riusciresti a modificare. Sei bloccato su una piattaforma chiusa? Aspetti da settimane che uno sviluppatore aggiunga un tag canonical? Un Worker può farlo in pochi minuti, dal vivo, senza un deployment del sito stesso.
Per cosa si usano i Workers nella SEO
- Redirect — inviano vecchi URL verso quelli nuovi al livello edge, anche quando sono migliaia.
- Correzione o aggiunta di tag — iniettano un tag canonical, correggono un title, aggiungono hreflang o inseriscono dati strutturati, tutto senza modificare il sorgente della pagina.
- Riscrittura degli header — aggiungono o correggono elementi come
X-Robots-Tag.
La regola che non puoi infrangere
Qualunque cosa faccia il tuo Worker, deve farla per tutti. Se mostri a Googlebot una pagina diversa da quella che vede una persona reale per manipolare il ranking, si tratta di cloaking ed è contrario alle regole di Google. Evidence for this claim Google defines serving materially different content to search engines and users to manipulate rankings as cloaking and a spam-policy violation. Scope: Google Search spam policy; legitimate personalization is context-dependent. Confidence: high · Verified: Google: Spam policies — cloaking Il modello sicuro è semplice: applica la stessa logica a ogni richiesta, indipendentemente da chi la invia. (L’hub Edge SEO tratta questa regola in profondità: questa pagina presuppone che tu conosca già il concetto e voglia il metodo specifico per Cloudflare.)
I due modi per farti male da solo
La maggior parte delle storie del tipo “Cloudflare ha danneggiato la mia SEO” non riguarda affatto il codice del Worker:
- Un’impostazione che blocca i bot. La Bot Fight Mode di Cloudflare può bloccare o sottoporre per errore Googlebot a una verifica. Se Google non riesce a recuperare le tue pagine, tutto il resto è irrilevante.
- Confusione sulla cache. Cloudflare ha più di un tipo di cache e, se non sai quale stai toccando, una modifica che hai pubblicato può sembrare non essere “comparsa”.
Vuoi il codice vero — un handler fetch, un esempio di HTMLRewriter, una tabella di redirect KV — oltre ai dettagli su cache e blocco dei bot? Passa alla scheda Avanzato.
TL;DR — Un Cloudflare Worker vede solo le richieste che corrispondono alla route configurata e intercetta ciascuna di esse in un unico handler
fetch, dove esegui tre operazioni in sequenza: riscrivere la richiesta, riscrivere gli header della risposta e riscrivere il corpo della risposta tramiteHTMLRewriter. Questo è il meccanismo reale dietro “iniettare un canonical” o “correggere un title”: deve essere idempotente e testato con risposte mancanti, duplicate e non HTML, non solo con il caso ideale. I redirect su larga scala vivono in KV (ricerca rapida per chiave) o D1 (relazionale); Bulk Redirects/Rules gestiscono più semplicemente gli insiemi piccoli e in genere preferisco i redirect a livello edge a quelli sul server, ma scegli un solo proprietario per ogni URL, perché un redirect del Worker, un Bulk Redirect e un redirect dell’origine possono attivarsi tutti sullo stesso percorso. Tre cose diverse condividono la parola “cache”: la Workers Cache API (caches.default), la cache edge di Cloudflare eCache-Controldell’origine; confonderle è la causa abituale del “mio tag non è comparso”. Diagnostica la stalezza per chiave della cache, livello, TTL e invalidazione invece di andare a tentativi. Le indicazioni di Google su ETag / If-None-Match / 304 sono direttamente applicabili a un Worker che possiede la risposta. Il confine del cloaking: stessa logica per ogni richiedente. Il rischio più specifico dei Workers è la Bot Fight Mode, che gira fuori dal WAF Ruleset Engine, quindi le normali regole “allow” non la raggiungono. Pubblica ogni modifica che incide sulla SEO con metadati di versione registrati, un rollback testato e una condizione di arresto; poi verifica con GSC URL Inspection e l’headerCF-Cache-Status.
Cosa è e cosa non è questo articolo
Questo è il compagno pratico, a livello di codice, dell’hub Edge SEO. L’hub contiene la definizione generale, la tabella di confronto tra piattaforme (Workers, Akamai, Fastly, Lambda@Edge, Vercel, Netlify), la decisione Snippets contro Workers e il trattamento completo della regola sul cloaking. Qui non la sto riscrivendo. Questa pagina approfondisce di un livello Cloudflare Workers: il runtime su cui gira proprio il Worker di questo sito, collegato tramite run_worker_first in wrangler.toml, con API reali invece di affermazioni vaghe sul fatto che l’edge compute possa iniettare tag.
Una nota prima del codice: Google non ha documentazione specifica per Cloudflare Workers. Le indicazioni ufficiali che governano questo tema (policy sul cloaking, caching HTTP, crawling tramite CDN) sono generali e valgono per qualunque implementazione edge. Preferisco dirlo chiaramente invece di far intendere che esista un documento Google che non esiste.
Come si colloca un Worker nel percorso richiesta/risposta
Un Worker è uno script serverless che gira su isolate V8. Ogni richiesta instradata entra tramite un handler fetch. Evidence for this claim A Cloudflare Worker receives HTTP requests through a fetch handler. Scope: Cloudflare Workers handlers. Confidence: high · Verified: Cloudflare Workers: Fetch handler L’espressione “instradata verso” in quella frase ha un significato concreto: un Worker vede solo le richieste che corrispondono alla sua route o al suo custom domain; tutto il resto non raggiunge mai l’handler fetch. Se due route possono corrispondere allo stesso URL, prevale il pattern più specifico. Prima di fidarti del comportamento di un Worker per un determinato URL, verifica quindi che la route corrisponda davvero e controlla quale versione pubblicata sia attiva su quella route (gli ambienti Wrangler e i rollout graduali fanno sì che la versione che serve il traffico non sia sempre quella nell’editor). Dentro l’handler puoi eseguire tre operazioni distinte, in ordine:
- Riscrivere la richiesta prima che raggiunga l’origine.
- Riscrivere gli header della risposta mentre torna indietro.
- Riscrivere il corpo della risposta tramite
HTMLRewriter.
Ecco la forma minima:
export default {
async fetch(request, env, ctx) {
// 1. (optionally) inspect/modify the request
const response = await fetch(request); // hit the origin
// 2. rewrite headers
const headers = new Headers(response.headers);
headers.set("X-Robots-Tag", "index, follow");
// 3. rewrite the body with HTMLRewriter (see next section)
return new Response(response.body, { ...response, headers });
},
};Il team di SALT.agency, che ha coniato “edge SEO” a partire dalla ricerca sui Cloudflare Workers, ha costruito i propri strumenti come una catena di filtri: un filtro per la richiesta, uno per la risposta e uno per il corpo. È lo stesso modello in tre fasi, solo con nomi diversi. Tenere separate nella mente queste tre fasi mantiene leggibile un Worker.
Riscrivere l’HTML con HTMLRewriter
HTMLRewriter è il parser HTML in streaming di Cloudflare ed è l’API reale dietro ogni trucco del tipo “inietta un tag”. Evidence for this claim Cloudflare HTMLRewriter provides selector-based handlers that can transform streamed HTML elements. Scope: Cloudflare Workers HTMLRewriter API. Confidence: high · Verified: Cloudflare Workers: HTMLRewriter Registri handler di elementi con .on(selector, handler) e l’handler riceve getAttribute / setAttribute, prepend / append, setInnerContent e replace. Poiché lavora in streaming, non devi mantenere in memoria l’intero documento.
Iniettare o correggere un tag canonical
class CanonicalHandler {
constructor(url) { this.url = url; }
element(el) { el.setAttribute("href", this.url); }
}
const rewriter = new HTMLRewriter()
.on('link[rel="canonical"]', new CanonicalHandler("https://example.com/preferred/"));
return rewriter.transform(response);Se la pagina non ha alcun canonical, colleghi un handler a head e usi append per aggiungerne uno invece di modificare un tag esistente. In ogni caso, ricorda l’insegnamento della parte sulla canonicalizzazione: rel=canonical è un suggerimento, non un comando. Un Worker ti permette di impostarlo in modo coerente su un’intera piattaforma, ma la decisione resta a Google.
Il CanonicalHandler qui sopra presume che un tag esista già e che la risposta sia HTML. In produzione nessuna delle due cose è garantita e sbagliare significa ritrovarsi con due tag canonical sulla stessa pagina invece di uno. Prima di pubblicare una riscrittura di questo tipo, rendila idempotente e testala con:
- Nessun canonical esistente — il tuo handler deve rilevare il caso mancante e aggiungerne uno con
appendahead, non ignorare silenziosamente il caso in cui nessunlink[rel="canonical"]corrisponda. - Un canonical duplicato o malformato già presente — decidi se rimuovere il tag estraneo o lasciare che la riscrittura ne aggiunga un secondo (la seconda opzione è un bug reale, non un caso limite: i canonical duplicati sono un problema comune creato dagli stessi implementatori).
- Una risposta non HTML — una route API, un’immagine o una risposta di redirect passata dallo stesso Worker non dovrebbe essere elaborata da
HTMLRewriter; limita la trasformazione alle route e ai tipi di contenuto che hai verificato davvero. - Eseguire due volte la trasformazione sulla stessa risposta (un retry, un
fetchannidato) — conferma che non aggiunga nuovamente un secondo tag.
Aggiungere o correggere gli alternate hreflang
Lo stesso meccanismo, guidato dalla configurazione. Aggiungi un link[rel="alternate"] per ogni locale a head. Se gli alternate sono per locale e relazionali, quella configurazione appartiene a D1; se è una semplice tabella di ricerca, KV è sufficiente. Il punto è che HTMLRewriter li inietta nello stesso modo per ogni richiedente: non devi diramare in base allo user agent.
Iniettare dati strutturati JSON-LD
new HTMLRewriter().on("head", {
element(head) {
head.append(
`<script type="application/ld+json">${JSON.stringify(schema)}</script>`,
{ html: true }
);
},
});Limiti CPU che diventano rilevanti su larga scala
Una dichiarazione di un concorrente che contesterei è “sub-millisecondo, senza vincoli”. Il vero limite superiore è il tempo CPU: 10 ms nel piano gratuito, 30 ms nei piani a pagamento (il tempo di attesa di fetch secondo l’orologio non conta: conta il tempo CPU). Per le riscritture tipiche non te ne accorgerai mai. Per passaggi HTMLRewriter pesanti su pagine molto grandi è un vincolo reale intorno a cui progettare, non allarmismo.
Redirect al livello edge: KV contro D1 contro Rules
In genere preferisco avere i redirect al livello edge (CDN) invece che sul server: scaricano il lavoro dall’origine e si applicano prima che la pagina venga generata. Nello specifico di Cloudflare, nella mia guida Ahrefs sui redirect per la SEO ho spiegato che hai diverse opzioni: redirect singoli o bulk, redirect rules, page rules oppure Workers con coppie chiave-valore, o ancora un Worker che modifica gli header per aggiungere un redirect.
Per una tabella gestita da un Worker, KV è la sede naturale: una ricerca rapida, eventualmente consistente, con chiave basata sull’URL.
export default {
async fetch(request, env) {
const url = new URL(request.url);
const target = await env.REDIRECTS.get(url.pathname); // KV namespace
if (target) return Response.redirect(target, 301);
return fetch(request);
},
};Scegli D1 quando i redirect sono relazionali (SQL per locale o per segmento che vuoi interrogare). E riconosci quando un Worker è eccessivo: per un insieme piccolo e statico di redirect, i Bulk Redirects o le Redirect Rules di Cloudflare sono più semplici e non richiedono codice. Non costruire a mano un Worker KV per cinquanta redirect.
Scegli un solo proprietario per un determinato URL e non lasciare che un redirect del Worker, un Bulk Redirect, una Redirect Rule e un redirect dell’origine si applichino tutti allo stesso percorso: sono sistemi separati che possono attivarsi sulla stessa richiesta e, quando corrispondono più sistemi, invece di avere un redirect pulito devi fare il debug della precedenza. Prima di aggiungere un redirect in qualunque punto, verifica se ne esiste già uno per quel percorso negli altri sistemi e scegli il livello in base alla complessità della corrispondenza (1:1 semplice contro pattern), alla scala e a chi deve osservarlo o ripristinarlo. Un redirect del Worker vive nel codice e nei log; un Bulk Redirect o una Rule vive nella dashboard ed è più facile da controllare o ripristinare per chi non sviluppa.
Caching: tre cose diverse con un solo nome fuorviante
Questa è la sezione che gli articoli della concorrenza saltano e quella che genera più confusione del tipo “perché la mia modifica non è comparsa”. Tre livelli separati condividono la parola cache:
- Workers Cache API —
caches.defaultecaches.open(). È una cache programmabile, con ambito Worker, che leggi e scrivi nel codice. - Cache edge di Cloudflare — la cache CDN che serve i tuoi asset, distinta dalla Cache API.
Cache-Controldell’origine — gli header impostati dall’origine (o dal tuo Worker), che influenzano entrambi i livelli precedenti e ciò che fa Googlebot.
Confondili e giurerai che una modifica non è stata pubblicata, quando in realtà viene servita da un livello che non hai svuotato.
Quando una modifica non compare davvero, non tirare a indovinare: diagnosticala livello per livello:
- Chiave della cache. Quali attributi della richiesta determinano se due richieste colpiscono la stessa voce in cache (l’URL e, a volte, header o cookie se la chiave della cache li include)? Una riscrittura che varia in base a qualcosa che non fa parte della chiave può servire la variante sbagliata.
- Quale livello ha servito la risposta. Controlla
CF-Cache-Status(HIT/MISS/EXPIRED/DYNAMIC) per capire se ha risposto la cache edge o se la richiesta ha raggiunto il tuo Worker. - Posizione/stato. La cache Cloudflare è distribuita tra data center: uno svuotamento o un deployment nuovo non invalida necessariamente e istantaneamente ogni posizione edge.
- TTL e regola che lo ha impostato. Conferma se il TTL è controllato da una regola di cache, da un header
Cache-Controldell’origine o da un header impostato direttamente dal Worker. - Invalidazione. Hai svuotato l’URL specifico, svuotato tutto o fatto affidamento sulla scadenza del TTL? Una voce della Cache API posseduta dal Worker (
caches.default) ha bisogno del propriodelete()esplicito: svuotare la cache CDN non la tocca.
Cosa fa Googlebot con ETag / If-None-Match / 304
Se il tuo Worker genera o riscrive la risposta, possiede gli header di caching: per questo le indicazioni di Google sul caching HTTP del dicembre 2024 sono direttamente operative per te. Google supporta il caching HTTP euristico tramite ETag/If-None-Match e Last-Modified/If-Modified-Since, raccomanda fortemente ETag perché è meno soggetto a errori e afferma che, quando l’ETag del crawler corrisponde, il server deve restituire 304 Not Modified senza corpo. Un Worker che genera la risposta può implementare esattamente questo: calcolare un ETag, confrontarlo con If-None-Match e interrompere direttamente la richiesta con un 304, risparmiando calcolo e fornendo a Googlebot un segnale rapido e memorizzabile nella cache.
Il compromesso del recrawl con max-age
Google dice anche di valutare l’impostazione di Cache-Control: max-age per aiutare i crawler a decidere quando eseguire nuovamente il crawling. Il problema, per un Worker che riscrive l’HTML, è che un max-age aggressivo su una pagina i cui tag iniettati dal Worker sono appena cambiati può ritardare la visualizzazione dell’aggiornamento appena pubblicato da parte di Googlebot. Non applicare una lunga durata di cache all’HTML riscritto per poi dimenticartene.
Il confine del cloaking applicato ai Workers
La regola ferrea, nei termini dei Workers, è: esegui la stessa logica per ogni richiedente. La policy antispam di Google definisce il cloaking come il presentare contenuti diversi agli utenti e ai motori di ricerca per manipolare il ranking e richiama in particolare l’inserimento di testo o parole chiave in una pagina solo quando il richiedente è un motore di ricerca.
Un paio di chiarimenti, perché qui si tende a correggere troppo:
- Ispezionare lo User-Agent non è automaticamente cloaking. Registrare il traffico dei bot o servire una risposta in cache più rapidamente a qualunque client va bene. Il confine è una differenza di contenuto in base all’identità del richiedente, fatta per manipolare il ranking.
- Il test A/B diviso per pagina sui Workers è corretto. Dividere gli utenti per URL e trattare ogni richiedente nello stesso modo è legittimo. Dividere in base a chi sta chiedendo, bot contro persona, non lo è.
Un esempio pratico del modello sicuro: il gate di anteprima di questo sito è un Worker che restituisce 404 per qualsiasi percorso /preview/ a meno che un cookie non corrisponda a un segreto. Restituisce quel 404 a tutti quelli che non hanno il cookie, Googlebot compreso. Questa è esattamente la forma sicura: non nasconde una cosa ai bot mostrandone un’altra agli utenti, ma applica una regola uniformemente.
E non affidarti a un passaggio di pre-rendering solo per i bot, anche se lo implementi correttamente sui Workers. Google ha definito il dynamic rendering un workaround e non una soluzione a lungo termine; un Worker che esegue il pre-rendering solo per i bot eredita quella deprecazione.
Come un Worker può bloccare o rallentare accidentalmente Googlebot
Questo è il modo più specifico dei Workers per farti un danno da solo e, di solito, non si trova nel codice del Worker.
La Bot Fight Mode gira fuori dal Ruleset Engine
Bot Fight Mode (e Super Bot Fight Mode) può produrre falsi positivi contro crawler legittimi, incluso Googlebot. La trappola è questa: Bot Fight Mode viene valutata su una pipeline separata dal WAF Ruleset Engine, quindi le normali regole custom WAF “allow” o “skip” non la sovrascrivono. Se Bot Fight Mode sta sottoponendo Googlebot a una verifica, non risolvi con una allow-rule: devi cambiare o disabilitare la modalità stessa. (Conferma i meccanismi attuali nella documentazione Cloudflare su Bot Fight Mode e Super Bot Fight Mode prima di farci affidamento: i prodotti per bot cambiano.)
Il modello di regola custom per i bot verificati
Cloudflare espone un campo cf.client.bot e un modello di allow rule per i bot verificati, così puoi autorizzare i crawler affidabili nelle tue regole custom. È utile per il lato WAF, anche se (come detto sopra) non raggiunge Bot Fight Mode.
La CDN in sé è neutrale o positiva
Per essere chiari sul mito: la CDN Cloudflare non danneggia la SEO. Il lavoro 2024 di Google Crawling December spiega che Google aumenta la velocità di crawling quando rileva una CDN, ma che una CDN può anche bloccare accidentalmente Googlebot tramite regole WAF o per i bot e che una 503 è preferibile a un interstitial di verifica del bot. Il rischio è un Worker o un’impostazione per i bot mal configurata, non l’infrastruttura.
Verificare cosa ha ricevuto davvero Googlebot
Dopo ogni deployment di un Worker, conferma ciò che ha ricevuto davvero un crawler: non darlo per scontato:
- GSC URL Inspection → Test Live URL. Recupera la pagina come Google e mostra l’HTML renderizzato, così puoi confermare che canonical, hreflang e JSON-LD iniettati siano davvero presenti.
- Controlla
CF-Cache-Statusinsieme all’HTML.HIT/MISS/EXPIREDindica se stai osservando una risposta fresca del Worker o una risposta dalla cache: è il modo più rapido per scoprire che un “cambiamento non comparso” è in realtà un problema del livello di cache. - Recupera la pagina direttamente come Googlebot. Invia la richiesta con lo user agent di Googlebot e confronta i risultati, ma ricorda che la corrispondenza della stringa non prova nulla sull’identità: verifica il Googlebot reale con DNS inverso e diretto rispetto agli intervalli IP pubblicati da Google (vedi la scheda Scripts).
Igiene del deployment specifica per i Workers
Un wrangler deploy completato con successo dice che lo script è stato pubblicato, non che Googlebot riceva l’output renderizzato corretto. Tratta ogni modifica a un Worker che incide sulla SEO come una release registrata, non come un semplice push:
- Limita l’ambito delle route. Non eseguire un Worker su
/*come impostazione predefinita. Associalo ai percorsi che gli servono nei pattern delle route diwrangler.toml, così un bug non può mandare fuori uso l’intero sito. - Controlla i limiti attuali prima di promettere la scalabilità. I limiti di tempo CPU, numero di subrequest e dimensione dello script variano in base al piano e cambiano nel tempo: verifica la pagina dei limiti attuali di Cloudflare prima di progettare una riscrittura intorno a una soglia specifica, invece di affidarti a un numero ricordato.
- Registra i metadati di versione della release. Il modello Cloudflare di versioni e deployment tiene traccia della versione del sorgente, della data di compatibilità, dei binding e delle route per ogni deployment: annota quale versione è attiva su quale route, così l’affermazione “il Worker fa X” può essere verificata rispetto a ciò che è davvero pubblicato, non rispetto a ciò che hai nell’editor.
- Versiona e fai rollback con gli ambienti Wrangler. Pubblica in un ambiente di staging, distribuisci gradualmente per percentuale e mantieni la possibilità di tornare immediatamente alla versione precedente.
- Usa log con ambito limitato per monitorare il rollout, tenendo presenti i loro limiti. I Workers Logs e il tail dei log possono aiutare a fare debug di un rollout graduale, ma i log sono campionati e conservati per una finestra limitata: trattali come evidenza circoscritta alle richieste che hanno catturato, non come un registro completo di ogni visita dei crawler.
- Imposta una condizione di arresto e testa il rollback prima di averne bisogno. Decidi in anticipo quale comportamento osservato (tasso di errore, risposta sbagliata in un controllo a campione, calo del crawl rate) interrompe il rollout e conferma che il percorso di rollback funzioni davvero, invece di presumerlo.
- Svuota la cache come parte del deployment. Poiché entrano in gioco tre livelli di cache, fai dello svuotamento/invalidazione una fase esplicita della pubblicazione della riscrittura, non un ripensamento.
Una nota su Bing e uno sguardo al futuro
Anche Bing non ha indicazioni specifiche su Cloudflare o sull’edge. Ma poiché un deployment di Worker è immediato mentre i crawl non lo sono, IndexNow è l’abbinamento naturale: attivalo nel momento in cui viene pubblicata una modifica a una tabella di redirect o a un tag gestita dal Worker, così Bing (e gli altri motori partecipanti) esegue rapidamente un nuovo crawling. Inoltre, Cloudflare ha introdotto la canonicalizzazione imposta all’edge come funzionalità di prodotto (“Redirects for AI Training”): i crawler verificati per l’addestramento dell’AI ricevono un 301 verso il tuo URL canonical con un’unica impostazione. È un utile contrasto rispetto alla logica canonical costruita a mano nel tuo Worker e un promemoria del fatto che “servire ai crawler qualcosa di diverso dagli utenti” è un modello su cui Microsoft ha espresso pubblicamente scetticismo per altre funzionalità Cloudflare rivolte ai crawler AI: un buon controllo intuitivo per qualsiasi Worker condizionale in base al bot.
Per il quadro più ampio — confronto tra piattaforme, Snippets contro Workers e aspetti di coda di sviluppo e governance — torna all’hub Edge SEO.
Riepilogo AI
Una sintesi della versione Avanzata:
- Cloudflare Workers SEO = fare SEO tecnica sul runtime Cloudflare basato su isolate V8. È l’implementazione a livello di codice e specifica per Workers del concetto generale di Edge SEO: vedi quell’hub per definizione, confronto tra piattaforme e approfondimento sul cloaking.
- Un Worker vede solo ciò a cui corrisponde la sua route. La configurazione di route/dominio e la precedenza determinano quali richieste raggiungono l’handler
fetch: conferma la route e la versione pubblicata prima di fidarti del comportamento di un Worker per un URL. - Un handler
fetch, tre fasi: riscrivere la richiesta, riscrivere gli header della risposta, riscrivere il corpo della risposta. La riscrittura del corpo passa daHTMLRewriter, il meccanismo reale per iniettare un canonical, correggere hreflang o aggiungere JSON-LD. Rendi la riscrittura idempotente e testala con risposte mancanti, duplicate, malformate e non HTML, non solo con il caso ideale. - Redirect: KV per ricerche rapide per chiave, D1 per configurazioni relazionali, Bulk Redirects/Rules per insiemi statici piccoli. Patrick preferisce i redirect a livello edge a quelli sul server, ma scegli un solo proprietario per URL: un redirect del Worker, un Bulk Redirect, una Redirect Rule e un redirect dell’origine possono attivarsi tutti sullo stesso percorso.
- Tre cache condividono una parola: la Workers Cache API (
caches.default), la cache edge Cloudflare eCache-Controldell’origine. Confonderle causa il “la mia modifica non è comparsa”. Diagnosticane la causa per chiave della cache, livello, TTL e invalidazione invece di andare a tentativi. - Le indicazioni di Google sul caching con ETag/If-None-Match/304 (dicembre 2024) sono direttamente applicabili: un Worker che possiede la risposta può interrompere direttamente con un 304, ma un
max-ageaggressivo può ritardare il recrawl di una pagina appena modificata. - Regola sul cloaking: stessa logica per ogni richiedente. Ispezionare lo User-Agent non è automaticamente cloaking; lo è una differenza di contenuto basata sull’identità del richiedente per manipolare il ranking.
- Rischio maggiore creato da sé: Bot Fight Mode gira fuori dal WAF Ruleset Engine, quindi le normali allow-rule non la raggiungono: devi cambiare la modalità stessa.
- Pubblica con criterio: controlla i limiti attuali del piano prima di promettere scalabilità, registra i metadati di versione (data di compatibilità, binding, route) per ogni release, usa log con ambito limitato (campionati, non un registro completo) per osservare il rollout e imposta una condizione di arresto con rollback testato prima di averne bisogno.
- Verifica con GSC URL Inspection (Test Live URL) e l’header
CF-Cache-Status; tieni sotto controllo i limiti CPU (10 ms gratuiti / 30 ms a pagamento) nelle riscritture pesanti.
Documentazione ufficiale
Non esiste una documentazione SEO specifica per Cloudflare Workers da parte di Google o Bing: le indicazioni che governano il tema sono generali. Le fonti primarie più utili sono divise tra i motori di ricerca (policy e caching) e Cloudflare (API del runtime).
Google (vale per qualunque implementazione edge)
- Policy antispam — cloaking — il confine rigido che ogni logica Worker deve rispettare.
- Crawling December: caching HTTP (2024) — ETag / If-None-Match / 304 / max-age, direttamente applicabili a un Worker che possiede la risposta.
- Crawling December: CDN e crawling (2024) — come una CDN incide sul crawl rate e come le regole per i bot possono bloccare Googlebot.
- Dynamic rendering (deprecato) — perché un Worker che esegue il pre-rendering solo per i bot eredita un modello deprecato.
- Panoramica dei crawler e fetcher Google — user agent e intervalli IP pubblicati per la verifica.
Cloudflare (il runtime)
- HTMLRewriter — l’API del parser HTML in streaming.
- Cache API —
caches.default/caches.open(). - Come funziona la cache — la differenza tra Cache API e cache edge.
- Route e domini — corrispondenza delle route, precedenza e richieste che attivano davvero un Worker.
- Bulk Redirects — il sistema di redirect senza codice con cui un redirect Worker può entrare in conflitto o sovrapporsi.
- Limiti dei Workers — limiti attuali di CPU, subrequest e dimensione dello script, sensibili al piano e alla data: verificali direttamente invece di fidarti di un numero ricordato.
- Versioni e deployment — deployment versionati o graduali e rollback.
- Workers Logs — log delle invocazioni, tail e limiti di campionamento/conservazione.
- Bot Fight Mode / Super Bot Fight Mode — le impostazioni per i bot che possono bloccare Googlebot.
- Consentire traffico da bot verificati — il modello di regola custom
cf.client.bot.
Bing — non esiste una pagina specifica su edge/Workers; IndexNow è l’abbinamento rilevante per un nuovo crawling immediato dopo il deployment.
Citazioni dalla fonte
Dichiarazioni pubbliche. Ogni link Google porta direttamente al passaggio citato.
Google — il confine del cloaking
- “Cloaking refers to the practice of presenting different content to users and search engines with the intent to manipulate search rankings and mislead users.” (traduzione) «Il cloaking consiste nel presentare contenuti diversi agli utenti e ai motori di ricerca con l’intento di manipolare il posizionamento nei risultati e ingannare gli utenti». — Google Search Central, “Spam policies for Google web search” (traduzione) «Norme antispam per la Ricerca Google». Vai alla citazione
- “Inserting text or keywords into a page only when the user agent that is requesting the page is a search engine, not a human visitor” (traduzione) «Inserire testo o parole chiave in una pagina soltanto quando lo user agent che la richiede appartiene a un motore di ricerca, e non a un visitatore umano» — elencato come esempio di cloaking. Vai alla citazione
Google — caching HTTP (Crawling December, 2024)
- “Google’s crawling infrastructure supports heuristic HTTP caching as defined by the HTTP caching standard, specifically through the ETag response- and If-None-Match request header, and the Last-Modified response- and If-Modified-Since request header.” (traduzione) «L’infrastruttura di crawling di Google supporta il caching HTTP euristico definito dallo standard di caching HTTP, in particolare tramite l’header di risposta ETag e l’header di richiesta If-None-Match, nonché tramite l’header di risposta Last-Modified e l’header di richiesta If-Modified-Since». Vai alla citazione
- “We strongly recommend using ETag because it’s less prone to errors and mistakes (the value is not structured unlike the Last-Modified value).” (traduzione) «Consigliamo vivamente di usare ETag perché è meno soggetto a errori e imprecisioni: a differenza del valore Last-Modified, il suo valore non è strutturato». Vai alla citazione
- “If the ETag value sent by the crawler matches the current value the server generated, your server should return an HTTP 304 (Not modified) status code with no HTTP body.” (traduzione) «Se il valore ETag inviato dal crawler corrisponde al valore corrente generato dal server, il server deve restituire un codice di stato HTTP 304 (Not Modified) senza corpo HTTP». Vai alla citazione
- “While not required, consider also setting the max-age field of the Cache-Control header to help crawlers determine when to recrawl the specific URL.” (traduzione) «Anche se non è obbligatorio, valuta inoltre di impostare il campo max-age dell’header Cache-Control per aiutare i crawler a stabilire quando eseguire nuovamente il crawling dell’URL specifico». Vai alla citazione
Google — dynamic rendering (deprecato)
- “Dynamic rendering was a workaround and not a long-term solution for problems with JavaScript-generated content in search engines.” (traduzione) «Il rendering dinamico era una soluzione temporanea, non una soluzione a lungo termine per i problemi dei contenuti generati con JavaScript nei motori di ricerca». Vai alla citazione
Io — sui redirect al livello edge
- “I typically prefer to have redirects on the edge (CDN-level) over having them on the server.” (traduzione) «In genere preferisco gestire i redirect all’edge, a livello di CDN, anziché sul server». — dalla mia guida Ahrefs, 11 Types of Redirects & Their SEO Impact. Riportato dal mio articolo pubblicato; conferma la formulazione esatta sulla pagina live prima di trattarla come una citazione vincolante.
Cloudflare / SALT.agency — perché usare Workers per i redirect
- “we needed to implement simple redirects, which should be easy to create on the majority of platforms but wasn’t supported” (traduzione) «Dovevamo implementare redirect semplici, che sulla maggior parte delle piattaforme dovrebbero essere facili da creare, ma non erano supportati». — Igor Krestov e Dan Taylor, “Diving into Technical SEO using Cloudflare Workers” (traduzione) «Viaggio nella SEO tecnica con Cloudflare Workers», articolo sul blog Cloudflare. Riportato tramite una sintesi dell’articolo Cloudflare, non confermato come sottostringa esatta: da verificare nuovamente sulla fonte prima di usarlo come blocco citato alla lettera.
Quale strumento usare per quale lavoro?
“Devo aggiungere dei redirect.”
- Un insieme piccolo e statico (qualche dozzina, senza logica)? → Bulk Redirects o Redirect Rules di Cloudflare. Nessun Worker, nessun codice.
- Redirect migliaia di URL indicizzati per chiave? → Ricerca in un Worker + KV.
- Redirect relazionali (per locale, per segmento, interrogabili)? → Worker + D1.
- Devi eseguire redirect e riscrivere gli header nello stesso passaggio? → Un Worker (le Rules non possono fare entrambe le cose).
“Devo iniettare o correggere un tag (canonical, hreflang, title, JSON-LD).”
- → Un Worker con
HTMLRewriter. Non esiste un prodotto Cloudflare senza codice per riscritture arbitrarie del corpo: questo è il lavoro dei Workers.
“Il crawling di Googlebot è diminuito dopo che ho aggiunto Cloudflare.”
- Sospetta prima Bot Fight Mode / Super Bot Fight Mode, non il tuo Worker. Controlla se sta sottoponendo Googlebot a una verifica e ricorda che una allow-rule WAF non lo risolverà: devi cambiare la modalità stessa.
- Poi controlla le regole custom WAF e verifica se ai bot viene servito un
503o un interstitial. - Solo a quel punto controlla il codice del Worker e l’ambito delle route.
“Il tag che ho iniettato non compare.”
- Controlla
CF-Cache-Status.HIT/EXPIRED? Stai vedendo una risposta in cache: svuota il livello corretto (Workers Cache API contro cache edge) e riprova. MISSma la risposta è ancora errata? Ora il problema è nella logica del Worker o nell’ambito della route. Conferma con GSC URL Inspection.
“Dovrei fare il pre-rendering solo per i bot su un Worker?”
- → No. È dynamic rendering, che Google ha deprecato. Preferisci il rendering SSR/statico applicato a tutti.
Checklist SEO per Cloudflare Workers
Prima di pubblicare un Worker di riscrittura
- La route è limitata ai percorsi che ne hanno bisogno in
wrangler.toml, non/*per riflesso, e hai confermato quale versione pubblicata è effettivamente attiva su quella route. - Il Worker applica una logica identica a ogni richiedente (nessun ramo di contenuto bot contro persona).
- Gli handler
HTMLRewritersono idempotenti e testati con un tag mancante, un tag esistente duplicato/malformato e una risposta non HTML, non solo con il caso ideale. - Per i redirect hai scelto lo strumento giusto: Bulk Redirects/Rules (piccoli/statici), KV (indicizzati per URL su larga scala) o D1 (relazionali), e hai confermato che nessun altro sistema di redirect possieda già quell’URL.
- I limiti attuali del piano (CPU, subrequest, dimensione dello script) sono stati controllati direttamente, non ricordati.
-
Cache-Controlsull’HTML riscritto non è così aggressivo da ritardare il recrawl delle pagine modificate. - I metadati di versione (data di compatibilità, binding, route) sono registrati per la release, con un percorso di rollback testato e una condizione di arresto definita per il rollout.
Controllo della cache
- Sai quale dei tre livelli (Workers Cache API / cache edge /
Cache-Controldell’origine) stai toccando. - Se il Worker possiede la risposta, imposta un
ETagcorretto e può interrompere direttamente con304. - Lo svuotamento/l’invalidazione della cache è una fase esplicita del deployment.
Accesso dei bot
- Bot Fight Mode / Super Bot Fight Mode non sottopone Googlebot a una verifica (controllato direttamente: una allow-rule WAF non la sovrascrive).
- La regola custom per i bot verificati (
cf.client.bot) è presente se applichi un filtro lato WAF. - Quando devi rallentare i bot, ricevono un
503, non un interstitial di verifica.
Verifica dopo il deployment
- GSC URL Inspection → Test Live URL conferma che il tag iniettato sia nell’HTML renderizzato.
-
CF-Cache-Statusè stato controllato (HIT/MISS/EXPIRED) per sapere se stai vedendo una copia in cache. - IndexNow è stato attivato (Bing/altri) se è stata appena pubblicata una modifica alla tabella di redirect o a un tag.
- La versione è gestita tramite ambienti Wrangler con un rollback testato.
I modelli mentali
1. Un handler, tre fasi.
Ogni Worker è un handler fetch e tutto ciò che fai vive in una delle tre fasi, in ordine: riscrivere la richiesta → riscrivere gli header della risposta → riscrivere il corpo della risposta (HTMLRewriter). Individua in quella sequenza ciò che stai modificando prima di scrivere una riga.
2. “Cache” sono tre cose, non una.
Workers Cache API (caches.default) ≠ cache edge Cloudflare ≠ Cache-Control dell’origine. Quando una modifica “non compare”, chiediti a quale livello stai guardando davvero prima di toccare il codice.
3. Il test del cloaking: identità contro logica. Diramare in base a chi sta chiedendo per modificare il contenuto = cloaking. Applicare la stessa logica a tutti, anche se quella logica ispeziona lo User-Agent per i log o la velocità, va bene. Chiediti: “un utente reale riceverebbe esattamente ciò che ha ricevuto Googlebot?”
4. L’ordine delle responsabilità per un calo del crawling. Bot Fight Mode → regole WAF → codice del Worker → ambito della route. Le impostazioni per i bot girano su una pipeline che le tue allow-rule non raggiungono, quindi sospettale per prime.
5. Il Worker possiede la risposta, quindi possiede la semantica della cache.
Se il tuo Worker genera o riscrive il corpo, è responsabile di ETag, 304 e max-age. È una capacità (interrompere direttamente con un 304) e una responsabilità (mettere troppo in cache e ritardare il recrawl).
SEO per Cloudflare Workers — cheat sheet
Scegli lo strumento per i redirect
| Situazione | Usa |
|---|---|
| Qualche dozzina di redirect statici | Bulk Redirects / Redirect Rules (senza codice) |
| Migliaia, indicizzati per URL | Worker + KV |
| Relazionali / per locale, interrogati | Worker + D1 |
| Redirect e riscrittura degli header insieme | Worker |
I tre livelli di cache
| Livello | Cos’è | Come lo tocchi |
|---|---|---|
| Workers Cache API | Programmabile, con ambito Worker | caches.default, caches.open() |
| Cache edge Cloudflare | La cache CDN | regole di cache / svuotamento |
Cache-Control dell’origine | Header della risposta | la tua origine o il tuo Worker |
API degli handler HTMLRewriter
getAttribute/setAttribute— leggono/impostano un attributo del tag (per esempiohrefcanonical)prepend/append— aggiungono markup dentro un elemento (per esempio un tag dentrohead)setInnerContent— sostituisce il contenuto di un elementoreplace— sostituisce interamente l’elemento
Fatti rapidi
- Limite CPU: 10 ms gratuito / 30 ms a pagamento (le attese
fetchsecondo l’orologio non contano). - Cloaking = differenza di contenuto in base all’identità del richiedente per manipolare il ranking, non “il Worker ha letto lo User-Agent”.
- Bot Fight Mode gira fuori dal WAF Ruleset Engine: le allow-rule non la raggiungono, quindi cambia la modalità.
- Verifica una modifica al Worker: GSC Test Live URL + header
CF-Cache-Status. - Google raccomanda
ETag; ETag corrispondente → restituisci 304 senza corpo.
Verifica cosa ha ricevuto davvero Googlebot — dopo un deployment del Worker
Recupera la pagina come Googlebot e confronta (shell)
# Fetch as a normal browser
curl -sS -A "Mozilla/5.0" https://example.com/page/ -o user.html -D user.headers
# Fetch as Googlebot's UA
curl -sS -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" \
https://example.com/page/ -o bot.html -D bot.headers
# The bodies should be identical — a diff is a cloaking red flag
diff user.html bot.html && echo "identical (good)"
# Check what cache layer served it
grep -i "cf-cache-status" bot.headers # HIT / MISS / EXPIREDConferma il Googlebot reale (le stringhe UA sono facili da falsificare) — DNS inverso + diretto
# 1) Reverse DNS the IP from your logs — must end in googlebot.com / google.com
host 66.249.66.1
# 2) Forward DNS that hostname back — must resolve to the same IP
host crawl-66-249-66-1.googlebot.comSe uno dei due controlli fallisce, non è Googlebot. Puoi anche confrontare gli intervalli pubblicati da Google nel file googlebot.json.
Leggi i tag iniettati dall’HTML renderizzato (console DevTools)
// Paste into the browser console on the live page to confirm your Worker's injection
[...document.querySelectorAll('link[rel="canonical"]')].map(l => l.href);
[...document.querySelectorAll('link[rel="alternate"][hreflang]')]
.map(l => `${l.hreflang} -> ${l.href}`);
[...document.querySelectorAll('script[type="application/ld+json"]')].map(s => s.textContent);Un’interruzione minima con ETag / 304 dentro un Worker
export default {
async fetch(request, env, ctx) {
const res = await fetch(request);
const body = await res.text();
const etag = `"${await sha1(body)}"`; // your hash of choice
if (request.headers.get("If-None-Match") === etag) {
return new Response(null, { status: 304 }); // no body, per Google's guidance
}
const headers = new Headers(res.headers);
headers.set("ETag", etag);
return new Response(body, { ...res, headers });
},
}; Strumenti per costruire e verificare la SEO dei Workers
- Wrangler — CLI di Cloudflare per sviluppare, versionare e pubblicare Workers (ambito delle route, ambienti, rollback, segreti). Qui vive l’igiene del deployment.
- HTMLRewriter — il parser HTML in streaming integrato, l’API per ogni riscrittura del corpo.
- Workers KV / D1 — lo storage per tabelle di redirect e configurazione (KV per ricerche per chiave, D1 per SQL).
- GSC URL Inspection → Test Live URL — recupera e renderizza la pagina come Google, così puoi confermare che canonical/hreflang/JSON-LD iniettati siano effettivamente arrivati.
- Header
CF-Cache-Status(tramitecurl -Io DevTools Network) — indicaHIT/MISS/EXPIRED, così sai se stai guardando una copia in cache o una risposta fresca del Worker. - IndexNow — invia un ping a Bing e agli altri motori partecipanti nel momento in cui viene pubblicata una modifica gestita dal Worker.
- Analisi dei log server — la fonte di verità per capire se Googlebot reale e verificato sta raggiungendo le route del tuo Worker.
Verifica la coerenza SEO e il comportamento della cache di un Worker
Review this Cloudflare Worker fetch handler as an SEO edge change. Trace the request,
response-header, body-rewrite, redirect, and caching paths. Return:
1. Every branch based on user agent, bot status, cookie, geography, or request header
2. Whether Googlebot/no-cookie traffic can receive different indexable content or SEO tags
3. HTMLRewriter selectors that fail when a tag is missing or create duplicates
4. Redirect lookups that can chain, loop, or fall through unexpectedly
5. Each use of the Cache API, Cloudflare edge cache behavior, and origin Cache-Control—kept as separate layers
6. Cache keys that could mix variants or preserve a stale canonical/robots/header change
7. A minimal test matrix for users, verified bots, cache hit/miss, and representative URLs
Apply the same content and SEO logic to bots and users. Flag intentional personalization
for human review rather than calling it cloaking automatically. Do not invent Cloudflare
settings, bindings, routes, cache rules, or origin behavior that are not in my input.
Worker code, bindings, routes, and relevant cache/security configuration:
[PASTE INPUT]Esamina una modifica HTMLRewriter prima del deployment
Audit this HTMLRewriter implementation for one SEO task: [CANONICAL / HREFLANG / JSON-LD].
Check whether it handles existing, missing, and duplicate elements; produces valid absolute
URLs or JSON; applies to the intended route cohort; and behaves identically for every
requester. Then return corrected code plus raw-response and rendered-response tests.
Do not add product, organization, locale, URL, or schema facts that are not supplied.
Code and expected per-route output:
[PASTE INPUT] Mettiti alla prova: SEO per Cloudflare Workers
Cinque domande rapide sull’esecuzione della SEO tecnica con Cloudflare Workers. Scegli una risposta per ciascuna, poi controlla.
Risorse che meritano il tuo tempo
I miei articoli correlati
- “11 Types of Redirects & Their SEO Impact” (traduzione) «11 tipi di redirect e il loro impatto sulla SEO», articolo Ahrefs — le opzioni di redirect su Cloudflare e il motivo per cui preferisco i redirect al livello edge rispetto a quelli sul server.
- “The Beginner’s Guide to Technical SEO” (traduzione) «Guida introduttiva alla SEO tecnica», articolo Ahrefs — dove si collocano le modifiche edge nel quadro più ampio.
- “JavaScript SEO Issues & Best Practices” (traduzione) «Problemi SEO di JavaScript e buone pratiche», articolo Ahrefs — il lato del rendering, rilevante per qualunque tentazione di pre-rendering all’edge.
I miei interventi
- “Fine-Tune your Technical SEO, Page Speed, and Security” (traduzione) «Ottimizza SEO tecnica, velocità delle pagine e sicurezza», intervista Marketing Speak — qui descrivo come uso Cloudflare Workers per riscrivere prima che la pagina venga vista dall’utente e per trasferire i redirect alla CDN. Trascrizione di un’intervista parlata: tratta le formulazioni specifiche come parafrasi, non come citazioni esatte.
Dal settore
- “Diving into Technical SEO using Cloudflare Workers” (traduzione) «Viaggio nella SEO tecnica con Cloudflare Workers», articolo sul blog Cloudflare — Igor Krestov (SALT.agency) e Dan Taylor; l’origine del modello a catena di filtri (richiesta/risposta/corpo).
- “What is edge SEO?” (traduzione) «Che cos’è l’Edge SEO?», articolo Search Engine Land — il concetto trattato dall’hub principale di questo articolo, in una fonte di terze parti.
- “Edge SEO” (traduzione) «SEO all’edge», articolo di Dan Taylor — dell’autore che ha coniato il termine a partire dalla ricerca sui Cloudflare Workers.
- “HTMLRewriter” (traduzione) «HTMLRewriter», documentazione Cloudflare — il riferimento canonical per l’API di riscrittura del corpo.
- “How the cache works” (traduzione) «Come funziona la cache», documentazione Cloudflare — chiarisce la differenza tra Cache API e cache edge.
- “Redirects for AI Training” (traduzione) «Redirect per l’addestramento dell’AI», articolo sul blog Cloudflare — la canonicalizzazione imposta all’edge come funzionalità di prodotto, un utile contrasto rispetto alla logica costruita a mano in un Worker.
Vai più a fondo / di lato
- Edge SEO — l’hub principale: concetto generale, confronto tra piattaforme, Snippets contro Workers e regola sul cloaking nella sua forma completa.
Cronologia modifiche
Aggiornato il 20 ago 2026.
Riepilogo editoriale e dettagli registrati delle modifiche.Dettagli delle modifiche
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
Confronto completo non disponibile — non è stata archiviata alcuna istantanea precedente per questa revisione.
Aggiornato il 20 ago 2026.
Riepilogo editoriale e dettagli registrati delle modifiche.Dettagli delle modifiche
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
Confronto completo non disponibile — non è stata archiviata alcuna istantanea precedente per questa revisione.
Aggiornato il 18 lug 2026.
Riepilogo editoriale e dettagli registrati delle modifiche.Dettagli delle modifiche
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
Confronto completo non disponibile — non è stata archiviata alcuna istantanea precedente per questa revisione.