Guide
iMessage link preview: Open Graph for Apple Messages
When someone pastes a URL in Messages, Apple may show a rich link — title, snippet, and image — instead of a bare blue string. That card is Open Graph–based. If og:image is missing, unreachable, or the wrong kind of file, the preview often collapses to a plain URL. Twitter Card tags alone will not save it.
CardScope reconstructs the iMessage preview from the same tags Apple’s rich-link crawler cares about. It is a diagnostic preview, not a screenshot of Messages.app on a phone.
Same page, two outcomes: with a public og:image you get a rich bubble; without it the card often never forms. CardScope’s iMessage preview is rebuilt from tags, not from a live Messages session.
Check a live URL on the iMessage link preview checker.
What Apple Messages typically needs
Rich links lean on Open Graph, with the document title and meta description as fallbacks. In practice you want:
og:title— the headline in the bubble. Keep it specific; brand-only titles look empty in a chat.og:description— the supporting line under the title when Apple shows one.og:image— a publicly reachable absolutehttps://image. Relative paths, auth walls, and hotlink blocks are common reasons the rich link never appears. Missingog:imageis the usual collapse to a plain URL.og:image:widthandog:image:height— set them when you can. A landscape ~1.91:1 file (1200×630) is a safe default shared with other clients.og:url— a stable permalink. Query-string variants can cache as separate objects.- HTML
<title>— last-resort title if OG is incomplete.
twitter:card and other Twitter tags do not drive the iMessage preview the way they do on X or Discord. Ship OG for Messages; add Twitter tags for X separately. See LinkedIn vs X and Slack vs Discord for those clients.
The free link preview mockup draws the Messages bubble from a title, a description, and an image. It does not read a live page.
Why a “good” page still looks blank in Messages
Three failure modes show up again and again:
- No usable image. The tag is missing, the URL redirects to HTML, the host blocks Apple’s fetch, or the file is too small / wrong MIME type.
- Wrong final URL. A redirect chain lands on a page without OG, or a mobile vs desktop variant strips tags.
- Stale cache. You fixed the tags; Messages still shows yesterday’s card (or no card). Live HTML can be correct while the rich-link cache is not.
View-source in your browser proves what you got with cookies and your user-agent. Apple’s crawler is different. A checker that loads the page and shows the iMessage preview from those tags closes that gap without claiming pixel-perfect Messages.app rendering.
Tags that matter for iMessage
| Tag / signal | Role in Messages | Practical check |
|---|---|---|
og:title |
Primary title | Specific, not just the brand |
og:description |
Supporting text | Present and matches the page |
og:image (+ width/height) |
Rich-link image | Absolute https, public, useful size |
og:url / canonical |
Identity / cache key | Stable permalink |
<title> / meta description |
Fallback | Present even if OG is incomplete |
twitter:card |
Not the iMessage driver | Still set for X; do not rely on it here |
A minimal set for a rich link
If you only set six things for Messages, 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">
Keep important text away from the extreme edges of the image. Messages crops; a title only in a corner can disappear.
How to verify
- Paste the public permalink into CardScope. It loads the page, reads Open Graph (and Twitter) tags in memory, and discards the HTML.
- Open the iMessage preview. You should see a title and, when tags allow, an image. If the preview collapses, start with whether
og:imagecan be loaded. - Compare Slack and Discord on the same check if you share there too — they are not identical to Messages (Slack vs Discord guide).
- Fix the live page, then recheck the same permalink. If CardScope is current but a phone still shows an old or empty link, treat that as Apple-side cache, not as “the tags are still wrong.”
Messages collapses to a plain URL when og:image will not load. The site audit will find every page missing og:image.