Skip to content

Open Graph

Facebook showing the wrong image or share text

By Hannah Voss, Editor · Reviewed September 2026 · 7 min read

Quick answer

Facebook shows the wrong image or text when your page has missing or duplicate Open Graph tags, the image is too small or unreachable, or Facebook has cached an older version. Check the source for one clean set of og tags, make the image at least 600 pixels wide and publicly reachable, then press Scrape Again in the Sharing Debugger.

Two paper preview cards side by side, one with a layered cut-paper landscape and one with a plain grey panel instead

Fix it in this order

  1. Look at the source

    Open the post, view source, and search for og:image and og:title. Two different values mean two plugins are writing tags. Keep one.

  2. Check the image itself

    Open the og:image address in a private window. It must load without login, over https, and not be a lazy-load placeholder or a tiny thumbnail.

  3. Check the size

    Use 1200 by 630 pixels. Images below about 600 pixels wide get a small side thumbnail; below 200 by 200 they may be ignored.

  4. Check access

    Security plugins, firewalls and hotlink protection sometimes block Facebook's crawler. Its user agent contains facebookexternalhit; make sure it receives your page and image.

  5. Scrape again

    Paste the address into the Sharing Debugger and press Scrape Again. Facebook caches previews for a long time and will not notice your fix otherwise.

  6. Purge your own cache

    If your page cache still serves old tags, Facebook scrapes the old version. Purge, then scrape again.

Causes of the wrong preview, most to least common01Duplicate og tagsmost common02Image too small or placeholdervery common03Old preview cached by Facebookafter any edit04Crawler blockedsecurity settings05Relative image URLmust be absolute
Most wrong previews are the first two causes.

Facebook showing wrong image: symptom, cause, fix

SymptomCauseFix
The site logo appears instead of the post imageA theme or share plugin prints a default og:image after the SEO plugin's tagTurn off the second source; keep one og:image
A small square thumbnail beside the textImage under about 600 pixels wideServe a 1200 by 630 crop
No image at allImage under 200 by 200, relative URL, or blocked from the crawlerAbsolute https URL to a large image; allow facebookexternalhit
Yesterday's image after you changed itFacebook's cached cardScrape Again in the debugger, twice if needed
The right image in the debugger, the wrong one when sharedThe debugger scraped the fresh page; readers shared a cached one earlierPurge your page cache, scrape again, share a fresh test post
A random photo from the bodyNo og:image tag, so the crawler guessedAdd one og:image tag
A grey box or a transparent imageLazy-load placeholder or a PNG with transparencyPoint og:image at the real file; flatten transparency onto a background

A worked diagnosis

The site is invented; the fault is the usual one. A post at https://example.com/town-clock/ shares with the site logo instead of the clock photo. View source shows two image tags: the SEO plugin's og:image pointing at town-clock-1200x630.jpg on line 31, and a second og:image pointing at logo-300x200.png on line 58, printed by the share plugin's social meta option. The debugger lists both and previews the logo.

Turning off the share plugin's social meta removed the second tag. The page cache still held the old HTML, so the debugger kept showing two tags until the post URL was purged. One Scrape Again then listed a single image; a second Scrape Again a minute later rendered it, since the image is sometimes fetched on the second pass. A fresh test share from a personal account showed the clock. Two commands confirm what the crawler sees without waiting for the debugger.

curl -s -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" https://example.com/town-clock/ | grep -i "og:image"
# expect exactly one line

curl -s -o /dev/null -w "%{http_code} %{content_type} %{size_download}\n" \
  -A "facebookexternalhit/1.1" https://example.com/wp-content/uploads/2026/09/town-clock-1200x630.jpg
# expect: 200 image/jpeg and a size in the tens or hundreds of KB

The refresh sequence

  1. Fix the tag or the image.
  2. Purge the page cache and the CDN for the post URL; open the post in a private window and view source.
  3. Open the network's sharing debugger for Facebook, paste the URL, press Scrape Again, and read the list of tags it fetched.
  4. If the image is still missing from the preview, wait a minute and press Scrape Again once more.
  5. Run the LinkedIn Post Inspector on the same URL, and draft a test post on X to see its card.
  6. Share the post once from a test account on each network and look at the card that appears.

