Edge SEO: la SEO all’edge

L’edge SEO, o SEO serverless, apporta modifiche tecniche — reindirizzamenti, tag e robots.txt — al livello del worker CDN, prima che la risposta raggiunga il crawler.

L’edge SEO, detta anche SEO serverless, consiste nell’apportare modifiche tecniche — reindirizzamenti, canonical, hreflang, robots.txt, meta tag e dati strutturati — al livello del worker CDN/edge, come Cloudflare Workers, Akamai EdgeWorkers, Fastly, Lambda@Edge e le soluzioni edge di Vercel o Netlify, prima che la risposta raggiunga l’utente o il crawler e senza distribuire modifiche sul backend o sul CMS. Permette di superare code di sviluppo e piattaforme bloccate. La regola inderogabile riguarda il cloaking: servi a Googlebot gli STESSI contenuti degli utenti, applica le modifiche a tutti e non creare mai logica specifica per i bot. Controlla anche il WAF e le regole anti-bot del CDN, che possono bloccare Googlebot prima dell’esecuzione del worker. Non affidarti al pre-rendering all’edge soltanto per i bot: è rendering dinamico, ormai deprecato da Google.

In breve — L’edge SEO, o SEO serverless, implementa la SEO tecnica al livello del worker CDN/edge: reindirizzamenti, canonical, hreflang, robots.txt, X-Robots-Tag, JSON-LD e test A/B suddivisi per pagina. Intercetta e riscrive la risposta prima che raggiunga l’utente o il crawler, senza distribuire modifiche sull’origine o sul CMS. Il worker opera in tre fasi: modifica della richiesta in entrata, modifica delle intestazioni in uscita e modifica del corpo della risposta. Risolve i ritardi delle code di sviluppo e i limiti di piattaforme bloccate come Shopify e Salesforce CC. Il confine invalicabile è il cloaking: applica ogni modifica a tutto il traffico e non mostrare mai a Googlebot qualcosa di diverso dagli utenti. Altre due insidie sono specifiche dell’edge: le regole WAF e anti-bot del CDN possono bloccare Googlebot in silenzio prima dell’esecuzione del worker, quindi vanno controllate rispetto agli intervalli IP di Google; inoltre, il pre-rendering riservato ai bot è strutturalmente rendering dinamico, ormai deprecato da Google. Il worker è anche un singolo punto di guasto sul percorso di ogni richiesta: versionalo, limitane l’ambito e predisponi un rollback con un clic.

Prova a sostegno di questa affermazione A CDN edge worker can execute in the request and response path and transform an origin response before delivery. Ambito: Cloudflare Workers as a concrete edge implementation. Attendibilità: alta · Verificato: Cloudflare Workers: How Workers works

Che cos’è davvero l’edge SEO

L’edge SEO consiste nell’implementare modifiche tecniche per la SEO — meta tag, canonical, hreflang, reindirizzamenti, modifiche a robots.txt, inserimento di dati strutturati, test A/B e, con cautela, pre-rendering — al livello CDN/edge tramite script worker serverless, invece di modificare il server di origine o il CMS. Il CDN diventa un intermediario attivo che intercetta, riscrive e ridistribuisce richieste e risposte prima che raggiungano utenti o crawler.

L’intuizione architetturale fondamentale è che Google vede soltanto ciò che il CDN serve. Non può sapere se è intervenuto un worker: la risposta edge è la verità canonica su ciò che contiene la pagina. È proprio questo a rendere l’edge un livello SEO tanto potente e a rendere altrettanto importante il confine del cloaking: tecnicamente nulla impedisce di servire due contenuti diversi; lo impediscono le norme.

