iMessage Link Preview Checker

iMessage shows a large image and the title, without a description. When there's no image, it falls back to your site icon. Check what Apple's link preview fetcher gets from your page.

Free, no sign-up. We fetch the page from our server as each platform's bot, without running JavaScript.

How iMessage builds a link preview

iMessage previews (Apple calls them rich links) are built on the sender's iPhone, iPad or Mac when the message is sent, then delivered with the message. Apple's fetcher sends a User-Agent that includes facebookexternalhit/1.1 Facebot Twitterbot/1.0, so it sees what Facebook's and X's crawlers see.

The rich link is minimal:

  • Image from og:image (or twitter:image), shown large, edge to edge.
  • Title from og:title, then <title>, up to two lines.
  • Domain under the title.

There's no description: iMessage ignores og:description. Everything the reader needs to decide whether to tap has to be in the title and the image.

When the page has no usable image, iMessage shows a compact link with your site icon next to the title. It looks for apple-touch-icon first, then the favicon, so declare a 180×180 PNG:

<link rel="apple-touch-icon" href="/apple-touch-icon.png">

Why the iMessage link preview isn't showing

The page is slow

The sender's device fetches the page while sending, with a short time limit. A slow server or long redirect chain means the message goes out as a plain link. The checker shows the response time and every redirect.

Tags only exist after JavaScript runs

Apple's fetcher reads the HTML without running scripts. Client-rendered apps need server-side rendering for their meta tags.

The image needs cookies or isn't HTTPS

Use a public HTTPS URL for og:image. Images behind sign-in, hotlink protection or plain HTTP are skipped.

The link was sent before the fix

The preview is stored with each message. Messages already sent keep their original preview.

How to refresh an iMessage preview

There's nothing to purge: iMessage builds a new preview for every new message. Fix the page, check it here, and send the link again. If a device still shows the old version, add a parameter such as ?v=2 to rule out local caching.

iMessage extras

  • Video: if og:video points directly to an MP4 file, iMessage can play it inline in the conversation.
  • Mac and iPhone look the same: the layout scales with the bubble, so one 1200×630 image works for both.
  • Dark mode only changes the bubble around the card. Check that a transparent PNG still reads on a dark background, or use a JPG.

Frequently asked questions

Why doesn't my link show a preview in iMessage?
The sender's device fetches the page, so it needs to load quickly over HTTPS and contain og:title and og:image in the HTML. Slow pages, JavaScript-rendered tags and images that need cookies are the usual reasons for a plain link.
Does iMessage show the description?
No. iMessage rich links show the image, the title and the domain. Put the important words in og:title.
Which icon does iMessage use when there's no image?
The apple-touch-icon (180×180 PNG works best), then the favicon. Declare it with <link rel="apple-touch-icon" href="/apple-touch-icon.png">.
How do I refresh an iMessage link preview?
The preview is built on the sender's device when the message is sent, and stored with the message. New messages fetch the page again, so a fixed page shows up in the next message you send.
Can iMessage play a video in the preview?
Yes. If og:video points to a directly playable MP4 file, iMessage can show an inline player instead of the image.