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:
- Settings > Messages, toggle iMessage off
- Wait 10 seconds
- Toggle iMessage back on
- Delete the conversation thread with the stale link
- 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:
- Long-press the message with the stale link
- Tap More… and delete it
- 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-Controlvalues 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