Forzare l'aggiornamento della cache Open Graph di Facebook

Puoi forzare l'aggiornamento della cache Open Graph di Facebook, perché Facebook — unico tra le principali piattaforme — espone un modo programmatico per richiederlo. Puoi usare il pulsante Scrape Again del Sharing Debugger per un singolo link, oppure chiamare l'endpoint di scrape dell'API Graph con un token di accesso dell'app. Non esiste un modo per forzare WhatsApp, LinkedIn o X: non pubblicano alcuna API di questo tipo, per nessuno.

La cosa che manda tutti in crisi

Meta memorizza nella cache un'anteprima del link basata sull'URL della pagina e conserva una propria copia dell'immagine. Non rilegge la tua pagina per accorgersi che og:image ora punta da un'altra parte.

Quindi questo flusso di lavoro fallisce, ed è quello che la maggior parte delle persone prova:

Cambia l'immagine di copertina → l'URL di og:image è nuovo → presumi che Facebook la raccolga → non lo fa.

Un nuovo URL dell'immagine aggira la CDN delle immagini. Non fa nulla alla cache di Meta basata sulla pagina. Per smuovere Facebook devi comunicare a Meta che la pagina è cambiata.

Cache Basata su Svuotata da
La cache della tua pagina / CDN l'URL della pagina un purge
La cache delle anteprime dei link di Meta l'URL della pagina l'endpoint di scrape o lo Sharing Debugger
La copia dell'immagine di Meta l'URL dell'immagine un nuovo URL dell'immagine
La tua CDN delle immagini l'URL dell'immagine un nuovo URL dell'immagine

Opzione 1 — Sharing Debugger (una pagina, manuale)

Apri developers.facebook.com/tools/debug, incolla l'URL della pagina e premi Scrape Again. Meta recupera nuovamente la pagina e ricostruisce la sua anteprima in cache.

