X card validator: how to test link cards in 2026
The X card validator is gone. Here is what replaced it: the composer preview, free third-party checkers, the meta tags X still reads, and how to bust the cache.
On this page · 13 sections
- Quick answer
- What happened to the Twitter card validator
- What an X card looks like in 2026
- The meta tags X still reads
- How to test a card now: four methods that work
- 1. The composer preview (the only first-party check)
- 2. Ask your own page what X would see
- 3. A free third-party checker
- 4. Your server logs
- Why your card is not showing
- How to force a refresh without a validator
- Does the card still matter?
- Bottom line
The short version
- ▸X's official card validator is dead. The preview was removed in August 2022 and, checked 16 September 2026, cards-dev.x.com/validator redirects to an x.com login page. Pages telling you to 'paste your URL into the validator to force a re-crawl' are repeating advice that stopped working years ago.
- ▸X's own Cards documentation is gone too: the old developer.x.com cards URLs now redirect to docs.x.com/overview, and the live documentation index has no Cards entry at all (checked 16 September 2026).
- ▸The two checks that work now: paste the link into the X composer and look at the preview, or run a free third-party checker such as BrandBird or Social Share Preview. Both are free with no signup.
- ▸The tags still work even though the docs vanished. twitter:card, twitter:title, twitter:description and twitter:image are still read, with Open Graph as the fallback, so keep them and keep the image under 5 MB.
- ▸There is no re-scrape button. X caches card data for roughly seven days, so change the URL (add ?v=2) when you need a fresh crawl.
Quick answer
The X card validator no longer exists. The tool at cards-dev.x.com/validator lost its preview in August 2022, and checked on 16 September 2026 that URL redirects to an x.com login screen. To test a link card now, paste the URL into the X post composer and read the preview, or use a free third-party checker such as BrandBird or Social Share Preview. To force a refresh, change the URL, because the re-scrape button is gone.
Last updated: September 2026
What happened to the Twitter card validator
For a decade the answer to "why does my link look wrong on X (formerly Twitter)" was one URL: the card validator. You pasted a link, it showed the card, and hitting it forced a fresh crawl. That workflow is gone in three steps.
August 2022: X staff posted in the developer forums that "we've recently removed the preview functionality from the Card Validator," pointing people at the post composer instead (X Developer Community, 2 August 2022). The URL stayed up, but it stopped showing you a card.
October 2023: X removed headlines and description text from in-stream link previews entirely, leaving the image with the domain name overlaid in the bottom-left corner (TechCrunch, 5 October 2023). Headlines came back briefly in January 2024 as small text over the image, then were rolled back within hours (TechCrunch, 3 January 2024).
Now: the validator URL is a login wall. Request cards-dev.x.com/validator and it lands on x.com/login?redirect_after_login=..., which we checked on 16 September 2026. cards.x.com/validator returns a 404.
Here is the part nobody else seems to have noticed. X's own Cards documentation is also gone. The old developer.x.com/en/docs/x-for-websites/cards/... URLs now redirect to docs.x.com/overview, and the live documentation index that X publishes for developers and AI agents lists the X API, Ads API, enterprise endpoints and SDKs with no Cards section anywhere in it (checked 16 September 2026). The spec still describes how the platform behaves, but you have to read it from an archive.
That matters when you are searching for help, because most pages ranking for "twitter card validator" still tell you to paste your URL into a tool that has not previewed a card since 2022, and a few sell you a subscription on the back of it.
What an X card looks like in 2026
Before you debug a card, know what a correct one looks like now. Post a link on X today and the timeline shows your image with the domain overlaid at the bottom-left. Your headline and description are not displayed in-stream, which has been true since the October 2023 change.
Three practical consequences:
- Your image carries the whole message. If the image is a decorative gradient, the card says nothing. Put the hook in the image, and keep text clear of the bottom-left corner where the domain badge sits.
- Your post text has to do the work the headline used to do. Write the context into the post, not into the page title.
- The card type still changes the size.
summary_large_imagerenders a wide image, plainsummaryrenders a small square thumbnail. That one tag is still the difference between a card people notice and one they scroll past.
Sizing the image right is its own job, and we cover the current dimensions in X image sizes.
The meta tags X still reads
None of the tags changed when the documentation disappeared. From X's Cards Markup Tag Reference (archived 28 March 2025), the working set is short:
| Tag | What it does | Limit | Falls back to |
|---|---|---|---|
twitter:card | Card type: summary, summary_large_image, app, player | Required | og:type may render a summary card |
twitter:title | Headline the card carries | Max 70 characters | og:title |
twitter:description | Supporting text | Max 200 characters | og:description |
twitter:image | The image | Under 5 MB, JPG, PNG, WEBP or GIF, no SVG | og:image |
twitter:image:alt | Alt text for screen readers | Max 420 characters | og:image:alt |
twitter:site | @username of the site | Optional | n/a |
For summary_large_image the archived docs give the image spec precisely: 2:1 aspect ratio, minimum 300x157, maximum 4096x4096 pixels, under 5 MB. Only the first frame of an animated GIF is used.
A minimal, correct head looks like this:
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@yourhandle" />
<meta property="og:title" content="Your headline, under 70 characters" />
<meta property="og:description" content="One sentence of context, under 200 characters." />
<meta property="og:image" content="https://example.com/og/page.png" />
<meta name="twitter:image:alt" content="Plain description of the image" />
Note what is doing the work: the Open Graph tags. X's parser falls back to property/content markup, so you do not need a duplicate twitter: tag for every field. Set the card type, then let OG carry title, description and image. Fewer tags, fewer ways to drift out of sync.
How to test a card now: four methods that work
1. The composer preview (the only first-party check)
Open the X composer, paste your URL, wait for the preview to render, then delete the draft. This is what X's own staff pointed people to when the validator preview was removed. It is slow and it burns a draft, but it is the ground truth: it is X's crawler and X's renderer.
2. Ask your own page what X would see
This is the check that replaces the validator's most useful feature, and you can run it in a second:
curl -sA "Twitterbot/1.0" https://example.com/your-page | grep -i "twitter:\|og:"
Twitterbot is the user agent X crawls with, documented with version strings such as Twitterbot/1.0. If that command returns nothing, X sees nothing, and the problem is your page or your server, not the card renderer. This also catches the nastiest case: a site that serves tags to browsers but strips or blocks them for bots.
3. A free third-party checker
Two are free with no signup, both checked 16 September 2026:
| Tool | Free | Signup | Notes |
|---|---|---|---|
| BrandBird card validator | Yes | No | States "100% free to use. Test unlimited URLs... without any sign-up" |
| Social Share Preview | Yes | No | Previews X, Facebook, LinkedIn and Pinterest side by side, plus a browser extension |
One caveat worth holding on to: these render a preview from the tags they fetch. They are not X, they do not see X's cache, and a tool claiming to "force a re-crawl" cannot do that any more than you can.
4. Your server logs
If a card is blank and nothing above explains it, grep your access logs for Twitterbot. No hits means the crawler never reached you, which points at robots.txt, a firewall rule, or a bot-protection product at your CDN. X publishes its crawler ranges for exactly this check: 199.16.156.0/22, 199.59.148.0/22 and 192.133.76.0/22, ASNUM AS13414.
Why your card is not showing
Most broken cards come down to a short list. These causes and thresholds come from X's archived troubleshooting guide, which is still the most specific documentation that exists.
| Symptom | Likely cause | Fix |
|---|---|---|
| No card at all | robots.txt or a CDN bot rule blocks Twitterbot | Add a User-agent: Twitterbot exception and allowlist the crawler ranges |
| No card, page loads fine in a browser | Page response over the crawler's 2 MB limit | Trim the HTML the crawler receives |
| Card shows, image missing | Image over 5 MB, under 144x144, an SVG, or not publicly reachable | Re-export as JPG or PNG at 1200x600 or larger |
| Old title or old image after an edit | The seven-day cache | Share the URL with a query string appended |
| Card renders as a small square | twitter:card missing or set to summary | Set summary_large_image |
| Nothing works on a staging site | The crawler cannot reach private hosts | Test on a public URL |
| Intermittent failures | TLS configuration, since the crawler requires TLS 1.1 or greater | Check your certificate chain |
Two extra traps that are not in any X documentation. Redirect chains eat cards: if your link bounces through a shortener into a tracking redirect and then to a canonical URL, the crawler may give up before it reaches the tags. And bot-protection products routinely classify Twitterbot as a scraper by default, so a card that broke the same week you turned on a new firewall is almost certainly that.
How to force a refresh without a validator
The validator used to double as a cache-buster. There is no button for it now, and X caches card content for about seven days after a link is first posted.
What actually works: make the URL new.
- Append a harmless parameter:
https://example.com/page?v=2. X keys the cache on the URL, so it fetches your tags again. - Do the same with images. Images are cached by URL too, so rename
hero.pngtohero-v2.pngor append?v=2when only the image changed. - Wait it out. If you cannot change the URL, the crawler re-indexes roughly every seven days anyway.
A shortener works for the same reason, though it adds a hop and you keep that hop forever in whatever you posted. A query string is cleaner.
Does the card still matter?
Honestly, less than it did, and that is worth saying plainly on a page about fixing cards.
X shows link posts with the headline stripped, and posts carrying external links generally get less distribution than posts that keep people in the app. Getting your card right stops your link looking broken, which is worth the ten minutes. It will not change your reach much on its own. If reach is the actual question, the X algorithm breakdown is the more useful read, and X analytics will tell you what your link posts are really doing.
A good link post in 2026 has a simple shape: write the hook in the post text, attach an image that reads on its own, and treat the card as packaging rather than the message. If you want more free utilities for this kind of work, free X tools has the current list, and X-Autopilot handles the posting and replying side from your own browser session rather than a cloud dashboard.
Bottom line
The X card validator is not down, not moved, and not coming back: the preview died in August 2022, the URL is now a login wall, and even the Cards documentation has been dropped from X's live developer docs. The markup still works exactly as specified, so keep twitter:card plus your Open Graph tags, keep the image under 5 MB, check what the crawler sees with a one-line curl, preview in the composer or a free third-party checker, and change the URL when you need a fresh crawl. Anyone still telling you to paste a link into the validator is quoting a tool that has not answered in four years.
Frequently asked
Answers indexed by Google + AI assistants.
Does the X card validator still work?+
No. The old validator at cards-dev.x.com/validator lost its preview feature in August 2022, and checked on 16 September 2026 the URL redirects to an x.com login screen rather than a working tool. X has not shipped a replacement, and the Cards documentation itself is no longer listed in the live developer docs index.
How do I preview an X card without the validator?+
Paste the link into the X post composer and look at the preview it renders. That is the only first-party check left. For a faster loop, use a free third-party checker such as BrandBird's card validator or Social Share Preview, both free with no signup as of 16 September 2026.
How do I force X to refresh a link card after I change my meta tags?+
There is no re-scrape button any more. X caches card data for about seven days after a link is first posted, so add a harmless query string to the URL (for example ?v=2) and share that instead. X treats it as a new address and fetches your tags again.
Do twitter:card meta tags still matter in 2026?+
Yes, they still decide whether your link renders as a large image or a small square, and X falls back to Open Graph tags (og:title, og:description, og:image) when the twitter: equivalents are missing. What changed is display: since October 2023 the in-stream card shows the image with the domain overlaid, not your headline.
Why is my X card not showing an image?+
Usual causes: the image is over 5 MB or under 144x144 pixels, the image URL is not publicly reachable, robots.txt or a bot-blocking rule at your CDN is blocking the Twitterbot user agent, your page response is over the crawler's 2 MB limit, or the old card is still cached from a previous crawl.
How can I check what X actually sees on my page?+
Request your own URL with the crawler's user agent and read the tags back: curl -sA 'Twitterbot/1.0' https://example.com | grep 'twitter:'. If that returns nothing, X sees nothing, and no validator would have helped.
- X Developer Platform - Cards markup, the full Cards Markup Tag Reference including title 70-character and description 200-character limits, 5 MB image cap and OG fallback behaviour (archived 28 March 2025; the live URL now redirects to docs.x.com/overview, checked 16 September 2026)
- X Developer Platform - Getting started with Cards: 'Content is cached by Twitter for 7 days after a link to a page with card markup has been published in a Tweet' and the Twitterbot robots.txt exception (archived 2025)
- X Developer Platform - Troubleshooting Cards: Twitterbot IP ranges 199.16.156.0/22, 199.59.148.0/22, 192.133.76.0/22, ASNUM AS13414, 2 MB page limit, 144x144 minimum image (archived 2025)
- X Developer Community - 'Card Validator - preview removal': X staff confirm the preview functionality was removed from the Card Validator (posted 2 August 2022)
- TechCrunch - X cuts headlines from link previews (published 5 October 2023)
- TechCrunch - X briefly brought back headlines to link previews, but they are gone again (published 3 January 2024)
- BrandBird X (Twitter) Card Validator - '100% free to use. Test unlimited URLs... without any sign-up' (accessed 16 September 2026)
- Social Share Preview - free share-preview debugger for X, Facebook, LinkedIn and Pinterest (accessed 16 September 2026)
Product designer and indie hacker. Runs the agent on his own X account every day and writes up what the data shows, including when it's inconvenient.
Follow on X →