OG Images at Scale

Generating og:image at scale means creating a unique, correct social preview for every page of a large site — thousands of blog posts, products, or docs pages — automatically. FastOG renders each image on demand (1 credit) and Cloudflare-caches identical URLs forever, so scale does not multiply cost or setup time.

The problem with unique images at scale

Hand-making thousands of 1200×630 images is not feasible. Most teams fall back to one generic card for the whole site — a lost opportunity, because a per-page card with the real title gets more shares and clicks. The solution is deterministic on-demand rendering: the image is derived from the page's own data at render time.

Why FastOG scales

The key idea is content-signed, cached URLs:

  1. You sign a URL from the page title + fields at render time (a pure function of the content).
  2. The crawler fetches the URL once; FastOG renders the PNG (1 credit) and caches it at the edge.
  3. Every later fetch of the same URL is served from cache — instant and 0 credits.

So 10,000 distinct pages cost 10,000 credits once, and unlimited shares cost nothing after.

Batch / systematic rollout

To roll out og:image across a whole site, generate the URLs at build time or on publish for every page:

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,
            })],
        },
    };
}

Patterns that keep scale cheap

Pattern Why it helps
Sign at build/render time Deterministic URLs → shared caching
Reuse a template per content type Consistent brand, fewer design decisions
Cache identical URLs Repeat shares cost 0 credits
Generate on publish, not on every request Avoids cold renders on first share

FAQ

How much does 1,000 or 10,000 pages cost?

One credit per unique image. 10,000 unique pages = 10,000 credits once; unlimited re-shares cost nothing. See pricing for credit packs.

What about pages whose content changes frequently?

Each content change produces a new URL and a new render (1 credit). Stable pages stay cached.

Can I generate OG images during a static build?

Yes — many teams generate and store the image URL at build/publish time (SSG) so there is never a cold render at first share.

Related

Try it free — no signup required

Preview and test dynamic OG images in seconds.

Open the Free OG Image Tester