Why this happens
WhatsApp reads og:image to build the preview card. The image fails to appear when any
of these are true:
- The
og:imageURL is relative instead of absolute (/og.pngrather thanhttps://…) - The image is behind authentication or blocked by a firewall — WhatsApp's servers cannot reach it
- The image file is too large — keep it under ~300 KB; heavy images are skipped
- The
og:titleorog:urltag is missing — WhatsApp often drops the entire preview when core tags are absent
WhatsApp also caches previews per conversation. Once a link is shared, the cached version sticks. A link shared before you fixed the image will still show the broken preview in that thread.
Run the free Open Graph Checker to see which tags are missing, invalid, or too small.
How to check
Paste your URL into the Open Graph Checker. It confirms
whether og:image is present, whether the URL is absolute, and whether the image is
publicly reachable. Fix any issues flagged there before troubleshooting the cache.
How to fix
- Make
og:imagean absolute HTTPS URL —https://yourdomain.com/og.jpg, not/og.jpg. - Make the image public — no login, no IP restriction, no CDN token required.
- Compress the image to stay under ~300 KB. A 1200×630 JPEG at 80% quality is typically well under that. See Open Graph image size.
- Confirm
og:titleandog:urlare also present — WhatsApp needs the full set. - Share the link in a new conversation to bypass the per-thread cache.
Example
A page uses og:image="/social/preview.png" — a relative path. WhatsApp's crawler
fetches from its own servers and cannot resolve that path, so no image appears. Changing
it to https://yourdomain.com/social/preview.png (absolute, publicly accessible,
compressed under 300 KB) makes the preview image appear when the link is shared in a
new chat.