You share a link and Facebook shows the wrong picture — an old logo, a random photo, or nothing at all. The cause is almost always one of four things: a missing tag, an image Facebook cannot use, or a cached card from an earlier share. Here is how to find which one.
How Facebook picks the image
When a link is shared, Facebook’s crawler fetches the page and reads its Open Graph tags. The og:image tag tells it exactly which picture to show. If that tag is missing, Facebook guesses from the images on the page — and guesses badly. If the tag is present but the image fails Facebook’s rules, it falls back to another image or none. And once Facebook has stored a card for a URL, it keeps serving that stored copy until it expires or is refreshed.
Cause 1: the og:image tag is missing or wrong
View the page source and search for og:image. If it is absent, that is your answer: add the tag with an absolute https:// image URL. If it points to the wrong file, fix the address. Relative image paths, images behind a login wall, and images that redirect oddly all fail the same way — the crawler cannot fetch them, so it moves on.
Cause 2: the image breaks Facebook’s rules
- Too small. Facebook ignores images under 200 by 200 pixels. Use 1200 by 630 for the large card, 600 by 315 at minimum.
- Wrong format. JPG and PNG are safe. WebP still fails often in Facebook’s crawler.
- Too big. Keep the file under 8 MB.
- Wrong ratio. A square or tall image gets cropped or shrunk into a thumbnail instead of the wide card.
Cause 3: Facebook is showing a cached card
This is the most confusing cause, because everything on your page is already correct. Facebook stored the card the first time the URL was shared, and it serves that stored copy for up to about 30 days. The fix is the Sharing Debugger: paste your URL, click Debug, then click Scrape Again. That forces Facebook to re-read your page and rebuild the card. If the image itself changed but kept the same filename, upload it under a new filename too — Facebook caches images by URL.
Cause 4: a plugin or theme is setting the wrong image
On WordPress, SEO plugins let you set a social image per post. If that field holds an old image, it overrides everything else. Check the post’s social settings before you dig into code. The same applies to page builders and themes with their own social image fields — one stale field beats a correct template.
When nothing works
If the debugger shows the right image, the tags are correct, and new shares still look wrong, check two last things. First, your server or CDN may be serving a cached copy of the page to Facebook’s crawler — purge the site cache and scrape again. Second, the image host may block Facebook’s crawler by robots rules or firewall; an image that loads for you can still be unreachable for a crawler. Move the image to a public host that allows crawlers, point og:image at it, and scrape again. In rare cases a URL that has been shared very heavily can resist refresh entirely; changing the post’s permalink is the last resort.
Diagnose it in order
- Open the Sharing Debugger and see which image Facebook actually read. That tells you whether the problem is your tags or the cache.
- If the debugger shows the wrong image, fix the tag or the image, then Scrape Again.
- If the debugger shows the right image but shares still look wrong, the shares are old: their cards were baked in when first posted and do not update. New shares will be correct.
- Before your next launch, test the card with the preview generator below. Its mock cards show Facebook, X, and WhatsApp side by side — an approximation, not Facebook’s real renderer, but enough to catch a wrong image or a cut-off title before the public sees it.
