IndexNow spiegato: notifica i motori di ricerca quando pubblichi.

Aggiorna i URL di spinta ai motori di ricerca dopo il deploy.

Indice

I siti statici e i blog cambiano ogni volta che si effettua un deployment. I motori di ricerca che supportano IndexNow possono apprendere questi cambiamenti senza attendere il prossimo crawl automatico.

Questa pagina spiega perché ciò è importante, cosa fa il protocollo e come integrarlo in un flusso di lavoro reale, inclusi schemi che puoi riutilizzare nella tua automazione o in un piccolo CLI in Go.

Monitoraggio web e infrastruttura

Perché usare IndexNow su un sito statico o Hugo

Se deployi Hugo su S3 o simili stai già distribuendo HTML e un sitemap.xml. I crawler alla fine leggeranno lo sitemap, ma il tempismo non è sotto il tuo controllo. Dopo una migrazione o un lotto di nuovi post, ti interessa più l’indicizzazione immediata rispetto a “qualche volta la prossima settimana”.

IndexNow è un canale push. Effetti un POST con un elenco di URL canonici che ti interessano. I motori partecipanti (incluso Microsoft Bing e altri elencati su indexnow.org) possono dare priorità al recupero di quegli URL. Non sostituisce buoni reindirizzamenti URL o il linking interno, ma chiude il cerchio tra git push e consapevolezza del motore di ricerca.

Cosa fa IndexNow

A un livello elevato, ogni invio è un POST HTTPS con JSON concettualmente simile a questo:

  • host - l’host del tuo sito (ad esempio www.example.com)
  • key - la tua stringa segreta pregenerata
  • keyLocation (opzionale) - URL completo del file di verifica se non si trova nel percorso predefinito
  • urlList - uno o più URL assoluti su quell’host di cui vuoi segnalare l’aggiornamento

I motori rifiutano chiavi errate, host sbagliati o payload malformati. Il successo è solitamente HTTP 200 o 202 a seconda dell’endpoint.

Puoi leggere le regole complete e l’elenco dei partner sul sito ufficiale. Il modello mentale importante è la prova di proprietà del dominio tramite un file di testo più un elenco esplicito di URL, non parole chiave o contenuto della pagina.

Come preparare il tuo sito

File chiave e hostname

  1. Scegli una chiave - una stringa casuale lunga (trattala come un segreto).
  2. Pubblica https://your-domain/<key>.txt con solo la chiave come corpo (una riga).
  3. Usa la stessa chiave nel tuo CLI o automazione quando effettui il POST.
  4. Invia solo URL su quell’host che desideri vengano ricontrollati (nuovi post, pagine aggiornate o destinazioni di reindirizzamento).

Dopo aver spostato molti URL contemporaneamente, potresti voler notificare percorsi in lotto. IndexNow accetta più URL in una singola richiesta, soggetto ai limiti di ogni motore.

Modi per inviare URL

  • POST manuale - va bene per il debugging, usa curl con JSON.
  • Plugin - alcuni CMS e pannelli di hosting includono toggle per IndexNow.
  • Il tuo script di deploy - dopo hugo e il caricamento, chiama un piccolo binario con l’elenco degli URL cambiati o l’URL del tuo sitemap.

Per un flusso di lavoro Hugo, i trigger naturali sono “dopo la build” o “dopo la sincronizzazione sul bucket”. Passa URL HTTPS completi che corrispondano al tuo sito live, inclusi www vs apex se è quello che servi.

Un piccolo CLI in Go (opzionale)

Caratteristiche che potresti implementare

Un comando da riga di comando Go minimale si adatta bene a IndexNow perché il payload è un piccolo POST JSON e puoi collegarlo agli script di deploy. Un design tipico include:

  • URL singoli o multipli come argomenti posizionali
  • --sitemap per recuperare un sitemap.xml e inviare ogni <loc> (con --limit opzionale)
  • Più motori in parallelo tramite --engines (ad esempio indexnow per l’aggregatore globale, o endpoint per provider)
  • Flag o variabili d’ambiente come INDEXNOW_KEY, INDEXNOW_WEBSITE_URL e INDEXNOW_ENGINES
  • Output verboso con -v per il debugging delle risposte 403 o 422

Compila con go build o go install, installa il binario nel tuo PATH, poi chiamalo dopo la pubblicazione:

indexnow --key YOUR_KEY --website https://www.example.com https://www.example.com/new-post/

Per un aggiornamento completo del sito dopo il deploy, puoi passare --sitemap con l’URL del tuo sitemap pubblico. Documenta i codici di risposta e l’elenco dei motori nel tuo README e mantieni uno snippet shell publish-then-index accanto a ciò che attiva il tuo deploy statico.

Il post Best LLMs for OpenCode - tested locally ha usato “implementare un notifica IndexNow in Go” come benchmark di codifica - utile se vuoi vedere come diversi modelli gestiscono la stessa specifica e compiti strutturati.

Suggerimenti pratici

  • Preferisci il target del motore indexnow quando vuoi che una singola invio si propaghi attraverso l’infrastruttura condivisa (vedi searchengines.json e specchia quell’elenco nel tuo client se supporti più endpoint).
  • 429 significa rallenta. 403 di solito significa chiave o hostname non corrispondente. Correggi prima la posizione del file chiave o l’hostname.
  • IndexNow non sostituisce i reindirizzamenti 301 quando rinomini i percorsi. Notifica dopo che i reindirizzamenti sono attivi.

Vedi anche