Wrong text, right image

If the title or description is wrong, the same duplicate-tag problem is likely, or the post has a social title set in your SEO plugin that you forgot. When no og:description exists, Facebook may take text from the page itself, often the first paragraph or a cookie notice.

Posts shared before the fix

Scraping again updates future shares and usually refreshes the card on existing posts over time. Posts that were shared long ago may keep their original image. You cannot change a card another person already posted, only what the network fetches next.

Other networks

LinkedIn has its own cache and its own tool, the Post Inspector. X reads twitter card tags first and falls back to Open Graph. After fixing tags, refresh each network separately. The tag set itself is described in Open Graph tags in WordPress, and the crop that survives every network's card is in choosing an Open Graph image size.

What goes wrong

  • Scraping before purging. The debugger fetches your cached page and caches the old tags again, now with a fresh timestamp. Purge first.
  • Fixing the image but not the width and height tags. Old og:image:width values that no longer match the file can leave the card laid out for the wrong shape until the next scrape.
  • Blocking the crawler while testing. A rate-limiting rule that challenges unknown bots returns a challenge page to facebookexternalhit, and the card shows the challenge page's title.
  • Trusting a preview from the composer alone. The composer shows the network's cached card. The debugger shows what it just fetched. Use both.
  • Assuming the wrong image is always a tag fault. An image replaced on a CDN under the same filename keeps the old bytes at the edge; purge the image URL too. A card that arrives with a different image from the one you set is also the starting point of share preview integrity, which covers what a reader can and cannot trust in a preview.

Check it worked

  • The crawler-agent curl above prints exactly one og:image line, and the image request returns 200 with an image content type.
  • The debugger lists one image, one title and one description that match your source, with no crawler error.
  • The preview in the debugger shows the large card, not a side thumbnail.
  • A fresh test share on Facebook, LinkedIn and X shows the intended image.
  • The post's page cache and CDN entries were purged after the last tag change, and the debugger's fetch time is later than that purge.

This guide belongs to the Open Graph and link preview guides. If you are working through the same setup, Twitter cards on X: tags and testing and adding Open Graph tags in WordPress are the usual next questions.

Sources

Questions

How do I make Facebook update the image?

Fix the og:image tag, purge your page cache, then use Scrape Again in the Sharing Debugger.

Why does Facebook pick a random image from my page?

The page has no usable og:image, so Facebook guesses. Add one image tag of at least 1200 by 630.

Why does the debugger show a different image to my page source?

It is showing Facebook's cached copy. Press Scrape Again; if it still differs, your page cache served an older version.

Why does Facebook show my logo instead of the post image?

A second og:image tag, usually from a theme or share plugin default, is printed after the SEO plugin's tag. View source, find both, and turn off the source you do not want.

How long does Facebook cache a link preview?

Long enough that you should never wait for it to expire. Scrape Again in the debugger refreshes the cache at once for future shares; cards on posts already published may update later or keep the old image.

Share this guide

Hannah Voss, Editor. Checks every guide against a working WordPress install and the networks' current documentation. Last reviewed September 2026.

  1. Adding Open Graph tags in WordPressAdd Open Graph tags to WordPress with an SEO plugin or theme code: the four required tags, image tags, per-post overrides, and how to avoid duplicate tags.7 min read
  2. Open Graph image size: 1200 by 630 and the safe zoneThe right Open Graph image size is 1200 by 630 pixels at a 1.91:1 ratio. Minimums, file limits, formats, and a centre safe zone for square crops.6 min read
  3. How to create a Facebook app IDCreate a Facebook app ID for share counts, the fb:app_id tag and sharing plugins: the dashboard steps, the settings that matter, and vanishing like buttons.5 min read
  4. Content Credentials on shared images: what survives a shareWhat C2PA Content Credentials are, why WordPress image sizes and social uploads often strip them, and how to keep provenance on the images you share.6 min read