Jak buforować obrazy OG
Buforowanie obrazów OG oznacza serwowanie wcześniej wygenerowanego podglądu społecznościowego (social preview) z CDN zamiast ponownego renderowania go przy każdym udostępnieniu. FastOG buforuje identyczne obrazy na brzegu sieci (edge) przez rok — ten sam URL zwraca zbuforowany plik PNG bez wliczania go do Twojego limitu i przy niemal zerowym opóźnieniu, dzięki czemu większość ruchu OG witryny nigdy nie dociera do renderera.
Dlaczego buforowanie ma znaczenie
Udostępnienie w mediach społecznościowych powoduje pobranie treści przez robota platformy. Gdyby każde udostępnienie było renderowane od nowa, marnowałbyś limit zapytań i czas oczekiwania na identyczną treść. Agresywne buforowanie — kluczowane na podstawie zawartości obrazu — zamienia „każde udostępnienie to 1 render" w „pierwsze udostępnienie to 1 render, a każde kolejne jest darmowe".
Model oparty na kluczu treści, który sprawia, że to działa
FastOG używa adresów URL podpisanych treścią: URL jest czystą funkcją parametrów. Identyczny tytuł + szablon → identyczny URL. Oznacza to:
- Brzeg FastOG przechowuje obraz pod tym adresem URL.
- Ta sama treść udostępniona 10 000 razy → jedno renderowanie, jedno naliczenie limitu, 9 999 trafień w pamięć podręczną.
- Zmiana treści → inny URL → jedno nowe renderowanie.
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)
Nagłówki pamięci podręcznej FastOG
FastOG zwraca Cache-Control: public, max-age=31536000, immutable (jeden rok) dla wyrenderowanych obrazów. Okładka jest serwowana z edge'a FastOG w dwóch warstwach: pamięć podręczna renderowania przed fastog.com oraz trwały magazyn obiektów za nią. Powtórne pobrania są obsługiwane bez ponownego renderowania, a X-FastOG-Worker-Cache w odpowiedzi informuje, która warstwa odpowiedziała (HIT, R2, MISS).
Ponieważ trwała kopia nie zależy od renderera, okładki pobrane przynajmniej raz są nadal serwowane, gdy usługa renderowania FastOG jest chwilowo niedostępna — awaria nie powoduje wyświetlenia pustego podglądu, który został już wygenerowany. Okładka, która nigdy nie została wyrenderowana, to jedyny przypadek wymagający renderera, i wtedy FastOG odpowiada obrazem, a nie błędem:
| Sytuacja | Co otrzymuje crawler |
|---|---|
| Okładka już wyrenderowana | okładkę z edge'a lub trwałego magazynu |
| Nigdy nie wyrenderowana, usługa renderowania działa | okładkę wyrenderowaną na żądanie |
| Nigdy nie wyrenderowana, usługa renderowania chwilowo niedostępna | obraz strony przenoszony w URL (Twoje zdjęcie produktu) lub neutralną kartę — nigdy stronę błędu |
Jeśli samo żądanie jest nieprawidłowe (zmodyfikowany podpis, brakujący title), nadal otrzymujesz odpowiedni błąd 4xx.
Zmiana opublikowanego obrazu
| Co zmieniłeś | Co zrobić |
|---|---|
| Treść (tytuł, cena, zdjęcie) | nic: treść jest w URL, więc nowa treść to nowy URL i renderuje się od nowa |
| Szablon lub domyślne ustawienia renderowania | podbij wersję cache-busting (FASTOG_CACHE_BUST), aby każdy URL zyskał nowy parametr v |
| Potrzebujesz ponownego renderowania tego samego URL | poproś support o wyczyszczenie tego konkretnego URL — czyszczenie dokładnego URL nie jest udostępnione jako publiczny endpoint |
Linki, które już zostały udostępnione, działają dalej i nadal pokazują obraz, który obiecywały, chyba że wyczyścisz dokładnie ten URL.
Buforowanie własnego og:image (self-hosted)
Jeśli przechowujesz obrazy samodzielnie, zamiast korzystać z pamięci podręcznej FastOG, zastosuj te same zasady:
| Krok | Szczegóły |
|---|---|
| Klucz pamięci podręcznej = skrót treści | Przechowuj według skrótu danych, a nie zmiennej nazwy pliku |
| Długi TTL | max-age=31536000, immutable dla stabilnej treści |
| Wersjonowane adresy URL | Dodaj skrót/wersję, gdy treść się zmienia |
| CDN z przodu | Pozwól, aby CDN przejmował powtarzające się pobrania |
FAQ
Czy powtórne udostępnienia naprawdę kosztują 0 renderów?
Tak. Identyczne adresy URL trafiają do cache’u brzegowego i nigdy nie docierają do renderera — nie jest zużywana żadna jednostka z limitu.
Jak długo FastOG przechowuje obraz w cache’u?
Jeden rok (immutable). Długo po pierwszym renderze udostępniona karta jest serwowana z cache’u.
Co jeśli chcę, aby obraz się aktualizował (np. cena na żywo)?
Zmień parametr (cenę) → nowy URL → nowy render. Stabilna treść pozostaje w cache’u; dynamiczna treść aktualizuje się, kiedy chcesz.