Twitter card image not showing on X
The most common cause is a missing twitter:card tag. X requires this tag
to be explicitly set. Without it, X shows a plain text link with no image, even if og:image is present. Add twitter:card and verify your image is public and over HTTPS.
Common causes and fixes
Error
twitter:card tag is missing
X requires twitter:card to be explicitly set. Without it, X shows a plain link with no card. Add: <meta name="twitter:card" content="summary_large_image" />
Error
No twitter:image and no og:image
X falls back to og:image if twitter:image is absent. You need at least one of these. Set og:image or add twitter:image explicitly.
Error
Image URL is not publicly accessible
Open the image URL in incognito. If it does not load, X cannot fetch it. Use a publicly hosted image.
Error
Image URL uses HTTP instead of HTTPS
X requires HTTPS for card images. Update your twitter:image or og:image to use https://.
Error
Tags are injected by JavaScript
X does not execute JavaScript when fetching card data. All twitter: and og: tags must be in the server-rendered HTML.
Warning
Image is below the minimum size
For summary_large_image, the image must be at least 300x157 px. X recommends 1200x628 px. Very small images are rejected.
Warning
File size over 5 MB
X rejects card images larger than 5 MB. Compress your image before using it as a card image.
Warning
Stale X cache on existing tweets
Previously published tweets cannot have their card preview updated. Use the X Card Validator to verify the card for new tweets.
X card image requirements
| Requirement | summary_large_image | summary |
|---|---|---|
| Recommended size | 1200 x 628 px | 144 x 144 px |
| Minimum size | 300 x 157 px | 144 x 144 px |
| Max file size | 5 MB | 5 MB |
| Formats | JPEG, PNG, WebP, GIF | JPEG, PNG, WebP, GIF |
| Protocol | HTTPS required | HTTPS required |
Verify with the X Card Validator
The X Card Validator fetches your page and shows how X will render the card. Use it to debug issues and verify before publishing.
Open X Card Validator ↑Correct Twitter/X card tags
<!-- Required for X card with large image --> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Your Page Title" /> <meta name="twitter:description" content="A clear description under 200 characters." /> <meta name="twitter:image" content="https://example.com/og.jpg" /> <meta name="twitter:image:alt" content="Description of the image" /> <!-- og: tags as fallback if twitter: tags are absent --> <meta property="og:title" content="Your Page Title" /> <meta property="og:image" content="https://example.com/og.jpg" />
Related guides
Frequently asked questions
- Why is my Twitter card image not showing?
- The most common cause is a missing twitter:card tag. X requires twitter:card to be explicitly set. Without it, X shows a plain text link with no image. Also check that twitter:image is present (or og:image as fallback), the image URL is public and over HTTPS, and the image meets the minimum 144x144 px size.
- Do I need both twitter:image and og:image?
- No. X falls back to og:image if twitter:image is not set. If you already have og:image, adding twitter:card and optionally twitter:image is usually sufficient. Using twitter:image gives you explicit control over what X shows, independent of og:image.
- What twitter:card type should I use?
- Use summary_large_image for article pages, blog posts, and most content. This shows a large image above the title and description. Use summary for short content where a small square thumbnail is acceptable. summary_large_image is the most common choice for link sharing.
- How do I force X to re-fetch my card metadata?
- Use the X Card Validator at cards-dev.twitter.com/validator. Paste your URL and click Preview Card. X will re-fetch your metadata and show the current card. Previously published tweets don't update.
- What image size does X recommend for Twitter cards?
- X recommends 1200x628 px for summary_large_image cards. The minimum is 144x144 px (for summary) or 300x157 px (for summary_large_image). Images must be under 5 MB and in JPEG, PNG, WebP, or GIF format.