È anche il miglior validatore gratuito che hai, perché riporta ciò che Meta ha effettivamente trovato, non ciò che speravi fosse presente: og:image mancanti o duplicati, immagini irraggiungibili, formati non supportati. Due cose che non farà: non può toccare WhatsApp (cache separata, nell'app del destinatario) e non è uno strumento di catalogo — gestisce un URL alla volta, con limiti di frequenza, e richiede una persona davanti.

Opzione 2 — l'API Graph (è ciò che chiama un plugin)

L'equivalente programmatico usato da FastOG è una POST all'API Graph con scrape=true:

bash
curl -X POST \
  "https://graph.facebook.com/v21.0/?id=$(python3 -c 'import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=""))' 'https://your-store.com/product/example')&scrape=true&access_token=${APP_ID}|${APP_SECRET}"

Quattro dettagli che contano:

  • id è l'URL della pagina, non l'URL dell'immagine. Meta associa la cache alla pagina, quindi fare ping all'indirizzo dell'immagine non aggiorna nulla.
  • È richiesto un token — Meta ne richiede uno su questo endpoint da ottobre 2017. Un token di accesso dell'app nella forma {app_id}|{app_secret} è sufficiente e non richiede login utente, ed è proprio questo che rende possibile la chiamata da un job in background.
  • Le versioni dell'API Graph cambiano. FastOG fissa una versione testata dell'API Graph; controlla la documentazione corrente e il changelog di Meta prima di fissare una versione nel tuo codice.
  • Trattala come best-effort. Meta applica rate limiting alle chiamate di scrape, e un rifiuto significa solo che Facebook aggiorna secondo i propri tempi invece che immediatamente — i tag sulla tua pagina sono già corretti.

Poiché è soggetta a rate limiting, non lanciarla inline a ogni salvataggio di un catalogo di grandi dimensioni. Mettila in coda e deduplica per URL, così i salvataggi ripetuti dello stesso prodotto invariato non consumano il rate limit.

Opzione 3 — un plugin che lo fa per te

I plugin commercializzati come "Open Graph cache refresh" si dividono in due gruppi, e solo uno di essi può risolvere il problema di Facebook:

Meccanismo Cosa svuota Risolve un'anteprima Facebook obsoleta?
Aggiunge una query string variabile all'URL dell'immagine (?v=timestamp) la tua CDN delle immagini No — la cache di Meta è basata sulla pagina
Chiama l'endpoint di scrape per l'URL della pagina la cache delle anteprime di Meta Sì

Prima di installarne uno, verifica di quale tipo si tratta. Un parametro timestamp è una soluzione reale per un'immagine obsoleta e una non-soluzione per una card Facebook obsoleta.

FastOG per WooCommerce fa la seconda cosa, e non devi configurare nulla. Il plugin registra i webhook nativi dei prodotti di WooCommerce, quindi il salvataggio di un prodotto attiva un re-scrape Meta per il permalink di quel prodotto — in coda, deduplicato in una breve finestra temporale e best-effort per design, così un rifiuto non fa mai fallire il salvataggio. Si applica alle pagine prodotto (product.created / product.updated); le modifiche a categorie e blog non sono coperte.

Il lato immagine è gestito separatamente e in modo diverso da tutti i concorrenti: poiché un URL di copertina FastOG contiene i valori che l'hanno generata, modificare il prezzo o la foto genera un nuovo URL di copertina. Meta non può riproporre un'immagine il cui indirizzo non esiste più.

Dove Facebook non basta

Piattaforma Puoi forzare un aggiornamento? Cosa succede realmente
Facebook Sì — debugger o scrape=true Richiede una nuova scansione; i tempi di propagazione variano
WhatsApp No L'anteprima è memorizzata nella cache dell'app del destinatario; non esiste alcuna API
LinkedIn Nessuna API programmatica documentata Rilegge secondo la propria pianificazione; qui non viene fornita alcuna garanzia pubblica sui tempi
X / Twitter Nessuna API programmatica documentata Rilegge secondo la propria pianificazione; qui non viene fornita alcuna garanzia pubblica sui tempi
Slack, Discord No Cache di breve durata che si svuotano da sole in pochi minuti o ore

Se un'anteprima è obsoleta su WhatsApp, la soluzione non è uno strumento di Facebook — è sistemare correttamente il lato store così che la lettura successiva sia corretta.

Quando dopo uno scraping riuscito viene ancora mostrata la vecchia immagine

Segui questo elenco, in ordine:

  1. La pagina sta ancora servendo il vecchio tag? curl -s https://your-store.com/product/example | grep -i 'og:image' — una pagina HTML in cache con un og:image obsoleto vanifica del tutto lo scraping. Svuota la cache della pagina.
  2. La pagina stampa più di un og:image? Se due plugin ne emettono uno ciascuno, il crawler prende il primo che legge. Contali.
  3. L'immagine è raggiungibile e non bloccata? curl -I <image-url> dovrebbe restituire 200 con un Content-Type di tipo immagine. I crawler social rispettano robots.txt, quindi un'immagine su un percorso Disallow: fallisce in un modo che sembra un file corrotto — e curl non lo riprodurrà mai, perché curl ignora robots.txt.
  4. L'URL dell'immagine è cambiato davvero? Se non è cambiato, non è cambiato nemmeno il contenuto — verifica che la modifica a prezzo/foto sia arrivata alla fonte da cui la card viene generata.
  5. Controlla di nuovo il debugger. Se ora riporta la nuova immagine e Facebook mostra ancora la vecchia card, stai guardando la propagazione di Facebook stessa, non i tuoi tag.

FAQ

Esiste un'API ufficiale per pulire la cache di Open Graph di Facebook?

FastOG utilizza l'endpoint di scraping (POST https://graph.facebook.com/{version}/?id={page-url}&scrape=true&access_token={token}). Meta documenta il flusso dello Sharing Debugger e della scansione programmatica; la forma esatta dell'endpoint e la versione della Graph API possono cambiare, quindi verificale rispetto alla documentazione corrente di Meta prima di implementarla da solo.

Lo Sharing Debugger richiede un'app o un token?

No. È uno strumento pubblico e funziona per qualsiasi URL pubblico. Quello che non può fare è essere eseguito su pianificazione o coprire un intero catalogo.

Una nuova scansione mi costerà un render FastOG?

Di solito no. Un URL di copertina deriva dal contenuto, quindi se il contenuto non è cambiato, non è cambiato nemmeno l'URL, e il fetch è un cache hit che non costa alcun render. Se il prezzo è cambiato, l'URL è cambiato — quello è un nuovo render, ed è il render che volevi.

La nuova scansione su Facebook risolve la mia anteprima su WhatsApp?

No. Sono cache separate. Il debugger di Facebook vale comunque la pena di usarlo come validatore — recupera la pagina nello stesso modo in cui farà WhatsApp e riporta ciò che ha trovato — ma non può aggiornare la cache di WhatsApp.

Per quanto tempo Facebook conserva un'anteprima se non la interrogo mai?

Meta documenta un periodo standard di nuova scansione di circa 24 ore, ma il tempo di propagazione esatto può variare. È per questo che esistono il debugger e il percorso di scansione programmatica.

Devo interrogare ogni prodotto dopo un'importazione del catalogo?

È a questo che serve la coda. Inviare una richiesta per prodotto in linea farà scattare il rate limit di Meta e rallenterà la richiesta del merchant; accodate e deduplicate, le scansioni del catalogo si esauriscono senza danni.

E se Meta rifiuta la richiesta?

Non si rompe nulla. Una richiesta rifiutata o limitata dal rate limit significa che Facebook aggiorna secondo la propria pianificazione anziché immediatamente — i tag sulla pagina sono già corretti, ed è per questo che la chiamata è best-effort e non una dipendenza rigida.

Provalo gratis — nessuna registrazione richiesta

Anteprima e test delle immagini OG dinamiche in pochi secondi.

Apri il tester gratuito di immagini OG

From Us

A BeCaSimulations site