Wrong Image Showing on Threads

Why Threads displays an unexpected image in your link preview

Likely causes

Same root causes as Facebook’s wrong image issue, since Threads shares the crawler and cache:

  1. Relative URL: og:image must be a full HTTPS URL. Relative paths like /images/og.jpg fail silently or produce unexpected results.
  2. Image below 200 x 200px: ignored entirely. The crawler falls back to picking a random image from the page.
  3. Multiple og:image tags: the crawler uses the first one. If a CMS plugin or theme injects its own og:image before yours, that one wins.
  4. Cached old image: Threads shares Facebook’s cache (~7 days, sometimes longer).

Diagnosing

1. Sharing Debugger

Open the Facebook Sharing Debugger and check the “og:image” field. It shows exactly what Meta’s crawler is using for both Threads and Facebook.

2. Verify image URL is absolute and reachable

curl -A "facebookexternalhit/1.1" -I https://example.com/your-image.jpg

Need a 200 OK with a valid Content-Type. A 403, 404, or login redirect means the crawler can’t get to it.

3. Check for duplicate tags

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

Multiple tags? The crawler uses the first. Remove or reorder duplicates.

4. Check dimensions

  • Minimum: 200 x 200px (ignored below this)
  • Recommended: 1200 x 630px for best mobile display

The fix

  1. Absolute HTTPS URL for og:image
  2. Image at least 200 x 200px (ideally 1200 x 630)
  3. Single og:image tag, or correct one first
  4. Add og:image:width and og:image:height:
<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">
  1. Sharing Debugger, “Scrape Again” two or three times
  2. If image content changed but the URL stayed the same, use a new filename to force Meta’s CDN to fetch it fresh