Open Graph image not showing? Find which part is failing
A shared link shows no picture when the og:image tag is missing or wrong, the image URL is relative or doesn't return an image, the image is too small or too big, the app's crawler can't fetch it, or the app is showing a cached preview. Check them in that order; each step only matters once the one before passes.
The first five can be checked from outside in one go. Paste the page address and the checker reads your Open Graph and Twitter tags, fetches the og:image, and reports its status, file type, file size and real pixel size, with a preview of the card.
1. The tag is missing, misspelled or added too late
The tag must be in the page's <head>, in the HTML the server sends:
<meta property="og:image" content="https://www.example.com/images/share.jpg">Note property, not name (the Open Graph protocol uses property; X's twitter: tags use name). Preview crawlers fetch your page's HTML directly, and Meta and WhatsApp document that they read the tags from the start of it, so put the tag in the HTML your server sends, not in a script that runs afterwards. Our checker also reads the raw HTML without running JavaScript: if it says there is no og:image but you can see one in your browser's inspector, your site is adding the tag with script. Whether a given app's crawler runs scripts is not documented, so treat that as our observation, not a rule.
2. The image URL is relative or wrong
Use a full, absolute URL, starting with https:// (WhatsApp's documentation requires an absolute URL). /images/share.jpg works in a browser but may not work in a preview crawler. Also check for typos, a staging domain, or a URL that includes a size suffix the CMS no longer generates.
3. The URL doesn't return an image
Open the image URL on its own. It must answer 200 with an image file. JPEG and PNG work everywhere; GIF and WebP are not accepted by every app (Facebook lists only JPEG, GIF and PNG). Common failures: a 404 after the image was renamed, a redirect to a login page, or the site's 404 page returned with an HTML content type. The checker reports each of these, and flags images over 5 MB: that is the stated limit for LinkedIn and X, while Facebook allows up to 8 MB and WhatsApp asks for under 600 KB.
4. The image is too small or the wrong shape
Facebook documents a minimum of 200 × 200 pixels, shows images under 600 × 315 much smaller, and recommends at least 1200 × 630 pixels at about a 1.91:1 shape. LinkedIn shows images under 401 pixels wide as a thumbnail. The checker follows those figures: it treats anything under 200 pixels on a side as a problem to fix, and asks you to review images narrower than 600 pixels or far from 1.91:1. Each app crops differently, so a portrait photo is cropped, sometimes heavily.
5. The app's crawler is turned away
Bot protection, a firewall rule or a login wall can stop an app's crawler from reading the page or the image even though it opens fine for you; LinkedIn's help names a protected directory or a block on its crawler, and Meta asks sites to allow its crawler through. A robots.txt rule can stop Facebook's crawler too (Slack says it does not honour robots.txt, so for Slack look at a firewall or login wall instead). If our checker is refused (for example with a 403), the apps may be too. If our checker gets through, that's a good sign, but each app fetches from its own servers with its own identity, so it isn't proof.
6. The app is showing an old preview
Apps cache previews, sometimes for a long time: Facebook says a refresh can take as much as 30 days, LinkedIn asks you to allow 48 hours, and Slack caches for around 30 minutes. If the checker shows the right image and the app still shows the old one (or none), it's the cache:
- Facebook: the Sharing Debugger (needs a Facebook login) fetches your page again and shows what Facebook read. Facebook caches images by URL, so a replaced image needs a new URL.
- LinkedIn: Post Inspector refreshes the preview for new posts that include the URL.
- X: the Card Validator no longer shows previews; paste the link into a new post in the composer (don't post it) to see the card. X reads
twitter:cardand falls back to yourog:tags for the title, description and image;summary_large_imageasks for the large card. X documents adding a unique parameter to the URL as a way to hint that its crawler should look again. - WhatsApp and Slack: neither publishes a refresh tool. A new preview appears once the app fetches the page again. Sharing a slightly different URL, for example with a query string, often works as well; only X documents that, so treat it as our observation for the other apps.
How to confirm the fix
Run the check again until the image loads with a sensible size and the tags pass, then share the link once somewhere private (a message to yourself) in the app you care about. That last step matters: we can show what your page declares and whether the image works, but not how each app will render it on the day.
If the image is fine but a script or stylesheet is broken on the same page, see Mixed content.
Sources
We read these official pages on 2026-10-13.
- Images in Link Shares - Meta for Developers
- A Guide to Sharing for Webmasters - Meta for Developers (page dated 2026-06-30)
- Meta Web Crawlers - Meta for Developers (page dated 2026-05-21)
- Link Previews - WhatsApp, Meta for Developers (page dated 2026-05-21)
- Make your website shareable on LinkedIn - LinkedIn Help
- Use Post Inspector to refresh URL - LinkedIn Help
- Slack Robots
- The Open Graph protocol
- Card Validator - preview removal - X Developers forum (2022-08-02)
- Cards markup - X Developer Platform (archived copy of 2026-01-16; the page has since been removed)
Fixed this one? Before you send people to the page, run the full pre-publish check for everything else: indexing signals, link preview, broken links, alt text, structured data and HTTPS in one pass.