大規模 OG 圖片
大規模產生 og:image 意指為大型網站的每個頁面自動建立獨特且正確的社交預覽(social preview)——涵蓋數千篇部落格文章、產品或文件頁面。FastOG 會依需求渲染每張圖片(1 次渲染),並由 Cloudflare 永久快取相同的 URL,因此規模擴大不會增加成本或設定時間。
大規模下獨特圖像的問題
手工製作數千張 1200×630 的圖像並不可行。多數團隊退而求其次,為整個網站使用一張通用卡片——這是一個錯失的機會,因為每頁帶有真實標題的卡片能獲得更多分享與點擊。解決方案是確定性的按需渲染(deterministic on-demand rendering):圖像在渲染時從頁面自身的資料推導產生。
為什麼 FastOG 能擴展
核心概念是內容簽名、快取的 URL:
- 您在渲染時,從頁面標題與欄位簽署一個 URL(這是內容的純函數)。
- 爬蟲只抓取該 URL 一次;FastOG 會渲染 PNG(1 次渲染)並在邊緣快取。
- 之後每次抓取相同 URL 都會從快取提供服務——立即回應且不計入。
因此,10,000 個不同頁面只計 10,000 次渲染一次,而無限次分享之後完全不計費。
批次/系統化部署
若要將 og:image 部署到整個網站,請在建立(build)時或發布(publish)時,為每個頁面產生 URL:
tsx
// Static generation — generateMetadata per route
export async function generateStaticParams() {
return posts.map((p) => ({ slug: p.slug }));
}
export function generateMetadata({ params }) {
const post = posts.find((p) => p.slug === params.slug);
return {
openGraph: {
images: [generateOgImageUrl({
template: "blog",
title: post.title,
subtitle: post.excerpt,
author: post.author,
})],
},
};
}
讓規模化成本維持低廉的模式
| 模式 | 為何有幫助 |
|---|---|
| 在建置或渲染時簽署 | 確定性的 URL → 共享快取 |
| 每種內容類型重複使用同一範本 | 品牌一致,減少設計決策 |
| 快取相同的 URL | 重複分享不計入 |
| 在發布時產生,而非每次請求時 | 避免首次分享時的冷渲染 |
常見問題
1,000 或 10,000 頁的費用是多少?
每個唯一圖片算一次渲染。10,000 個唯一頁面 = 10,000 次渲染(僅一次);無限次重新分享不另計費。Dynamic API 方案的價格請參閱定價頁面。
內容頻繁變動的頁面該如何處理?
每次內容變更都會產生新的 URL 與新的渲染(計 1 次配額)。穩定的頁面則會持續使用快取。
可以在靜態建置期間產生 OG 圖片嗎?
可以——許多團隊會在建置/發布時(SSG)產生並儲存圖片 URL,如此一來首次分享時就不會遇到冷渲染(cold render)。