Come mettere in cache le immagini OG
Mettere in cache le immagini OG significa servire un'anteprima social già generata da una CDN invece di ri-renderizzarla a ogni condivisione. FastOG memorizza nella cache le immagini identiche al limite della rete per un anno: lo stesso URL restituisce il PNG in cache senza consumare la tua quota e con una latenza quasi nulla, quindi la maggior parte del traffico OG di un sito non raggiunge mai il renderer.
Perché la cache è importante
Una condivisione social attiva una richiesta da parte del crawler della piattaforma. Se ogni condivisione venisse renderizzata di nuovo, consumeresti quota e latenza su contenuti identici. Una cache aggressiva — basata sul contenuto dell'immagine — trasforma "ogni condivisione conta 1 render" in "la prima condivisione conta 1 render, tutte le altre sono gratuite."
Il modello basato sul contenuto che lo fa funzionare
FastOG utilizza URL firmati dal contenuto: l'URL è una funzione pura dei parametri. Titolo identico + template identico → URL identico. Questo significa:
- L'edge di FastOG mantiene l'immagine sotto l'URL.
- Lo stesso contenuto condiviso 10.000 volte → un solo render, un solo conteggio quota, 9.999 cache hit.
- Modifica il contenuto → URL diverso → un nuovo render.
GET /api/v1/og?title=Hello&template=default&key=...&s=... → render (1 quota count), then
GET /api/v1/og?title=Hello&template=default&key=...&s=... → cached (0 counts, instant)
GET /api/v1/og?title=Changed&template=default&key=...&s=... → render (1 quota count)
Intestazioni di cache di FastOG
FastOG restituisce Cache-Control: public, max-age=31536000, immutable (un anno) per le immagini renderizzate. Una copertina
viene servita dall'edge di FastOG su due livelli: la cache di rendering davanti a fastog.com e un object store
durevole dietro di essa. Le richieste ripetute vengono gestite senza un nuovo rendering e X-FastOG-Worker-Cache nella
risposta indica quale livello ha risposto (HIT, R2, MISS).
Poiché la copia durevole non dipende dal renderer, le copertine che sono state recuperate almeno una volta continuano a essere servite mentre il servizio di rendering di FastOG è brevemente non disponibile — un'interruzione non lascia vuota un'anteprima già generata. Una copertina che non è mai stata renderizzata prima è l'unico caso che richiede il renderer, e in quel caso FastOG risponde con un'immagine piuttosto che con un errore:
| Situazione | Cosa riceve un crawler |
|---|---|
| Copertina già renderizzata | la copertina, dall'edge o dall'object store durevole |
| Mai renderizzata, servizio di rendering attivo | la copertina, renderizzata on demand |
| Mai renderizzata, servizio di rendering brevemente non disponibile | l'immagine della pagina stessa trasportata nell'URL (la foto del tuo prodotto), oppure una card neutra — mai una pagina di errore |
Se la richiesta stessa non è valida (una firma manomessa, un title mancante), ricevi comunque il 4xx corrispondente.
Modificare un'immagine già pubblicata
| Cosa hai modificato | Cosa fare |
|---|---|
| Il contenuto (titolo, prezzo, foto) | niente: il contenuto è nell'URL, quindi il nuovo contenuto è un nuovo URL e viene renderizzato da zero |
| Il template o un valore predefinito di rendering | incrementa la versione di cache-busting (FASTOG_CACHE_BUST) così ogni URL riceve un nuovo parametro v |
| Ti serve che lo stesso URL venga renderizzato di nuovo | chiedi al supporto di purgare quell'unico URL — la purge per URL esatto non è esposta come endpoint pubblico |
I link già condivisi continuano a funzionare e continuano a mostrare l'immagine che promettevano, a meno che tu non purghi quell'URL esatto.
Memorizzare nella cache la tua og:image (self-hosted)
Se memorizzi le immagini tu stesso invece di usare la cache di FastOG, applica le stesse regole:
| Passaggio | Dettaglio |
|---|---|
| Chiave cache = hash del contenuto | Memorizza tramite un hash dei dati, non un nome file mutabile |
| TTL lungo | max-age=31536000, immutable per contenuti stabili |
| URL con versione | Aggiungi un hash/versione quando il contenuto cambia |
| CDN davanti | Lascia che la CDN assorba le richieste ripetute |
FAQ
I condivisioni ripetute costano davvero 0 render?
Sì. URL identici colpiscono la cache periferica e non raggiungono mai il renderer: non viene consumato alcun credito quota.
Per quanto tempo FastOG memorizza nella cache un'immagine?
Un anno (immutable). Molto tempo dopo il primo render, una card condivisa viene servita dalla cache.
E se volessi che un'immagine si aggiorni (es. prezzo in tempo reale)?
Modifica un parametro (il prezzo) → nuovo URL → nuovo render. I contenuti stabili restano in cache; i contenuti dinamici si aggiornano quando vuoi.