Skip to main content

iMessage Link Preview Broken? Fix It

5 min read

You text a link in iMessage and expect a rich preview with image and title. Instead you get a bare URL or a broken card with the wrong thumbnail. iMessage generates link previews by fetching Open Graph tags through Apple's crawler. When that fetch fails, the preview does not render.

Short answer

Serve og:title, og:description, and og:image in your server-rendered HTML with absolute HTTPS URLs. Allow Applebot in robots.txt. Use a 1200 × 630 JPG under 5 MB. Test the image URL in Safari on iOS. iMessage caches previews per device, so send the link in a new conversation after fixing tags.

How iMessage link previews work

When you send a URL in Messages on iPhone, iPad, or Mac, Apple's services fetch the page to build a preview card. The crawler (Applebot) reads Open Graph meta tags:

<meta property="og:title" content="Your Title">
<meta property="og:description" content="Short description.">
<meta property="og:image" content="https://example.com/og.jpg">
<meta property="og:url" content="https://example.com/page">

The preview appears above or below the link bubble with title, domain, and thumbnail.

Applebot does not run JavaScript. Tags must exist in the raw HTML response.

Broken preview vs. no preview

SymptomLikely cause
Plain URL, no cardCrawler blocked, timeout, or no OG tags
Wrong imageMissing og:image, fallback to page image
Old image after updateDevice-side cache or Apple's CDN cache
Preview on Mac but not iPhoneDifferent cache state per device
Title correct, no thumbnailImage URL broken, too large, or slow

Step 1: Verify Open Graph tags

  1. View page source on desktop Safari or Chrome.
  2. Confirm og:title, og:description, and og:image are present.
  3. Open og:image in a new tab. Image must load without login.

Scan with OpenGraph Check to preview tags before texting the link.

Step 2: Allow Applebot in robots.txt

User-agent: Applebot
Allow: /

Also allow if you use Apple's search-related crawling:

User-agent: Applebot-Extended
Allow: /

Blocking Applebot prevents iMessage from building rich previews. Check that your Disallow rules do not catch all bots with a wildcard that includes Applebot.

Step 3: Meet image and performance requirements

PropertyRecommendation
Size1200 × 630 px (minimum 900 × 450 for decent quality)
FormatJPG or PNG
URLAbsolute HTTPS
File sizeUnder 5 MB (under 500 KB loads faster on mobile)
Response timeUnder 2 seconds

Large images on slow servers cause iMessage to skip the thumbnail and show text only.

Step 4: Test on a real device

Simulators and desktop browsers do not fully replicate iMessage unfurling.

  1. Fix tags on production URL.
  2. Send link in a new iMessage conversation (not an old thread).
  3. Wait 5-10 seconds for the preview to generate.
  4. If stale, try https://yoursite.com/page?i=1.

iMessage caches previews locally. Old conversations may keep the previous card even after you fix the server.

Common causes of broken iMessage previews

Client-rendered meta tags only

React, Next.js client components, and other SPAs that inject tags after load leave Applebot with empty <head>. Use SSR, SSG, or generateMetadata.

Redirect chains and HTTP

Apple prefers HTTPS. Long redirect chains (http → www → trailing slash) increase failure rates. Use one canonical URL in og:url.

SSL certificate issues

Self-signed certs, expired certificates, or mixed-content image URLs break the fetch silently.

Login walls and paywalls

If Applebot receives a login page instead of content, no preview is generated. Public marketing pages need public OG tags.

og:image points to WebP or SVG

JPG and PNG are safest. WebP support varies. Avoid SVG for social preview images.

CDN bot protection

Cloudflare and similar services may challenge Applebot. Whitelist or reduce bot protection on public pages.

iMessage vs. other platforms

PlatformCrawlerShared cache with others?
iMessageApplebotNo
WhatsAppfacebookexternalhitYes (Meta)
SlackSlackbotNo
LinkedInLinkedInBotNo

Fixing Facebook or WhatsApp previews does not fix iMessage. Validate Applebot access separately.

For WhatsApp-specific issues (often confused with iMessage), see WhatsApp Shows Wrong Link Preview.

Rich preview vs. link formatting

iMessage only unfurls URLs it recognizes as web links. Ensure:

  • URL includes https://
  • No extra characters attached to the URL in the message
  • URL is on a public domain (not localhost)

FAQ

Does iMessage use Twitter Card tags?

No. Applebot reads Open Graph tags. Set og:* properties.

Why does the preview differ between my iPhone and a friend's?

Each device caches previews independently. Both may need a new conversation with the updated URL.

Can I force iMessage to refresh a preview?

Delete the message, fix server tags, send in a new chat with a cache-busted URL (?v=2).

Does iMessage preview work with private or unlisted pages?

The page must be reachable by Applebot without authentication.

Do link previews work in SMS (green bubbles)?

Standard SMS does not support rich link previews. This applies to iMessage (blue bubbles) and RCS where supported.

Is there an Apple equivalent of Facebook's Sharing Debugger?

No public inspector tool. Test by sending the link in iMessage and checking page source plus OpenGraph Check.

Bottom line

Broken iMessage link previews come down to Open Graph tags in server HTML and Applebot access. Add a valid og:image on HTTPS, allow Applebot, keep images small and fast, and test in a fresh conversation on a real device. iMessage does not share Meta's cache, so Apple-specific checks are required even when Facebook previews already work.