Guide
WhatsApp and Telegram link preview: Open Graph checklist
When someone pastes a URL in WhatsApp or Telegram, the app may show a title, snippet, and image instead of a bare link. Those previews are driven by Open Graph–style tags on a publicly reachable page. Relative images, login walls, and stale caches are the usual reasons the card looks empty or wrong.
CardScope fetches the URL from the edge and rebuilds a diagnostic shell from the tags it finds. It is not a pixel-perfect screenshot of WhatsApp or Telegram on a phone — layout, crop, and timing differ by client and version.
How WhatsApp and Telegram unfurl links
Both clients send a crawler to your permalink, read meta tags (chiefly Open Graph), and cache a snapshot for that URL. In practice they care about:
og:title— the headline in the card.og:description— the supporting line when shown.og:image— a publicly fetchable absolutehttps://image URL.- A stable page URL (canonical /
og:url) so you are not multiplying cache keys.
They do not re-read your HTML on every paste. Live view-source can look correct while a chat still shows yesterday’s card — or no card — until cache expires or you share again after a wait. See clear Open Graph cache for the fix → verify → rescrape workflow across clients.
Checklist before you share
og:title— specific to the page, not only the brand name.og:description— one clear sentence that matches the content.og:image— absolutehttps://URL (not/og.pngrelative to the host). Landscape ~1200×630 is a safe default shared with other networks.- Publicly fetchable image — no login, no signed cookie, no hotlink block that rejects the crawler. Open the image URL in a private window; if you cannot see the file, WhatsApp and Telegram often cannot either.
- Stable permalink — prefer one canonical URL in shares and in
og:url.
Relative og:image and auth-walled images
Two failure modes show up constantly:
- Relative
og:image. A value like/images/share.pngdepends on how the crawler resolves the base URL. Many unfurls break or pick the wrong host. Always write a fullhttps://your-domain.com/…image URL. - Auth-walled or blocked images. CDN rules, signed URLs that expire, or “referrer required” policies that work in your browser can fail for an anonymous crawler. The title may appear while the image never does.
If CardScope’s tag table shows a relative image or a fetch error for the image URL, fix that on the live page before blaming WhatsApp or Telegram cache.
Tags that matter
| Tag / signal | Role | Practical check |
|---|---|---|
og:title |
Card headline | Specific, not brand-only |
og:description |
Supporting text | Present and matches the page |
og:image |
Preview image | Absolute https, anonymous GET returns an image |
og:image:width / height |
Hints for crop | Set when you can (~1200×630) |
og:url / canonical |
Identity / cache key | Stable permalink |
twitter:card |
Not the WhatsApp/Telegram driver | Still useful for X / Discord; keep OG primary here |
A minimal set
If you only set six things for chat previews, set these:
<meta property="og:title" content="A specific title, not the brand name">
<meta property="og:description" content="One sentence that matches the page.">
<meta property="og:image" content="https://example.com/og.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:url" content="https://example.com/permalink">
Same foundation as iMessage, Slack vs Discord, and LinkedIn vs X — one solid OG set, then client-specific extras where needed.
How to verify with CardScope
- Paste the public permalink into CardScope. It fetches from the edge, reads Open Graph (and Twitter) tags in memory, and discards the HTML.
- Confirm title, description, and that
og:imageis absolute https and reachable. - Fix the live page if the tag table is wrong — do not wait on chat cache for a broken deploy.
- Recheck the same permalink after you ship. If CardScope is current but WhatsApp or Telegram still shows an old or empty card, treat that as client-side cache lag; wait or re-share after a delay. CardScope does not clear those caches.
FAQ
Do WhatsApp and Telegram use Open Graph?
Both lean on Open Graph–style tags (og:title, og:description, og:image) when they unfurl a public URL. Layout and crop differ by client and are not pixel-identical to CardScope shells or to each other.
Why does my preview miss the image?
Relative og:image paths often break. Auth-walled, hotlink-blocked, or non-HTTPS images fail when the crawler cannot fetch them. Use an absolute https:// image URL that returns a real image to an anonymous request.
Can CardScope clear WhatsApp or Telegram cache?
No. CardScope shows the tags it fetched right now. It does not purge WhatsApp, Telegram, Slack, X, LinkedIn, Discord, or Apple caches. Fix tags, verify, then recheck after cache lag — details in the clear OG cache guide.
Should I rely on Twitter Card tags for WhatsApp?
Ship Open Graph for WhatsApp and Telegram. Twitter tags matter more for X and Discord large embeds. Keep both sets aligned if you share across clients.
Is CardScope free?
Three free checks per day per IP, no account. Pro is $19 once for unlimited checks. We parse HTML in memory and discard it — rate limits store a hash of your IP for 48 hours, not the page.
Check a URL on CardScope
Paste the permalink. You get reconstructed shells for the clients CardScope supports, the tag table, and a fix checklist — so you know the live tags are right before you share in WhatsApp or Telegram. Three free checks per day per IP, no account. Pro is $19 once if you want unlimited checks. We parse HTML in memory and discard it — rate limits store a hash of your IP for 48 hours, not the page.