Ho lavorato con questo approccio su larga scala. In un’intervista a Marketing Speak ho descritto in modo diretto ciò che permettono di fare i Cloudflare Workers: in pratica consentono di eseguire JavaScript per fare qualunque cosa. La differenza rispetto a un tag manager è la tempistica: all’edge si riscrive la pagina prima che l’utente la veda, mentre Google Tag Manager deve prima caricarsi nella pagina e poi apportare modifiche lato client. Su una proprietà molto grande si può puntare HTML Rewriter al sito, individuare errori su larga scala e scrivere regole per correggerli: pagine erroneamente impostate su noindex che dovrebbero essere indicizzate, nofollow che dovrebbe essere follow, titoli e meta description da riscrivere, il tutto senza distribuire nuovo codice.

Un po’ di storia aiuta a non esagerarne la portata: il termine “edge SEO” è stato coniato da Dan Taylor di SALT.agency e presentato pubblicamente al TechSEO Boost di Boston nel 2018, dove SALT ha vinto il primo premio per la ricerca sul ricorso ai Cloudflare Workers nella SEO. Come spiegò Dan, l’obiettivo era ridurre, tramite worker come quelli di Cloudflare, gli ostacoli creati da vecchie piattaforme web, code di sviluppo congestionate e sviluppatori poco collaborativi. La sua definizione canonica descrive l’edge SEO come l’implementazione di raccomandazioni SEO e correzioni tecniche e il superamento dei limiti della piattaforma tramite un’applicazione serverless su un server edge del CDN.

Perché il problema della coda di sviluppo è reale

La causa alla base è concreta. SALT citò una ricerca Moz del 2016 di Will Critchlow, secondo cui la maggior parte dei professionisti SEO vedeva implementate le proprie raccomandazioni circa sei mesi dopo averle formulate, perché le richieste del marketing passavano in secondo piano rispetto alle priorità degli altri team. L’edge SEO affronta direttamente il problema: invece di attendere uno sprint di ingegneria, si distribuisce un worker.

Le piattaforme in cui conta di più sono quelle bloccate: Shopify, che storicamente aveva un robots.txt codificato rigidamente, Salesforce Commerce Cloud e gli stack aziendali legacy in cui semplicemente non è possibile modificare ciò che serve.

Come i worker edge intercettano richieste e risposte

Un worker si trova sul percorso di richiesta e risposta e può applicare trasformazioni componibili prima di restituire il risultato.

Prova a sostegno di questa affermazione Cloudflare Workers can compose request and response transformations at the edge. Ambito: Cloudflare Workers; not a universal three-phase standard. Attendibilità: alta · Verificato: Cloudflare Workers: How Workers works

Fase 1 — Modifica della richiesta. L’utente o Googlebot invia una richiesta e il CDN la riceve prima dell’origine. Il worker può riscrivere l’URL, restituire immediatamente un reindirizzamento (un 3xx direttamente dall’edge, senza raggiungere l’origine), modificare le intestazioni della richiesta oppure lasciarla passare.

Fase 2 — Modifica delle intestazioni della risposta. L’origine restituisce una risposta; il worker può aggiungere o modificare le intestazioni di risposta: X-Robots-Tag, Link: rel=canonical, intestazioni di caching e intestazioni di sicurezza.

Fase 3 — Modifica del corpo della risposta. Il worker analizza il flusso HTML e lo riscrive: inserisce <link rel="canonical">, alternative hreflang, <title>, <meta name="robots">, <meta name="description"> o <script type="application/ld+json">; rimuove o sostituisce contenuti. HTML Rewriter di Cloudflare è lo strumento standard; le interfacce pubblicate da SALT (RequestFilter, ResponseFilter, BodyFilter) sono indipendenti e componibili.

Nei test di SALT, la latenza aggiunta era in media nell’ordine di circa 10 ms, con casi estremi fino a circa 50 ms; il team non ha rilevato variazioni statisticamente significative nella latenza di produzione con i filtri sul corpo attivi. Per la maggior parte dei siti il compromesso è trascurabile e la vicinanza del CDN all’utente può compensarlo.

Piattaforme e strumenti

L’ecosistema dei worker edge è ampio. In sintesi:

