Likely causes
- Missing OG tags: Threads needs at least
og:titleandog:image. Without them, the link shows as a bare URL. facebookexternalhitblocked: Threads uses Meta’s shared crawler. Blocking it inrobots.txtor your firewall breaks previews on all Meta platforms.- Client-side rendered tags: the crawler doesn’t run JavaScript. See our crawling page.
- Server errors: 4xx or 5xx responses mean no preview data.
- Redirects or auth walls: excessive redirects, login walls, or cookie-based access block the crawler.
Diagnosing
1. Facebook Sharing Debugger
Open the Sharing Debugger and enter your URL. It shows exactly what Meta’s crawler sees. If it finds nothing, neither will Threads.
2. Simulate the crawler
curl -A "facebookexternalhit/1.1" -I https://example.com/your-pageYou need a 200 OK. A 403, 404, or login redirect means the crawler can’t reach you.
3. Confirm OG tags in raw HTML
curl -A "facebookexternalhit/1.1" https://example.com/your-page | grep "og:"No results? Tags are either missing or injected by JS after page load.
4. Check robots.txt
# Breaks ALL Meta link previews (Threads, Facebook, Instagram):
User-agent: facebookexternalhit
Disallow: /
Blocking meta-externalagent is fine; that’s a separate AI training bot, unrelated to previews.
The fix
- Add
og:title,og:image, andog:urlto server-rendered HTML - Allow
facebookexternalhitinrobots.txtand your WAF/firewall - SSR or pre-render if your site is a JS SPA
- Sharing Debugger, “Scrape Again” to verify