Stale Preview on Threads

Why your updated Open Graph tags aren't reflected in Threads link previews

Why it happens

Threads shares Facebook’s cache, which can hold stale data for 7 days to 2+ weeks. There’s no Threads-specific cache tool, so everything goes through Facebook’s tools. See the Facebook cache clearing page for the full walkthrough.

Quick fix

1. Confirm your server is returning updated tags

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

If the old tags are still there, it’s your server/CDN/deployment, not Meta’s cache.

2. Sharing Debugger

Open the Facebook Sharing Debugger, enter your URL, click “Scrape Again”. Click it two or three times if needed, since Meta has intermediate cache layers.

This clears the cache for Threads, Facebook, and Instagram simultaneously.

3. Purge your CDN

If you use Cloudflare, Fastly, CloudFront, etc., your CDN may still serve old HTML to Meta’s crawler. Purge the URL, then scrape again.

4. Image cache is separate

Even after a successful metadata re-scrape, the old image may persist on Meta’s CDN for hours. If you changed image content at the same URL, use a new filename to force a fresh fetch.

5. Automated invalidation

curl -X POST \
  "https://graph.facebook.com/?id=https://example.com/page&scrape=true&access_token=YOUR_TOKEN"

Or Batch Invalidator for multiple URLs.

Gotchas

  • Existing Threads posts keep their cached preview: no way to update an already-published post. Only new shares reflect changes.
  • Debugger updated but Threads still stale: give it a few minutes. The mobile app has its own cache layer.
  • Same URL, new image content: won’t be detected. Use a new filename.