Twitter Card Validator Is Gone: How to Test X Cards Now

By Selim Aydin ·

Why the Twitter Card Validator No Longer Works (and What to Use)

You paste your URL into the Twitter Card Validator, hit enter, and instead of a preview you get a login screen. If that's how you landed here, you're not imagining a bug on your end.

The old tool at cards-dev.twitter.com used to do exactly what its name promised: drop in a link, see the card X would render for it. That page still exists, technically, but it no longer shows you anything. It redirects straight to an X login prompt.

I run into this exact moment of confusion often when I'm auditing a client's link previews. Someone shares a page on X, the image is missing or the title is stale, they go looking for "the validator" the way they always have, and they hit a wall that makes them think they've done something wrong.

They haven't. The tool changed. Nobody sent out a press release about it.

What Actually Happened to X's Card Validator

A card, in this context, is just the preview box a platform builds from a handful of meta tags sitting in your page's <head>: og:title, og:image, twitter:card, and a few others. X used to let you test that rendering directly through the Card Validator at cards-dev.twitter.com. Somewhere around 2022 to 2023, the preview function was quietly pulled. It is a pattern reported widely enough among developers and site owners that it clearly is not an isolated bug on one visitor's connection: the URL loads, but instead of a card, you get asked to sign in to X, and signing in doesn't bring the preview back.

What makes this genuinely confusing, rather than just annoying, is that X never announced a public replacement. Developers with API access have other diagnostic paths, but there's no equivalent of Facebook's Sharing Debugger or LinkedIn's Post Inspector sitting on a public X page today. That gap is exactly why "twitter card validator" is still searched thousands of times a month years after the tool stopped working. People keep looking for something that, from the outside, appears to have simply vanished.

Does the Twitter Card Validator still work?

No. The short answer is that cards-dev.twitter.com/validator redirects to an X login page and does not render a card preview for any URL you give it. If a guide tells you to "check your link in the validator," it's describing a tool that no longer behaves that way, and you should skip straight to one of the alternatives below instead of troubleshooting a dead end.

Three ways to preview a link card on X (no login required for two of them)

None of these three methods is X's official replacement, because X hasn't published one. They're the practical sequence I walk clients through when they need to know what a link will actually look like before they post it.

Start a draft post and paste the link

This is the most direct method, since it's the same rendering path a real post will use. Open a compose box on X, paste your URL, and wait a beat. X will attempt to build the card live from your current tags.

It requires an X account and, in most cases, being logged in, but it costs nothing and doesn't send your data anywhere else. Don't publish the post just to test; you can delete the draft once you've seen how it renders.

Read the tags yourself in the page source

View the page's source (right-click, "View Page Source," or Ctrl+U in most browsers) and search for twitter: and og:. This won't draw you a picture, but it tells you exactly what X's crawler will see: whether twitter:card is set, whether twitter:image points somewhere real, and whether anything is simply missing. For anyone who's never read raw HTML before, a meta tag is just a short line the browser and crawlers read but visitors never see, formatted like <meta name="twitter:card" content="summary_large_image">.

Run it through a no-login previewer

The fastest way to see the actual card, not just the underlying tags, is to run the URL through a tool built to fetch and draw it. Our own card checker at socialpreview.tools does this: it fetches your page, reads every og and twitter tag along with the fallback each one resolves to, downloads the image to confirm its real dimensions and format, and draws the card the way X, Facebook, LinkedIn, Discord, Slack, and iMessage would each render it, side by side. No account required, and nothing gets posted anywhere.

Write or check your tags before you post

Sometimes a preview tool confirms the problem but the missing piece is the tags themselves. If your page has no twitter:card or og:image at all, or you're setting up a new page and want to get it right the first time, the tag generator builds the full set (title, description, image, card type, site name, and the rest) and shows live previews as you type, so you can copy the output straight into your CMS or template before anything goes live.

Why does my link show no image on X? A troubleshooting checklist

A missing image is the single most common complaint I hear about broken link cards, and it almost always traces back to one of five causes. Work through them in order; the first two catch the majority of cases.

The twitter:image tag is missing or misspelled

If twitter:image isn't present, X falls back to og:image, which is standard, documented behavior under the Open Graph protocol that most social platforms honor. So if both tags are missing, or the value is empty, there's simply nothing for the crawler to grab. Check for typos too. twitter:img or twitter:image:src used inconsistently with older card syntax won't always be read the way you expect.

The image URL is relative, not absolute

A path like /images/hero.jpg makes sense to your own site's server, but a crawler visiting from outside needs the full address: https://yoursite.com/images/hero.jpg. Relative paths are one of the quietest ways a card silently loses its image, because the page still looks completely fine to a human visitor in a browser.

The image format or size isn't supported