PiattaformaApproccioNote SEO
Cloudflare WorkersIsolati V8; JS/TS/WASMLa soluzione più matura per la SEO; HTML Rewriter; KV per le tabelle dei reindirizzamenti; piano gratuito da 100k richieste/giorno
Cloudflare SnippetsJS leggeroGratuiti nei piani a pagamento; ottimi per modificare intestazioni e creare reindirizzamenti semplici; nessuna archiviazione persistente o elaborazione pesante
Akamai EdgeWorkersJS all’edgeSoluzione aziendale; EdgeKV per grandi tabelle di reindirizzamenti/SKU
Fastly ComputeRust/Go/JS tramite WASMTrasformazioni HTML in streaming; supporto per Surrogate-Control
AWS Lambda@EdgeNode.js su CloudFrontRuntime Lambda completo; latenza maggiore rispetto ai worker edge puri
Vercel Routing Middleware (nuovo nome di Edge Middleware)JS, eseguito prima della cache su Vercel FunctionsNativo nelle distribuzioni Vercel; inserimento di meta tag, reindirizzamenti geografici; usa per impostazione predefinita il runtime Edge, ma può passare a Node.js/Bun
Netlify Edge FunctionsDeno; JS/TSOggetto di contesto con area geografica e cookie
SearchPilot JetStreamWASM (Go) su CloudflareTest A/B SEO aziendali all’edge, suddivisi per pagina e non per utente
RankScienceProxy CDNTest A/B SEO; si trova a valle del CDN

La distinzione tra Cloudflare Snippets e Workers è poco trattata altrove. Regola pratica per la SEO: usa Snippets per reindirizzamenti e modifiche alle intestazioni, perché sono leggeri, gratuiti nei piani a pagamento e privi di archiviazione persistente. Usa Workers per inserire contenuti nel corpo HTML, come canonical, hreflang e JSON-LD, per grandi tabelle di reindirizzamenti in KV o per test A/B con persistenza.

Una nota sugli strumenti aziendali per i test A/B: JetStream di SearchPilot è un binario WASM che, secondo la società, si colloca all’edge senza aggiungere nuovi livelli allo stack web e suddivide le pagine, non gli utenti. È questo che lo mantiene dal lato sicuro del confine del cloaking, approfondito più avanti.

Casi d’uso comuni

  • Reindirizzamenti all’edge. Conserva una tabella di reindirizzamenti in KV/EdgeKV; il worker cerca l’URL in entrata e restituisce un 301/302 direttamente dal CDN. Fastly sostiene che l’edge sia il posto migliore per i reindirizzamenti, così possono essere serviti il più velocemente possibile. È anche una soluzione per le piattaforme che non supportano i 301 e per le enormi mappe di reindirizzamento delle migrazioni.
  • Inserimento di meta tag, canonical e hreflang. Analizza in streaming <head> e inserisce ciò che il CMS non permette di impostare.
  • Modifica di robots.txt. Intercetta /robots.txt e restituisce una risposta modificata o sintetica: il classico modo per superare i limiti di Shopify e Salesforce CC.
  • Intestazioni X-Robots-Tag. Aggiunge o modifica le direttive di indicizzazione per file non HTML, come PDF e immagini, che non possono contenere un meta tag robots.
  • Inserimento di dati strutturati (JSON-LD). Aggiunge o modifica lo schema nel corpo della risposta quando la piattaforma non lo supporta o durante un blocco delle modifiche al codice.
  • Test A/B SEO nel modo corretto. Suddivide le pagine tra controllo e variante, assegnando a ogni pagina una versione vista sia da Googlebot sia da tutti gli utenti; non suddivide mai per utente. La suddivisione per pagina è sicura per Google, quella per utente è cloaking.
  • Pre-rendering dei siti JavaScript, con una riserva. È possibile servire snapshot HTML pre-renderizzati dall’edge, ma farlo soltanto per i crawler equivale al rendering dinamico.
  • Raccolta di log su piattaforme bloccate. Cloudflare Logpush e Workers possono acquisire dati di richiesta e risposta quando la piattaforma non espone log del server.
  • Ottimizzazione del crawl budget. Elimina i parametri di tracciamento dalla risposta e reindirizza i crawler dalle varianti scarne alle versioni canoniche.

