Wrong Image Showing on Facebook

Why Facebook displays an unexpected image in your link preview

Likely causes

  1. Cached old image: Facebook caches previews for ~30 days. You updated the image, but Facebook is still serving the old one.
  2. Multiple og:image tags: Facebook uses the first one it finds. If a CMS plugin or theme injects its own og:image before yours, that one wins.
  3. No og:image tag: without one, Facebook runs a heuristic and picks whatever image it finds on the page. Usually a logo, icon, or ad.
  4. Duplicate tags from plugins: WordPress SEO plugins (Yoast, Rank Math, All in One SEO) sometimes output their own OG tags alongside a theme’s, creating duplicates.

Diagnosing

1. Check the Sharing Debugger

Open the Sharing Debugger and enter your URL. Look at the “og:image” field, which shows exactly which image Facebook is using.

2. View raw HTML source

Check the server-rendered HTML (not browser inspector) for all og:image tags:

curl -A "facebookexternalhit/1.1" https://yoursite.com/page | grep -i "og:image"

Multiple og:image tags? Facebook uses the first one. Remove or reorder the duplicates.

3. Check for plugin conflicts

On WordPress, multiple plugins often output competing OG tags:

  • SEO plugins (Yoast, Rank Math, All in One SEO)
  • Social sharing plugins
  • Theme built-in OG tags
  • Page builder plugins

Pick one source of OG tags and disable the rest.

The fix

  1. Make sure a single og:image tag with the correct URL appears first in your HTML
  2. Clear the cache: Sharing Debugger, click “Scrape Again” two or three times
  3. Add og:image:width and og:image:height so Facebook doesn’t have to guess:
<meta property="og:image" content="https://example.com/correct-image.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">

Preventing this

  • One source of truth for OG tags: one plugin or one template, not multiple
  • Include og:image:width and og:image:height
  • After every image change, scrape the URL in the Sharing Debugger to warm the cache