WikiPlus

How to Fix Twitter Card Not Showing Image

You shared a link on Twitter/X and expected a big, eye-catching image card — but the tweet shows up as a small text card with no image, or no card at all. This is one of the most frustrating social media configuration problems because the cause is rarely obvious from the outside. This article covers every reason a Twitter card image can fail to appear and gives you a step-by-step process to diagnose and fix each one.

Understanding Twitter Card Types

Twitter supports several card types, and the image display depends entirely on which type your page is configured to use. If you see a text card instead of an image card, the first thing to check is whether you have specified a card type at all. The summary card is the default. It shows a small square thumbnail (120×120 pixels, cropped to a 1:1 aspect ratio from the center of your og:image) with the title and description beside it. If no twitter:card tag is present, Twitter falls back to this format. The summary_large_image card shows a full-width image above the title and description. This is the format most people want when they share a link — it is visually dominant and drives higher engagement. To enable it, you must have a twitter:card meta tag explicitly set to summary_large_image. The app card and player card are specialized formats for mobile app promotion and video/audio content respectively — these are less commonly needed. The most frequent reason an image card does not appear is the absence of twitter:card in the page's HTML. Without it, Twitter uses the summary type (small thumbnail) or, in some cases, renders no card at all if even the OG tags are missing. Adding <meta name="twitter:card" content="summary_large_image" /> to your HTML head is the single most effective fix for a missing large image card. Note that Twitter reads twitter:image before og:image. If you have set og:image but not twitter:image, Twitter will still use the OG image as a fallback — but it is cleaner to set both explicitly.

Diagnosing Why the Image Is Missing

Use a systematic checklist to narrow down the cause. Step 1: Check the twitter:card tag. View your page source (right-click > View Page Source) and search for twitter:card. If you do not find it, add it. If it says summary, change it to summary_large_image. Step 2: Check twitter:image or og:image. Search the source for twitter:image and og:image. Confirm the URL is absolute (https://), the image file exists at that URL, and the URL is publicly accessible — not behind a login, firewall, or signed CDN URL. Step 3: Test the image URL directly. Copy the og:image or twitter:image URL and paste it into a new browser tab. If it does not load, Twitter's crawler cannot fetch it either. Common causes: the image was deleted, the CDN URL expired, the server returns a 403 on hotlink requests. Step 4: Use Twitter Card Validator. Go to cards-dev.twitter.com/validator, paste your URL, and click Preview Card. This shows you exactly what Twitter sees and returns any error messages. It also resets Twitter's cache for that URL. Step 5: Check the image dimensions. Twitter's large image card requires a minimum image size of 300×157 pixels and a maximum of 4096×4096 pixels. The image should be 2:1 aspect ratio (e.g., 1200×600 pixels) for the best result. Images that are too small may be rejected. Images with extreme aspect ratios will be heavily cropped. Step 6: Check for JavaScript rendering issues. If your OG tags are added by a client-side script (React, Vue, Angular without SSR), Twitter's crawler may not execute the JavaScript and will not see the tags. All meta tags must be in the server-rendered HTML.

The Complete Twitter Card Tag Set

For a fully configured Twitter card with a large image, you need four tags in your HTML head: <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Your Page Title Under 70 Characters" /> <meta name="twitter:description" content="Your page description, 125 characters max for Twitter." /> <meta name="twitter:image" content="https://yoursite.com/images/twitter-card.jpg" /> Optionally add: <meta name="twitter:image:alt" content="A description of the image for accessibility" /> <meta name="twitter:site" content="@yourhandle" /> <meta name="twitter:creator" content="@authorhandle" /> The twitter:site and twitter:creator tags add an attribution line under the card showing which Twitter account the site belongs to. This is optional but adds a professional touch and links the card back to your brand's Twitter profile. Note on character limits: Twitter truncates titles at 70 characters and descriptions at 125 characters in the card display — slightly shorter than Open Graph limits. If your og:title is 60 characters it is safe to reuse for twitter:title, but if it is longer you may want to write a shorter version specifically for Twitter. After adding these four tags, validate with the OG Preview tool to see the rendered card, and confirm with the Twitter Card Validator to reset the cache and preview the live Twitter rendering.

Platform-Specific Twitter Card Issues in 2026

Twitter/X changed its link card behavior multiple times in 2023–2025. Here are current known issues and workarounds as of 2026. Cards not loading for new accounts: Twitter/X may not display link cards for accounts that are newly created or flagged for review. If your account is new or recently verified, some users may see your links without card previews until the account gains trust signals. Cards show correctly in Validator but not in tweets: This is a caching issue. Twitter's front-end cache and its Card Validator cache are separate. After validating, wait up to 30 minutes and reshare the URL in a new tweet (not a retweet of the broken one) for the correct card to appear. Images blocked by Content Security Policy: If your server sends a Content-Security-Policy header that restricts image loading, Twitter's crawler may be unable to fetch your og:image even if browsers can display it fine. Check your CSP headers and ensure they do not block external image requests. HTTP images silently fail: Twitter requires HTTPS for all card images. If your og:image URL starts with http://, the card will render without an image and no error will be displayed. Simply updating the image URL to https:// fixes this immediately. Cards stripped for URLs with tracking parameters: Twitter sometimes strips card previews from URLs that contain heavy query string tracking parameters (UTM or otherwise). Use clean canonical URLs for sharing and add tracking only to the version sent in email or paid ads.

Frequently Asked Questions

I set twitter:card to summary_large_image but still see a small card. Why?
The most likely cause is Twitter's cache. Even after you add the correct tags, Twitter may continue showing the old (cached) card for up to 7 days for URLs that have been shared before. Use the Twitter Card Validator at cards-dev.twitter.com/validator to force a fresh crawl and reset the cache. After validating, share the link in a brand-new tweet — do not retweet the old tweet, as the card data is attached to the original tweet and will not update.
Does the Twitter card image need to be different from my og:image?
Not necessarily. If you use the same image for both, set it in og:image and Twitter will fall back to it for twitter:image. However, the ideal dimensions differ slightly: Facebook and LinkedIn prefer 1200×630 (1.91:1 ratio) while Twitter's large card displays best at 1200×600 (2:1 ratio). If your image is 1200×630, it will work on Twitter but the top and bottom edges will be slightly cropped. For pixel-perfect control, create separate images at each platform's ideal ratio.
Why do some tweets from the same site show cards and others do not?
Inconsistent cards across pages usually means your OG or Twitter tags are hardcoded on some pages but missing from others. This happens often when a homepage has manually set tags but individual blog post or product pages rely on a template that never got OG tags added. The fix is to make your meta tags dynamic — generated from each page's own title, featured image, and description — rather than static values copied to some pages but not others.