Stale Link Preview in iMessage

Why iMessage shows an old or outdated preview after you've updated your tags

Why there’s no simple fix

Facebook has the Sharing Debugger. Twitter has the Card Validator. iMessage has nothing. There’s no centralized cache to clear because each sender’s device generates and caches previews independently.

Why the preview is stale

Previews are generated and cached locally on the sender’s device. If the same URL is shared later, the device may reuse the cached preview. The cache duration is opaque and influenced by HTTP cache headers, but Apple doesn’t document specifics.

Also, previews baked into sent messages are permanent. Updating your tags won’t change previews in existing conversations.

Workaround: change the URL

Append a query parameter:

https://example.com/page?v=2

iMessage treats this as a new URL and fetches fresh data. The old URL (?v=1 or without the parameter) keeps its cached preview.

Workaround: set HTTP cache headers

Short cache lifetimes reduce the staleness window for future shares:

Cache-Control: max-age=3600

Won’t fix already-cached previews, but limits how long devices hold onto stale data.

Workaround: toggle iMessage (end user)

To attempt clearing the local cache:

  1. Settings > Messages, toggle iMessage off
  2. Wait 10 seconds
  3. Toggle iMessage back on
  4. Delete the conversation thread with the stale link
  5. Start a new conversation and re-send

Doesn’t work every time, but it’s the best end-user option.

Workaround: delete and re-send

Sometimes simpler:

  1. Long-press the message with the stale link
  2. Tap More… and delete it
  3. Re-paste the URL and send again

The device might re-fetch, or it might serve from cache.

Prevention

  • Set your OG tags before the URL goes live – get them right the first time
  • Use short Cache-Control values if you expect to iterate
  • Avoid changing OG tags on high-traffic URLs – more shares means more cached copies
  • Use versioned URLs during development (?v=dev), remove for production