previews resolves all eight for you.
The eight
Each preview carries its own
basis string stating these rules, so the response
explains itself without this table.
Where a platform’s behaviour is undocumented, the resolver is deliberately
conservative — it assumes no
twitter:* fallback rather than guessing one.
Predicting a preview that does not appear is a worse failure than predicting
a plainer one that does.What each one returns
source is the field to read
Two pages can produce an identical preview for entirely different reasons. source tells you which tag did the work:
title alone.
approximate
Every preview is approximate: true, and the field exists to say so rather than to distinguish good pages from bad ones.
No platform publishes its exact rendering rules, and real output depends on things invisible from the HTML: A/B tests, personalisation, the platform’s own crawl cache, and layout rules that change with image aspect ratio. Google is the extreme case — search results are generated rather than rendered, and it may rewrite your title entirely if something else matches the query better.
approximate: true is not a warning about your page. It is us declining to overstate how precisely anyone can predict a third party’s renderer.Why Google ignores Open Graph
The single most common misunderstanding this endpoint clears up. Google builds search results from<title> and meta description. It does not read og:title or og:description. A page with immaculate Open Graph tags and no meta description will preview beautifully on Facebook and show Google’s own guess at a snippet.
That is why missing_description is a warning even on a page with a full set of og: tags.
Platforms cache aggressively
A preview here reflects your page now. What a platform shows reflects whenever it last crawled you, which can be days. After fixing tags, most platforms need to be told to look again:- Facebook and Instagram — the Sharing Debugger, “Scrape Again”
- LinkedIn — the Post Inspector
- X — re-share; the card is refetched on a schedule
- Slack, Discord, WhatsApp, Telegram — cache by URL for hours; a
?v=2query parameter forces a fresh fetch