IndexNow avvisa i motori di ricerca nel momento in cui una pagina cambia. Serve un file di verifica alla radice del tuo dominio. La configurazione la fa il nostro team in onboarding, e poi gli invii sono nostri: questa pagina serve a controllare il lavoro, o a farlo da soli.
Cos'è IndexNow
IndexNow è un protocollo aperto che permette a un sito di dire ai motori di ricerca quando una pagina viene aggiunta, aggiornata o cancellata, invece di aspettare che un crawler se ne accorga. I motori che lo implementano sono elencati nella specifica ufficiale, linkata in fondo alla pagina.
Come funziona la configurazione
Si genera una chiave segreta. Si ospita alla radice del dominio un piccolo file di testo che contiene quella chiave, così i motori verificano chi possiede il sito. La stessa chiave arriva a noi sul canale condiviso, e da lì in poi i tuoi URL vengono inviati a ogni cambiamento.
1. Genera una chiave
La chiave è lunga da 8 a 128 caratteri, solo lettere, numeri e trattini. Va bene una stringa esadecimale casuale: un UUID senza i trattini, o openssl rand -hex 16 da terminale.
texta1b2c3d4e5f67890abcdef12345678902. Ospita il file della chiave
Un file di testo UTF-8 che si chiama come la chiave e contiene esattamente la chiave: nient'altro, niente virgolette, niente spazi in più. Deve rispondere alla radice del dominio. Scegli il tuo framework nella lista qui accanto per i passaggi.
urlhttps://yoursite.com/a1b2c3d4e5f67890abcdef1234567890.txt3. Mandaci la chiave
Quando il file è online, la chiave arriva a noi su Slack o via email e gli invii partono. Basta un file per dominio: la stessa chiave vale per tutti i motori che supportano IndexNow.
HTML e siti statici
Per un sito statico su FTP o cPanel, oppure su S3, Netlify, Vercel, GitHub Pages e simili.
1. Crea il file della chiave
Un file di testo semplice che si chiama come la chiave. Contiene solo la chiave: niente virgolette, niente a capo, niente HTML.
texta1b2c3d4e5f67890abcdef12345678902. Caricalo nella radice del sito
Il file va nella stessa cartella di index.html, spesso chiamata public_html, www o htdocs. Con FTP, SFTP o il file manager dell'hosting, come preferisci.
3. Verifica
Apri questo URL nel browser. Deve restituire la chiave come testo semplice. Un 404 o la home vuol dire che il file non viene servito dalla radice.
urlhttps://yoursite.com/a1b2c3d4e5f67890abcdef1234567890.txt
React (Vite o CRA)
Vite e Create React App copiano entrambi il contenuto della cartella public nella radice del sito al build, che è esattamente quello che serve a IndexNow.
1. Metti il file in public/
Un file in public/{tua-chiave}.txt che contiene solo la chiave.
texta1b2c3d4e5f67890abcdef12345678902. Builda e pubblica
Lancia il comando di build che usi di solito e pubblica. Da lì il file viene servito dalla radice del dominio.
bash# Vite npm run build && npm run preview # Create React App npm run build3. Verifica
Apri l'URL nel browser. Deve restituire la chiave come testo semplice.
urlhttps://yoursite.com/a1b2c3d4e5f67890abcdef1234567890.txt
Next.js
Identico per App Router e Pages Router: Next.js serve alla radice del sito tutto quello che sta nella cartella public.
1. Aggiungi il file in public/
Nella radice del progetto, in public/{tua-chiave}.txt.
texta1b2c3d4e5f67890abcdef12345678902. Pubblica
Fai il deploy su Vercel o sul tuo hosting come sempre. Il file non va sotto app/ o pages/: solo quello dentro public/ viene servito come asset statico dalla radice.
3. Verifica
Apri l'URL nel browser. Deve restituire la chiave come testo semplice.
urlhttps://yoursite.com/a1b2c3d4e5f67890abcdef1234567890.txt
WordPress
Tre strade. Scegli quella che segue come gestisci di solito il sito.
Opzione 1: un plugin SEO (consigliata)
Rank Math, Yoast SEO e All in One SEO supportano IndexNow. Attivalo nelle impostazioni del plugin e copia la chiave generata. Il file della chiave lo ospita il plugin, quindi non devi caricare niente.
Opzione 2: carica il file via FTP o cPanel
Senza un plugin SEO, il file della chiave va nella radice dell'installazione WordPress, la cartella che contiene wp-config.php, di solito public_html.
texta1b2c3d4e5f67890abcdef1234567890Opzione 3: una route in functions.php
Se non puoi caricare file ma puoi modificare il tema, questo snippet serve la chiave. Sostituisci YOUR_KEY con quella vera.
phpadd_action('init', function () { $key = 'YOUR_KEY'; if ($_SERVER['REQUEST_URI'] === '/' . $key . '.txt') { header('Content-Type: text/plain; charset=utf-8'); echo $key; exit; } });Verifica
Apri l'URL nel browser. Deve restituire la chiave come testo semplice.
urlhttps://yoursite.com/a1b2c3d4e5f67890abcdef1234567890.txt
Vue.js e Nuxt
Vue 3 con Vite e Nuxt 3 hanno entrambi una cartella public il cui contenuto viene servito dalla radice del sito.
Vue 3 (Vite)
Il file va in public/{tua-chiave}.txt.
texta1b2c3d4e5f67890abcdef1234567890Nuxt 3
Il file va in public/{tua-chiave}.txt nella radice del progetto Nuxt. Nuxt lo copia nella radice del sito al build.
Verifica
Apri l'URL nel browser. Deve restituire la chiave come testo semplice.
urlhttps://yoursite.com/a1b2c3d4e5f67890abcdef1234567890.txt
Cloudflare
Due opzioni, a seconda che il sito giri su Cloudflare Pages o dietro un Worker.
Cloudflare Pages
Il file della chiave va nella cartella di output statico del repository, di solito public o dist a seconda del framework. Fai commit e push: Pages lo serve dalla radice.
texta1b2c3d4e5f67890abcdef1234567890Cloudflare Workers
Con un Worker davanti al sito, è lui a intercettare la richiesta e a rispondere con la chiave. Sostituisci YOUR_KEY con quella vera.
javascriptexport default { async fetch(request, env, ctx) { const url = new URL(request.url); const key = "YOUR_KEY"; if (url.pathname === "/" + key + ".txt") { return new Response(key, { headers: { "Content-Type": "text/plain; charset=utf-8" }, }); } // Pass through everything else return fetch(request); }, };Verifica
Apri l'URL nel browser. Deve restituire la chiave come testo semplice.
urlhttps://yoursite.com/a1b2c3d4e5f67890abcdef1234567890.txt
Gli altri documenti
Il resto della documentazione, nello stesso posto.