Twitter / X Card Validator
Free X (Twitter) Card validator with visual preview. The official cards-dev.twitter.com validator was retired in 2022 — we replicate the developer.x.com spec with 10 checks plus Open Graph fallback coverage.
2026 reality: X retired its official Card Validator at cards-dev.twitter.com/validator back in August 2022 — preview functionality was removed and never restored through the X rebrand. We replicate the documented developer.x.com spec for honest, defensible validation. Final rendering on X depends on its content cache and is at X's discretion.
What this tool checks
All 10 checks ground in the documented developer.x.com Card spec. The official validator at cards-dev.twitter.com/validator was retired in August 2022 and never replaced through the X rebrand — we replicate the documented spec for honest validation.
- 1
twitter:card present + valid
Must be summary, summary_large_image, player, or app. No Open Graph fallback for twitter:card itself.
- 2
Title length
twitter:title → og:title → <title> fallback chain. Warns above 70 chars.
- 3
Description length
twitter:description → og:description → <meta description> fallback. Warns above 200 chars.
- 4
Card image present
twitter:image → og:image fallback. Fails if neither exists.
- 5
Image HTTPS
X requires HTTPS images. HTTP images fail to render.
- 6
Image dimensions guidance
Card-type-specific recommendations: 1200×628 for large, 240×240 for small.
- 7
Open Graph fallback coverage
Whether og:title, og:description, og:image are present for cross-platform shares.
- 8
twitter:site / twitter:creator
Optional but useful for X analytics attribution.
- 9
twitter:image vs og:image conflict
Flags when both exist but differ — usually a CMS double-plugin bug.
- 10
Validator status disclosure
Honest note: X's official validator is dead. Final rendering is at X's discretion.
Common X Card errors (and what fixes them)
Card not rendering at all on X▾
Most often: missing twitter:card meta tag entirely. X has no OG fallback for the card type itself — set twitter:card="summary_large_image" (or another valid value) explicitly.
Image not appearing in card▾
Three common causes: (1) image URL is HTTP not HTTPS, (2) image below 300×157 minimum (X silently downgrades), (3) image host blocks Twitterbot/X user-agent via robots.txt or WAF.
Card preview shows old content after edit▾
X caches aggressively — there's no longer an official 'refresh preview' button since the validator was retired. Post a fresh tweet with the URL to trigger re-crawl, or append a cache-busting query (?v=2) for testing.
Two twitter:image tags being emitted▾
Common WordPress / Yoast + RankMath double-plugin bug. Disable one SEO plugin's social meta output, or use the canonical one (Yoast → Social tab → check 'Use Yoast SEO output').
Card shows on Facebook but not X▾
You probably have og:* tags but no twitter:* tags. X falls back to og:title / og:description / og:image — but NOT to a default twitter:card value. Add twitter:card="summary_large_image" explicitly.
Title or description truncated in feed▾
X displays approximately 70 chars of title and 125-200 chars of description in feed before truncation. Test with realistic lengths — don't write 200-char descriptions if the first 70 won't make sense alone.
Card validator pointed me to cards-dev.twitter.com — it doesn't work▾
Correct — that validator was retired in 2022. There's no official replacement. Use this tool, opengraph.xyz, or metatags.io to check the documented spec. Final rendering on X is at X's discretion.
Frequently asked questions
Is there still an official Twitter/X Card validator?▾
No. The official Twitter Card Validator at cards-dev.twitter.com/validator had its preview functionality removed in August 2022 and was effectively deprecated through the X rebrand in July 2023. As of June 2026, X provides no official, reliable, public card validator. Threads in X's developer community about replacement tools remain unresolved. Any 2026 SEO blog still linking to the dead URL is out of date. We replicate the documented developer.x.com spec — that's the honest closest thing available.
Do twitter:* meta tags still work, or did X replace them with x:* tags?▾
twitter:* meta tags are still respected by X — they have NOT been deprecated. X has not introduced x:* replacement tags. The standard set remains: twitter:card, twitter:title, twitter:description, twitter:image, twitter:site (optional), twitter:creator (optional). X also falls back to Open Graph tags (og:title, og:description, og:image) when twitter:* tags are absent. twitter:card itself has no Open Graph equivalent and must be set explicitly.
What are valid twitter:card values?▾
Four valid values per the developer.x.com spec: summary (square thumbnail + text, default), summary_large_image (large image card, most common for articles and blog posts), player (audio/video embed), and app (mobile app install card). Most publishers use summary_large_image for editorial content. Setting an invalid value or omitting twitter:card entirely will cause X to fall back to a basic link preview without rich card rendering.
What image dimensions does an X Card require?▾
For summary_large_image: minimum 300×157, maximum 4096×4096, recommended 1200×628 (1.91:1) or 1200×675 (16:9). For summary: minimum 144×144, maximum 4096×4096, recommended 240×240 square. Maximum file size 5 MB. Formats: JPG, PNG, WEBP, GIF (GIFs render as first frame only). Image URL must be HTTPS — X will reject HTTP images. If your image is below 300×157, X silently downgrades the card from summary_large_image to summary.
Why does my card not update after I changed the meta tags?▾
X aggressively caches card previews. After updating tags, posting a fresh tweet with the URL is the most reliable way to bust the cache — X re-crawls the URL when the tweet is composed. The previous official validator had a 'refresh preview' button; that no longer exists. Workarounds: append a cache-busting query string (?v=2) to test, or wait — X eventually re-crawls. Some publishers report cache durations of 7-30 days for unchanged URLs.
Should I use both twitter:* and og:* meta tags?▾
Yes. twitter:* tags are read primarily by X; og:* tags are read by Facebook, LinkedIn, Slack, Discord, WhatsApp, and most other social platforms. X falls back to og:* when twitter:* is missing, but the reverse is NOT true — Facebook and LinkedIn won't read twitter:* tags. The minimum sane setup: og:title, og:description, og:image, og:type, og:url for cross-platform coverage, plus twitter:card (no OG equivalent) for X-specific card rendering. Most modern CMSes and SEO plugins emit both sets automatically.
What's the difference between name="twitter:card" and property="twitter:card"?▾
The X spec uses name="twitter:card" content="...". The Open Graph spec uses property="og:title" content="...". Some CMSes emit twitter:* tags with property= instead of name= — X tolerates this in practice, but strict validators flag it as non-spec. Best practice: use name= for twitter:*, property= for og:*. If you're seeing both attribute styles in a single page, you likely have two conflicting SEO plugins active.
Does this tool actually fetch the image to check dimensions?▾
No — we report the recommended dimensions per card type and flag the HTTPS requirement. Actually fetching the image cross-origin and reading its dimensions is unreliable in 2026 because most CDNs block cross-origin image inspection. The image dimension check is reported as INFORMATIONAL with the spec values. The visual preview at the top of the page renders the image directly so you can visually confirm it loads.
Related free tools
Want a full AI search visibility audit?
Card meta tags are one signal of 250+ TurboAudit checks. We audit page-level AI citation readiness across 7 dimensions anchored to the Princeton GEO paper. 5 free audits, no credit card.