Social preview checker
Paste a URL. See the card X, LinkedIn, Facebook, Slack and Discord would actually show — and what is wrong with it. No account, no card, no extension.
How it will look
Tags we found
Why the same link looks different on each platform
Because they read different tags, in a different order. X looks for
twitter:title first and only then og:title; everyone
else ignores the twitter: tags entirely and goes straight to
og:, falling back to the page's <title>.
So a page with only twitter: tags looks right on X and bare
everywhere else, and a page with only og: tags looks right
everywhere except that X shows a small square thumbnail instead of the big
image — that one is twitter:card, which has to say
summary_large_image before you get the large layout.
The three that account for most broken cards
- A relative
og:image./card.pngworks in your browser because it resolves against the page. Some crawlers resolve it too. The ones that do not show no image at all, which is why a card can look fine in one app and bare in the next. Use the absolute URL. - An
http://image on anhttps://page. Several platforms refuse mixed content and silently drop the image. - Tags rendered by JavaScript. Crawlers read the HTML that
came off the server. If your
<head>is filled in after hydration, they see an empty head — and so does this tool, which is the honest preview of what happens.
Limits, stated plainly
- Twenty checks an hour per visitor. This one does not launch a browser, so it has its own allowance rather than sharing the six-an-hour budget the screenshot and accessibility tools draw on.
- A check that fails or is refused costs you nothing.
- Public pages only. Nothing behind a login or on a private network.
- We read the first 512KB of HTML, which is far past where any
<head>ends. - We do not fetch your image to measure it. The card below uses your real image URL, loaded by your browser, so what you see is what it serves.
Generating the image, not just checking it
This tool tells you the image is missing. POST /v1/og-image is how
you produce one per page without opening a design tool: give it a URL or an
HTML template and it returns a 1200×630 PNG.
curl -X POST https://api.getsnap.dev/v1/og-image \
-H "X-API-Key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/post"}'
A free key is 100 images a month, no card. Get one, or read the walkthrough for Node and Python.
Frequently asked questions
Is this really free?
Yes. No account, no card, no email. Twenty checks an hour per visitor. Checks that fail do not count against you.
I fixed my tags and the old card still shows. Why?
Every platform caches what it scraped, usually for days. This tool reads your page live, so it will show the fix immediately while X or LinkedIn still show the old one. Both have a scraper or post inspector that forces a re-fetch.
Does it check whether my image actually loads?
Your browser does, when it renders the card below. If the image area is empty, the URL is wrong, blocked by CORS or hotlink protection, or returning an error — all three look the same to a crawler.
Why does it say my page has no tags when I can see them?
Almost always because they are added by JavaScript after the page loads. Crawlers do not run your JavaScript. View source rather than inspect element — source is what they see.
Can I check a staging site?
Only if it is reachable from the public internet. Anything behind a login, a VPN or a private address is refused.
Related reading
- Generate OG images from an HTML template — once this tool tells you the image is missing.
- Dynamic OG image API for Node and Python — one endpoint, with caching and a Next.js example.
- Free accessibility checker — the same idea for WCAG.
- Free tools — any URL to a PNG.