SEO, schema, meta tags
Fix Missing Twitter Card Tags: Add summary_large_image
Without twitter:card and twitter:image, X.com falls back to OG tags imperfectly. Set Twitter Card tags explicitly for predictable, large-image link previews.
What's happening
Twitter Cards is X's metadata protocol for link previews, separate from Open Graph. The two protocols overlap in intent but use different tags: for Twitter, for OG. X does fall back to OG tags when Twitter-specific ones are missing, but the fallback is partial — Twitter-specific tags give you the most reliable preview.
The four Twitter Card types are summary (small square image alongside text), summary_large_image (large image dominating the card), app (mobile app install card), and player (embedded video/audio). For most content pages, summary_large_image is the right choice — it matches the Open Graph large preview layout.
X validates Twitter Cards via the legacy Twitter Card Validator (cards-dev.twitter.com/validator), which is partly deprecated but still useful for debugging. The X.com posting flow itself surfaces errors when a card fails to render, so test by drafting a post with the URL.
Why it matters
X link previews degrade. Without explicit twitter:card=summary_large_image, X may render a small thumbnail variant or fall back to text-only preview. Either way, post engagement drops 30-50%.
twitter:image overrides og:image when present. If your og:image is generic but a per-post twitter:image is custom, you get the better Twitter preview without affecting other platforms. This is useful for A/B testing different preview strategies on X specifically.
twitter:site and twitter:creator surface attribution. These tags add the @brand and @author handles to the preview card on X, which helps with discovery and follower growth on the platform. Missing them costs attribution.
Common causes
- Framework's metadata API supports OG but not Twitter-specific tags.
- twitter:card type is not set, so X picks summary by default (small image).
- twitter:image is missing and X falls back to og:image with reduced quality.
- twitter:title and twitter:description are missing on a page with branded copy.
- twitter:site (@brand handle) is omitted, losing the attribution tag on preview cards.
- Tags only set client-side, missed by X's crawler that does not run JavaScript.
Detect this on your site
Run a quick scan with the OG Checker. The tool surfaces this exact issue with the records and context needed to apply the fix below.
Open OG CheckerHow to fix it
- 1
Audit current Twitter Card coverage
Crawl the site and check for twitter:card, twitter:title, twitter:description, twitter:image, twitter:site on every indexable URL. The OG Checker reports both OG and Twitter Card tags side by side.
- 2
Set twitter:card to summary_large_image
is the format with the dominant 1200x630 preview image — matches Open Graph's large card on Facebook and LinkedIn.
- 3
Add twitter:title, twitter:description, twitter:image
Mirror the OG values: twitter:title=og:title, twitter:description=og:description, twitter:image=og:image. The redundancy is not wasted — it makes the X-side rendering deterministic.
- 4
Add twitter:site for brand attribution
displays the @brand handle on the preview card. For articles, also add twitter:creator with the author's handle for byline attribution.
- 5
Emit tags in SSR HTML
X's crawler does not run JavaScript. Twitter Card tags must appear in the initial server-rendered HTML response. Confirm via View Source, not just DevTools Elements after hydration.
- 6
Validate by drafting a post
Draft a post on X with the URL — the live preview tells you exactly what users will see. The legacy Card Validator (cards-dev.twitter.com/validator) is partially deprecated but useful for catching parsing errors.
Example
<meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@brewbar" /> <meta name="twitter:creator" content="@author_handle" /> <meta name="twitter:title" content="Best Espresso Machines Under $500" /> <meta name="twitter:description" content="Compare 12 espresso machines on extraction temperature, tank size, and warranty." /> <meta name="twitter:image" content="https://example.com/og/espresso-roundup.png" />
Full Twitter Card metadata with site and creator attribution
Frequently asked
X falls back to OG tags when Twitter-specific ones are missing but the fallback is incomplete — twitter:card type is not inferred and neither is twitter:site for attribution. Setting Twitter Card tags explicitly gives you predictable rendering.
summary renders a small square thumbnail alongside text. summary_large_image renders a 1200x630 image dominating the card with text below. summary_large_image is what most content sites want — it matches OG's large preview layout.
Partially. cards-dev.twitter.com/validator was deprecated in 2023 but still loads basic previews. The most reliable validation is to draft a post on X with the URL — the live preview is what users actually see.
Related fixes
SEO, schema, meta tags
Fix Missing Open Graph Tags: Add og:title, og:description, og:image
SEO, schema, meta tags
Fix Missing og:image: Add a 1200x630 Preview Image
SEO, schema, meta tags
Fix og:image Too Small: Use 1200x630 for Full-Width Previews
SEO, schema, meta tags
Fix Missing Meta Description: Write One Per Indexable Page