Preview Not Showing in iMessage

Why your link shows as a plain URL with no preview in Apple Messages

Check if it’s iMessage or SMS

Link previews only work in iMessage (blue bubble) conversations. SMS/MMS (green bubble) does not support them. If the recipient is on Android or iMessage is unavailable, no preview will appear. This is a protocol limitation.

Low Quality Image Mode

Settings > Messages > Low Quality Image Mode disables link preview generation to save data. If a user reports that no links ever preview, check this first.

Low Data Mode

Low Data Mode (Settings > Cellular > Cellular Data Options, or per Wi-Fi network) restricts background data. When active, iMessage may skip preview fetching entirely. Affects all links, not specific URLs.

Sender not in contacts

iMessage can filter messages from unknown senders. Filtered messages may suppress link previews or only show them after the recipient taps to load the conversation.

HTTP instead of HTTPS

iMessage requires HTTPS. Plain HTTP URLs won’t generate previews due to App Transport Security:

<!-- Won't generate a preview -->
http://example.com/page

<!-- Will generate a preview -->
https://example.com/page

Server-side rendering required

The preview fetcher does not execute JavaScript. If your OG tags are rendered client-side (React, Vue, Angular), iMessage won’t see them. You need SSR or pre-rendering.

Verify tags are in the raw HTML:

curl -s https://example.com/your-page | grep -i "og:title"

Diagnosis checklist

  1. Confirm it’s iMessage – blue bubbles? Green bubbles (SMS) don’t support previews.
  2. Check Low Quality Image Mode – Settings > Messages, toggle it off.
  3. Check Low Data Mode – Settings > Cellular > Cellular Data Options, toggle it off.
  4. Check HTTPS – is the URL served over HTTPS?
  5. Check meta tags in source – curl the URL and verify og:title and og:image are in the response.
  6. Check image accessibility – load the og:image URL directly in a browser.
  7. Try a fresh conversation – delete the thread and start a new one to rule out local caching.