Cara Meng-cache Gambar OG
Meng-cache gambar OG berarti menyajikan pratinjau sosial (social preview) yang telah dibuat sebelumnya dari CDN, alih-alih merendernya ulang setiap kali dibagikan. FastOG meng-cache gambar yang identik di edge selama satu tahun — URL yang sama akan mengembalikan PNG yang telah di-cache tanpa mengurangi kuota Anda dan dengan latensi yang hampir nol, sehingga sebagian besar lalu lintas OG sebuah situs tidak pernah menyentuh renderer.
Mengapa caching itu penting
Berbagi ke media sosial memicu pengambilan data (fetch) oleh crawler platform. Jika setiap kali berbagi dilakukan render ulang, Anda akan menghabiskan kuota dan menambah latensi untuk konten yang identik. Caching yang agresif — dengan kunci berdasarkan konten gambar — mengubah "setiap berbagi menghabiskan 1 render" menjadi "berbagi pertama menghabiskan 1 render, berbagi berikutnya gratis."
Model berbasis konten yang membuatnya berfungsi
FastOG menggunakan URL yang ditandatangani konten: URL adalah fungsi murni dari parameter. Judul + template yang identik → URL yang identik. Artinya:
- Edge FastOG menyimpan gambar di bawah URL.
- Konten yang sama dibagikan 10.000 kali → satu render, satu hitungan kuota, 9.999 cache hit.
- Ubah konten → URL berbeda → satu render baru.
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)
Header cache FastOG
FastOG mengembalikan Cache-Control: public, max-age=31536000, immutable (satu tahun) untuk gambar yang dirender. Sampul
dilayani dari edge FastOG dalam dua tingkatan: cache render di depan fastog.com, dan penyimpanan
objek yang tahan lama di belakangnya. Permintaan berulang dijawab tanpa proses render ulang, dan X-FastOG-Worker-Cache pada
respons menunjukkan tingkatan mana yang menjawab (HIT, R2, MISS).
Karena salinan yang tahan lama tidak bergantung pada renderer, sampul yang telah diambil setidaknya sekali akan terus dilayani saat layanan render FastOG tidak tersedia untuk sementara — gangguan tidak akan menghilangkan pratinjau yang telah dibuat sebelumnya. Sampul yang belum pernah dirender sebelumnya adalah satu-satunya kasus yang membutuhkan renderer, dan dalam kasus tersebut FastOG menjawab dengan gambar, bukan dengan error:
| Situasi | Yang didapat crawler |
|---|---|
| Sampul sudah dirender | sampul tersebut, dari edge atau penyimpanan yang tahan lama |
| Belum pernah dirender, layanan render aktif | sampul tersebut, dirender sesuai permintaan |
| Belum pernah dirender, layanan render tidak tersedia sementara | gambar milik halaman itu sendiri yang dibawa dalam URL (foto produk Anda), atau kartu netral — tidak pernah halaman error |
Jika permintaan itu sendiri tidak valid (tanda tangan yang diubah, title yang hilang), Anda tetap mendapatkan 4xx yang sesuai.
Mengubah gambar yang sudah Anda terbitkan
| Yang Anda ubah | Yang perlu dilakukan |
|---|---|
| Konten (judul, harga, foto) | tidak perlu apa pun: konten ada di dalam URL, sehingga konten baru adalah URL baru dan akan dirender ulang |
| Template atau default render | naikkan versi cache-bust (FASTOG_CACHE_BUST) agar setiap URL mendapatkan parameter v baru |
| Anda memerlukan URL yang sama untuk dirender ulang | hubungi dukungan untuk membersihkan URL tersebut — pembersihan URL persis tidak diekspos sebagai endpoint publik |
Tautan yang sudah dibagikan tetap berfungsi dan tetap menampilkan gambar yang dijanjikan, kecuali Anda membersihkan URL persis tersebut.
Menyimpan og:image Anda sendiri (self-hosted)
Jika Anda menyimpan gambar sendiri alih-alih menggunakan cache FastOG, terapkan aturan yang sama:
| Langkah | Detail |
|---|---|
| Kunci cache = hash konten | Simpan berdasarkan hash data, bukan nama file yang dapat berubah |
| TTL panjang | max-age=31536000, immutable untuk konten yang stabil |
| URL dengan versi | Tambahkan hash/versi saat konten berubah |
| CDN di depan | Biarkan CDN menyerap pengambilan berulang |
FAQ
Apakah pembagian ulang yang sama benar-benar tidak memakan render?
Ya. URL yang identik akan mengenai cache edge dan tidak pernah mencapai renderer — kuota tidak terpakai sama sekali.
Berapa lama FastOG menyimpan cache sebuah gambar?
Satu tahun (immutable). Lama setelah render pertama, kartu yang dibagikan akan dilayani dari cache.
Bagaimana jika saya ingin gambar diperbarui (misalnya harga langsung)?
Ubah parameter (harga) → URL baru → render baru. Konten yang stabil tetap di-cache; konten dinamis diperbarui saat Anda menginginkannya.