Guide · Jul 25, 2026

og:image vs twitter:image: Do You Need Both?

Two tags, two protocols, one picture — most of the time. Open Graph and Twitter Cards are separate specifications maintained by different companies, which is why there are two sets of tags in the first place, but Twitter/X was designed from the start to fall back to Open Graph tags when its own aren't present. That overlap is exactly why it's easy to get away with setting only one, right up until it isn't.

What the fallback actually covers

When twitter:image is absent, X reads og:image instead. Same for twitter:title falling back to og:title, and twitter:description falling back to og:description. For a huge share of ordinary pages — a blog post, a product page, a documentation page — one image works perfectly well for both Facebook and X, and setting only the og: tags is genuinely enough. This is why plenty of sites never set twitter: image or title tags at all and their X previews still look correct.

Where the fallback isn't enough

The fallback only kicks in when the Twitter-specific tag is fully absent — if you want a different image, a tighter crop, or different copy specifically for X, you set the twitter: version explicitly and it takes priority over the og: equivalent on that platform, with no way to say "use this for Facebook but that for X" through the fallback alone. Image aspect ratio is the practical reason this comes up most: twitter:card set to summary_large_image expects roughly a 2:1 image, while Facebook/LinkedIn commonly use something closer to 1.91:1 — close enough that one image usually works for both, but a design with important text or a subject near the edges can crop awkwardly on one platform if you're relying entirely on the shared image.

The one tag that isn't optional either way

twitter:card has no Open Graph equivalent to fall back to — it's the value that tells X whether to render a small square thumbnail (summary) or a full-width image card (summary_large_image). Without it set, X's default behavior for missing this tag has been inconsistent across updates to their own crawler, and it's the one X-specific tag worth setting explicitly regardless of whether you rely on the image/title/description fallback for everything else.

A reasonable default

Set og:title, og:description, and og:image on every page — this covers Facebook, LinkedIn, Slack, Discord, and (via fallback) X. Add twitter:card explicitly, set to summary_large_image for most content pages. Only add explicit twitter:title, twitter:description, or twitter:image when you specifically want something different on X than everywhere else — for most sites, that's rarely.

Check what's actually set

FreeToolDev's bulk Open Graph & Twitter Card checker applies this exact fallback logic when rendering the X preview, so you can see whether your pages are relying on the fallback correctly or missing a tag entirely — for several pages in one pass, pasted as text.