Il rischio principale: il cloaking

Questo punto deve essere inequivocabile. Le norme antispam di Google definiscono il cloaking come la presentazione di contenuti diversi agli utenti e ai motori di ricerca con l’intento di manipolare il posizionamento e ingannare gli utenti. Prova a sostegno di questa affermazione Google's spam policy defines cloaking as presenting different content to users and search engines with an intent to manipulate rankings and mislead users. Ambito: Google Search spam policy. Attendibilità: alta · Verificato: Google: Spam policies — cloaking Per esempio, inserire testo o parole chiave in una pagina soltanto quando lo user agent che effettua la richiesta è un motore di ricerca anziché un visitatore umano.

Applicato all’edge SEO, significa:

  • Sicuro: inserire lo stesso tag canonical in ogni <head>; bot e utenti ricevono HTML identico.
  • Non sicuro: rilevare User-Agent: Googlebot e inserire contenuti visibili al bot ma non agli utenti.
  • Zona grigia: eseguire il pre-rendering dei contenuti JavaScript soltanto per i crawler; è strutturalmente identico al rendering dinamico.

Il test mentale: se un normale utente disconnesso che usa un dispositivo comune non può raggiungere gli stessi contenuti principali e link visibili a Googlebot, ti stai avvicinando al cloaking.

Per contestualizzare, John Mueller ha osservato che servire contenuti tramite un CDN equivale sostanzialmente a servirli normalmente. È comunissimo avere un CDN separato, per esempio per i video, e dal punto di vista di Google non c’è alcun problema se funziona per gli utenti e il contenuto è correttamente accessibile per l’indicizzazione. Il CDN non è il problema: lo è servire contenuti diversi ai bot.

Rendering dinamico e conseguenze per il pre-rendering all’edge. Google ha deprecato il rendering dinamico. La documentazione lo definisce ora una soluzione alternativa, non una risposta a lungo termine ai problemi posti ai motori dai contenuti generati con JavaScript, e consiglia invece rendering lato server, rendering statico o hydration. Il pre-rendering all’edge rivolto ai crawler è rendering dinamico trasferito sul CDN: non considerare quindi l’edge una soluzione duratura e pulita per un sito JavaScript. Le modifiche edge apportate all’HTML effettivo ricevuto da tutti equivalgono al rendering lato server e sono accettabili; il pre-rendering riservato ai bot porta con sé i problemi della deprecazione.

Altri rischi, compresi quelli specifici dell’edge

WAF e blocco dei bot, un rischio specifico dell’edge. Il livello di sicurezza del CDN opera prima del worker, quindi una richiesta bloccata non lo raggiunge affatto. Le regole WAF di Cloudflare e i controlli per i bot IA (la vecchia singola opzione “Block AI Bots” è stata sostituita dalle norme granulari Search/Agent/Training in “Configure AI bot policies”, anche se per alcuni account l’opzione precedente esiste ancora) possono prevalere su quanto indicato da robots.txt e bloccare crawler legittimi, Googlebot compreso, al livello di rete. Ciò coincide con le indicazioni “Crawling December” pubblicate da Google nel dicembre 2024: Google aumenta automaticamente la frequenza di scansione quando rileva un CDN, un vantaggio che può essere annullato se il CDN blocca per errore Googlebot tramite regole WAF o interstitial per i bot. Vale la pena seguire alla lettera le raccomandazioni di Google: per un’indisponibilità temporanea preferisci un vero 503/429 a un interstitial morbido di verifica dei bot (i timeout di rete vengono trattati come errori gravi e possono infine causare la rimozione dell’URL); controlla regolarmente le liste di blocco del WAF rispetto agli intervalli IP ufficiali di Googlebot e verifica i bot reali con il DNS inverso.

