iMessage rich link not showing
The most common cause is a JavaScript-injected og:title or og:image. Apple's LPMetadataProvider (the framework iOS uses to create rich links) does not execute JavaScript. All metadata must be in the raw HTML returned by the server. Check that og:title and og:image are in your server-rendered HTML, not added by a client-side script.
Check your iMessage preview in peek →Common causes and fixes
Error
og:title is missing from static HTML
Apple requires og:title for rich link creation. If it is missing or injected by JavaScript, iMessage will fall back to a plain URL link. Add <meta property="og:title" content="..." /> to your server-rendered HTML.
Error
Tags are injected by JavaScript
Apple's LPMetadataProvider does not execute JavaScript. All og: tags and rel="icon" must be in the raw HTML response. Use server-side rendering or static generation.
Warning
og:image is missing or not accessible
Without og:image, iMessage shows no thumbnail. The image must be publicly accessible over HTTPS.
Error
og:image URL uses HTTP instead of HTTPS
Use HTTPS for all og:image URLs. Apple requires secure URLs.
Warning
No favicon/icon set
Apple falls back to rel="icon" if og:image is absent. Add <link rel="icon" type="image/png" href="/favicon.png" /> to your HTML head.
Warning
Total media assets exceed 10 MB
Apple caps the combined size of icon, image, and video assets at 10 MB for rich link creation. Keep your og:image under 5 MB.
What Apple reads for rich links
| Tag | Used for | Required |
|---|---|---|
| og:title | Link title in rich preview | Required |
| og:image | Thumbnail image | Recommended |
| rel="icon" | Site icon (fallback) | Recommended |
| og:description | Not shown but good practice | Optional |
| twitter:card | Not read by iMessage | n/a |
How to verify your HTML before sending
- Open your page in a browser and view the page source (right-click → View Page Source).
- Search for
og:titleandog:image. Both must appear in the raw source. - If they only appear after page load (via JavaScript), move them to server-rendered output.
- Use peek to verify all required tags are present before sending in iMessage.
Correct iMessage metadata tags
<!-- Must be in server-rendered HTML, not injected by JavaScript --> <meta property="og:title" content="Your Page Title" /> <meta property="og:image" content="https://example.com/og.jpg" /> <meta property="og:description" content="A clear description." /> <link rel="icon" type="image/png" href="/favicon.png" />
Related guides
Frequently asked questions
- Why is my iMessage rich link not showing?
- The most common causes are: og:title or og:image is missing from the server-rendered HTML, or the tags are injected by JavaScript. Apple's LPMetadataProvider does not execute JavaScript when fetching rich link metadata. All tags must be in the static HTML source.
- Does iMessage execute JavaScript when creating rich links?
- No. Apple's LPMetadataProvider (the framework iOS and macOS use for rich links) does not execute JavaScript when fetching metadata. All og:title, og:image, and rel="icon" tags must be present in the server-rendered HTML returned by the server.
- What tags does iMessage use for rich link previews?
- iMessage reads og:title for the link title, og:image for the preview thumbnail, and rel="icon" as a fallback icon. There is no support for twitter:card tags in iMessage. Keep metadata in static HTML.
- How do I test my iMessage rich link?
- Send the link to yourself in iMessage on iOS or macOS. There is no official Apple debug tool for rich links. Use peek to verify that og:title and og:image are present in your static HTML before sending.
- What image size works best for iMessage rich links?
- Apple does not publish strict size requirements for og:image in rich links. The recommended universal safe size of 1200x630 px works well. Keep total media assets under 10 MB (Apple's LPMetadataProvider cap).