Back to Blog
Twitter CardsDebugging

Twitter Card Not Showing? How to Fix It

Troubleshoot and fix missing Twitter cards on X.com: common causes, syntax errors, crawler blocking, cache invalidation, and debugging tools.

SS
Sanjay Samanta
July 2, 2026
6 min read

Pasted a link on X (Twitter) and only seeing a plain blue link or incomplete text box? You are not alone. Missing Twitter Cards are a common issue for developers and marketers.

This troubleshooting guide covers the root causes of broken Twitter Cards and provides step-by-step solutions to fix them.


1. Missing twitter:card Property

The twitter:card tag specifies the card format (summary or summary_large_image). Without it, X’s crawler doesn’t know how to format the preview and may decline to show a card altogether.

<!-- REQUIRED TAG -->
<meta name="twitter:card" content="summary_large_image" />

Ensure this tag exists in your page’s <head> section.


2. Invalid or Unreachable Image URL

If your image fails to load, X will silently drop the preview image or downgrade the card.

  • Relative Paths: twitter:image must be an absolute URL starting with https://. Relative paths like /assets/og.jpg will fail.
  • HTTP vs HTTPS: X requires secure https:// image URLs.
  • Image Errors: Verify the URL returns HTTP status 200 OK (not 404 or 301/302 redirects).

Test your image URL in terminal:

curl -I https://yourdomain.com/path-to-image.png

3. Robots.txt or Firewall Blocking Twitterbot

X uses a specialized crawler bot identified as Twitterbot. If your robots.txt file or Cloudflare WAF rules block Twitterbot, X cannot scrape your meta tags.

Check your robots.txt to ensure it isn’t disallowing Twitterbot:

User-agent: Twitterbot
Disallow:

4. Client-Side Rendering (SPA Issues)

Twitterbot does not execute client-side JavaScript. If your site is a Single Page Application (React, Vue, Angular) that appends meta tags via JavaScript after page load, Twitterbot will receive an empty HTML shell.

Solution: Use Server-Side Rendering (SSR), Static Site Generation (SSG), or Edge pre-rendering to include meta tags in the raw initial HTML response. For JavaScript frameworks, see our guide on Open Graph & Twitter Meta Tag JS Implementation.


5. Stale Twitter Cache

X caches link preview metadata aggressively to reduce server load. If you recently added or fixed your tags, X may still be displaying the cached broken state.

How to Force Cache Invalidation on X:

  1. Append a dummy query parameter to your URL when sharing (e.g., https://yourdomain.com/blog-post?v=2).
  2. Test the new URL in the Tweet Compose window.
  3. This forces X to treat the URL as new and perform a fresh crawl.

Systematic Debugging Checklist

Run through this 5-point checklist whenever a Twitter card fails to render:

  • <meta name="twitter:card" content="summary_large_image" /> is declared.
  • <meta name="twitter:image" content="..." /> points to an absolute https:// URL.
  • Page returns HTTP 200 to curl -A "Twitterbot/1.0" -s https://yourdomain.com.
  • Image dimensions are at least 300 × 157 px and under 5 MB.
  • Tags are present in raw server-rendered HTML (View Page Source).