Singolo punto di guasto. Ora il worker si trova sul percorso di ogni richiesta. Un bug può rendere indisponibili tutte le pagine in una volta e gli ambienti edge possono essere più difficili da sottoporre a debug rispetto al codice di origine. Riduci il rischio limitando i worker a specifici pattern URL tramite il route matching, testando in staging, mantenendo un rollback con un clic e inserendo i worker nel controllo versione.

Insidie della cache. Se il CDN memorizza nella cache la risposta precedente al worker, le richieste successive possono ricevere la versione non modificata. Anche l’output del worker può essere memorizzato nella cache, rallentando la propagazione. Includi lo svuotamento della cache nel processo di distribuzione di ogni worker che inserisce contenuti.

Limiti di esecuzione. Nel piano gratuito, Cloudflare Workers limita a 10 ms il tempo CPU per richiesta HTTP; nei piani a pagamento il valore predefinito è 30 secondi e può essere configurato fino a 5 minuti. Cloudflare Snippets, lo strumento gemello più leggero, è limitato a 5 ms e 2 MB di memoria: è il limite da ricordare quando si analizzano HTML di grandi dimensioni. Analisi HTML molto estese o inefficienti possono comunque raggiungere il limite: i worker edge non sono adatti a elaborazioni pesanti.

Costi su larga scala. Il piano gratuito di Cloudflare, con 100k richieste al giorno, copre molti siti piccoli e medi, ma le aziende ad alto traffico devono confrontare il volume delle richieste con la tariffazione dei Workers.

Governance. Dan Taylor chiarisce che l’edge SEO non è pensata per aggirare le pratiche di sviluppo tradizionali e non dovrebbe escludere il team di ingegneria. Senza gestione delle modifiche, i worker entrano in conflitto con gli interventi del CMS, per esempio quando entrambi impostano la stessa intestazione, restano attivi dopo la correzione del problema sottostante e diventano shadow IT se non sono nel controllo versione. Mantieni un changelog, assegna un unico responsabile e informa gli sviluppatori di ogni distribuzione.

Alcuni miti da sfatare

  • “Cloudflare danneggia la SEO.” Dan Taylor ha affrontato direttamente il tema: esistono convinzioni errate secondo cui Cloudflare e altri provider sarebbero dannosi per la SEO, ma l’esperienza non le conferma. Google aumenta persino la frequenza di scansione quando rileva un CDN. Il rischio sono le regole WAF configurate male, non il CDN in sé.
  • “L’edge SEO è cloaking.” Lo è soltanto se la logica del worker serve ai bot contenuti diversi. Modifiche identiche per tutti non sono cloaking.
  • “Bisogna saper programmare.” La dashboard di Cloudflare permette di gestire comuni reindirizzamenti e modifiche alle intestazioni e alle regole di sicurezza senza creare un’applicazione personalizzata.

Come si inserisce nel quadro generale

L’edge SEO tocca molti argomenti adiacenti: i problemi di SEO JavaScript e rendering che può nascondere, e che talvolta non dovrebbe; il rendering dinamico e il motivo della sua deprecazione; i reindirizzamenti che si possono servire dall’edge durante una migrazione; hreflang e canonicalizzazione che si possono inserire; le direttive robots.txt e X-Robots-Tag che si possono riscrivere. Ognuno merita un approfondimento, ma la struttura portante dell’edge SEO è sempre la stessa: modifica la risposta prima che lasci l’edge, applica ogni cambiamento a tutti e non permettere mai al worker di mostrare a Googlebot una pagina diversa da quella degli utenti.

Aggiungi una nota dell’esperto

Fissa una citazione dell’esperto

Persona nuova? Crea il suo profilo non rivendicato in /admin/experts/ → Fissa una citazione dell’esperto prima.