X's card crawler doesn't render SVG files, even though they display fine in a browser tab, so an SVG logo used as your og:image will simply show up blank. Beyond format, there are hard size limits: images generally need to sit between 300x157px and 4096x4096px, under 5MB for JPG, PNG, or WebP (15MB for GIF). For a summary_large_image card, aim for a 2:1 ratio, commonly 1200x628px, since a narrow or oddly cropped image tends to render worse even when it technically passes the minimum.

Our breakdown of og:image dimensions for every platform covers where that 1200x628px recommendation comes from and how it compares to Facebook and LinkedIn's own limits. If you want to confirm the exact pixel dimensions and file weight of the image itself rather than guessing, imagecheck.tools inspects that file directly.

Twitterbot is blocked by robots.txt or a firewall

A robots.txt file is the plain-text rulebook at the root of your domain that tells automated crawlers which parts of the site they're allowed to fetch, under the rules set out in the Robots Exclusion Protocol standard. Bot-mitigation tools and security firewalls frequently allow Googlebot through while silently blocking the Twitterbot user agent, which breaks previews across an entire site without any obvious symptom on the page itself. This is a documented, recurring problem: it's been logged as a known default-configuration issue on platforms like Discourse's own support forum. If your tags and image both check out but the card still comes back blank, testing whether the page is blocked by robots.txt is worth doing next.

X is still showing a stale, cached card

Fixed the tags, confirmed the image loads, and the card on X still looks wrong? You've likely run into caching, not a fresh bug. That's common enough to deserve its own section, right below.

How do I refresh X's cached card?

X's crawler doesn't re-fetch your page's tags every single time someone shares the link. It stores the card it built the first time it saw that URL, which means a fix you push today can still show the old broken version to people sharing the same address tomorrow. Facebook solves this with a public "Scrape Again" button in its Sharing Debugger. X doesn't currently offer an equivalent public tool, which is part of the same gap that took the Card Validator with it.

The practical workaround, used widely by site owners in the absence of anything official, is to change the URL slightly so X treats it as new: append a harmless query string, such as ?v=2 or ?refresh=1, to the end of the link before sharing it again. This forces a fresh crawl because, from the card cache's perspective, it's a different address. It's a genuinely useful trick, but it's a community workaround, not a documented X mechanism, so treat it as a lightweight fix rather than a guarantee. Keep the query string consistent if you're updating a link that's already circulating, and expect any copies of the link already shared without it to keep showing the stale card until X's cache naturally expires on its own schedule.

If you're also dealing with stale previews on Facebook or LinkedIn for the same page, those platforms use their own separate caches with their own refresh tools; our guide to clearing platform caches covers the Sharing Debugger and Post Inspector equivalents in detail, so this article can stay focused on X specifically.

Quick reference: card types, required tags, and image dimensions

Card typeRequired tagsImage dimensionsNotes
summary_large_imagetwitter:card, twitter:title, twitter:image (or og:image fallback)Min 300x157px, recommended 1200x628px (2:1 ratio), max 4096x4096pxBest for most shared articles and product pages
summarytwitter:card, twitter:title, twitter:image (or og:image fallback)Min 144x144px, roughly square works bestRenders as a small thumbnail beside the text, not a full-width image
Both typesFile size and formatUnder 5MB for JPG, PNG, WebP; under 15MB for GIFSVG is not rendered by X's card crawler regardless of card type

Frequently Asked Questions

Does the Twitter Card Validator still work?

No. The Card Validator at cards-dev.twitter.com/validator no longer renders a preview; it redirects to an X login page, and X has not published a public replacement as of this writing. Treat any guide that tells you to "check it in the validator" as outdated, and use a draft post, the page source, or a no-login card checker instead.

How do I preview a link card on X?

Start a draft post on X and paste the link to see how X's own compose box renders it, view the page's source to confirm the raw og and twitter tags are present and correct, or run the URL through a no-login previewer that fetches the page and draws the card for you, such as the checker at socialpreview.tools. The third option is the fastest way to see the finished card without needing an X account or publishing anything.

Why does my link show no image on X?

The most common causes, in rough order of frequency, are a missing or misspelled twitter:image tag (which should otherwise fall back to og:image), a relative image URL instead of a full https:// address, an unsupported format like SVG or a file outside the 300x157px to 4096x4096px size range, Twitterbot being blocked by a robots.txt rule or a security firewall, and a stale cached card left over from before you fixed the underlying issue.

How do I refresh X's cached card?

X caches a link's card by URL and doesn't reliably re-fetch it on its own schedule, and there's no current public "force refresh" button the way Facebook offers one. The widely used workaround is to append a small query string, like ?v=2, to the URL before sharing it again, which makes X treat it as a new address and crawl the page fresh. It's a practical fix, not an officially documented guarantee, so expect older copies of the link without the query string to keep showing the stale card for a while.