Cum să cachezi imaginile OG
Cache-ul imaginilor OG înseamnă să servești o previzualizare socială generată anterior dintr-un CDN, în loc să o re-renderezi la fiecare distribuire. FastOG cachează imaginile identice la edge timp de un an — același URL returnează PNG-ul din cache fără să fie contorizat în cota ta și cu o latență aproape de zero, astfel încât cea mai mare parte a traficului OG al unui site nu ajunge niciodată la renderer.
De ce contează cache-ul
O distribuire socială declanșează o cerere de preluare (fetch) de către crawler-ul platformei. Dacă fiecare distribuire ar fi re-randată, ai consuma cotă (quota) și latență pe conținut identic. Un cache agresiv — cheiat pe conținutul imaginii — transformă „fiecare distribuire contează ca 1 randare" în „prima distribuire contează ca 1 randare, orice altă distribuire este gratuită."
Modelul bazat pe conținut care îl face să funcționeze
FastOG folosește URL-uri semnate pe conținut: URL-ul este o funcție pură a parametrilor. Titlu identic + șablon identic → URL identic. Asta înseamnă:
- Edge-ul FastOG păstrează imaginea sub URL.
- Același conținut distribuit de 10.000 de ori → o singură randare, o singură numărare în cotă, 9.999 de accesări din cache.
- Schimbi conținutul → URL diferit → o singură randare nouă.
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)
Anteturile de cache ale FastOG
FastOG returnează Cache-Control: public, max-age=31536000, immutable (un an) pentru imaginile redate. O copertă
este servită de la edge-ul FastOG în două niveluri: cache-ul de randare din fața fastog.com și un magazin durabil de obiecte
în spatele acestuia. Solicitările repetate sunt rezolvate fără re-randare, iar X-FastOG-Worker-Cache din
răspuns indică ce nivel a răspuns (HIT, R2, MISS).
Deoarece copia durabilă nu depinde de renderer, coperțile care au fost preluate cel puțin o dată continuă să fie servite în timp ce serviciul de randare al FastOG este indisponibil pentru scurt timp — o întrerupere nu golește o previzualizare care a fost deja generată. O copertă care nu a fost niciodată randată înainte este singurul caz care necesită renderer-ul, iar acolo FastOG răspunde cu o imagine, nu cu o eroare:
| Situație | Ce primește un crawler |
|---|---|
| Coperta deja randată | coperta, de la edge sau din magazinul durabil |
| Niciodată randată, serviciul de randare activ | coperta, randată la cerere |
| Niciodată randată, serviciul de randare indisponibil pentru scurt timp | imaginea proprie a paginii purtată în URL (fotografia produsului tău) sau un card neutru — niciodată o pagină de eroare |
Dacă solicitarea în sine este invalidă (o semnătură modificată, un title lipsă), primești totuși codul 4xx corespunzător.
Modificarea unei imagini deja publicate
| Ce ai modificat | Ce trebuie să faci |
|---|---|
| Conținutul (titlu, preț, fotografie) | nimic: conținutul este în URL, deci noul conținut este un URL nou și se randează proaspăt |
| Șablonul sau o valoare implicită de randare | incrementează versiunea de invalidare a cache-ului (FASTOG_CACHE_BUST) astfel încât fiecare URL să primească un nou parametru v |
| Ai nevoie ca același URL să fie re-randat | cere suportului să epureze acel URL — epurarea exactă a URL-ului nu este expusă ca endpoint public |
Linkurile deja distribuite continuă să funcționeze și să afișeze imaginea promisă, cu excepția cazului în care epurezi acel URL exact.
Memorarea în cache a propriului og:image (self-găzduit)
Dacă stochezi imaginile singur, în loc să folosești cache-ul FastOG, aplică aceleași reguli:
| Pas | Detaliu |
|---|---|
| Cheie de cache = hash de conținut | Stochează după un hash al datelor, nu după un nume de fișier mutabil |
| TTL lung | max-age=31536000, immutable pentru conținut stabil |
| URL-uri versionate | Adaugă un hash/versiune când conținutul se schimbă |
| CDN în față | Lasă CDN-ul să absoarbă cererile repetate |
Întrebări frecvente
Distribuirile repetate chiar costă 0 randări?
Da. URL-urile identice ajung în cache-ul de la margine și nu ajung niciodată la renderer — nu se consumă nicio unitate din cotă.
Cât timp păstrează FastOG o imagine în cache?
Un an (immutable). Mult timp după prima randare, un card distribuit este servit din cache.
Ce fac dacă vreau ca o imagine să se actualizeze (de exemplu, un preț live)?
Schimbă un parametru (prețul) → URL nou → randare nouă. Conținutul stabil rămâne în cache; conținutul dinamic se actualizează când vrei tu.