Skip to content

Link previews

What happened to the Twitter Card Validator, and how to test cards now

By Hannah Voss, Editor · Reviewed September 2026 · Updated · 8 min read

Quick answer

The Twitter Card Validator stopped showing previews on 2 August 2022. X now points you to the post composer: paste the link into a new post, do not send it, and the card preview appears if the tags work. Check the source for twitter:card, and keep the image under 5 MB.

A cut-paper link preview card with a grey landscape panel, two blank text bars and a small embossed seal in one corner

What happened to the Card Validator?

On 2 August 2022 the X developer team, then still Twitter, announced on its developer forum that it had removed the preview function from the Card Validator. The reason given was that the validator's previews did not always match how cards displayed across the apps, and that the app itself was the best place to check.

The same post said the validator page stayed online for two jobs: submitting brand new domains, and reading logs that confirm whether X can reach and recognise the card on a URL. Previews would no longer be shown there. When we requested the validator address on 10 November 2026, it redirected to the X login page, so it still exists behind a login; X has published nothing newer about it that we could find.

FunctionBefore August 2022After August 2022
Visual preview of the cardYesRemoved
Log of whether the card was fetched and recognisedYesKept, per the announcement
Submitting a brand new domainYesKept, per the announcement
Hint to the crawler to revisit a URLYesKept, by adding a unique parameter to the URL

How do I test a Twitter card today?

There are four checks, from quickest to most thorough. None replaces the others; the composer tells you what X shows, and the source tells you why.

Four ways to test a card on X01Post composer previewwhat X shows now02Page sourcewhich tags exist03Crawler requestwhat Twitterbot gets04Validator logbehind a login
Start with the composer. Use the others to find the cause when it fails.

1. The post composer

  1. Open a new post

    On x.com or in the X app, start a new post. The announcement names the web client and the Android and iOS apps.

  2. Paste the full URL

    Use the exact https address with your usual trailing slash. Do not post it.

  3. Wait for the card

    If the page has working card tags, the preview renders on its own under the text box.

  4. Read the card

    Check the card type (wide image or small square), the title and the image.

  5. Discard the draft

    Close the composer without posting. Nothing is published, and the check costs nothing.

2. The page source

View source on the published page, logged out, and search for twitter: and og:. You want one twitter:card tag, and either a twitter:image or an og:image. The X cards markup reference lists the Open Graph fallback for each tag: title falls back to og:title, description to og:description, image to og:image. It also notes that if og:type, og:title and og:description exist but twitter:card is missing, a summary card may be rendered, which is the small square, not the wide one. Which tags to print and why is covered in our twitter:card markup guide; this page sticks to testing.

3. The crawler's view

X's crawler identifies itself as Twitterbot. Requesting your page with that user agent shows whether a firewall, a bot challenge or a security plugin treats it differently from a browser.

curl -s -A "Twitterbot/1.0" https://example.com/town-clock/ | grep -i -E "twitter:|og:"
curl -s -o /dev/null -w "%{http_code} %{content_type} %{size_download}\n" \
  -A "Twitterbot/1.0" https://example.com/wp-content/uploads/2026/09/town-clock-1200x630.jpg

The first command should print your tags. The second should return 200, an image content type, and a size well under 5 MB.

4. Before you publish

The composer needs a public URL. For a draft or a staging page, paste the HTML into our in-browser link preview checker, which reads the twitter and Open Graph tags without fetching anything. It tells you whether the tags are complete, not whether X can reach the page, so repeat the composer check after launch.

Why is my card not showing?

X's troubleshooting guide for cards lists the usual causes. The limits below come from that guide and the markup reference.

SymptomLikely causeFix
No card at all, plain linkrobots.txt, a firewall or the host blocks TwitterbotAllow Twitterbot in robots.txt and in any bot rules
No card, very heavy pageThe crawler stops at 2 MB of HTMLTrim the response so the tags arrive well inside 2 MB
Card with no imageImage not public, over 5 MB, or under 144 by 144 pixelsServe a public https image, 1200 by 630, well under 5 MB
Small square instead of a wide imagetwitter:card missing or set to summaryAdd twitter:card with summary_large_image
Old title or image after a changeCards are cached; the forum post says for up to 7 daysWait, or test with a unique parameter on the URL
Old image even when the text updatesImages are cached by their own URLUpload the new image under a new file name
Works on your network, fails for othersStaging host, IP allowlist or a login in front of the imageMake the page and image reachable from the public internet
SVG image ignoredSVG is not supportedExport JPG, PNG or WEBP

How do I get X to show the updated card?

There is no scrape button on X. The forum post says card data is cached for up to 7 days before it is refreshed, and the troubleshooting guide describes the crawler re-indexing roughly every seven days. Two workarounds come from X's own docs, followed by the step that finishes the job:

  1. Give the page URL a unique parameter for testing. The troubleshooting guide suggests a placeholder parameter such as ?x=test1, which X treats as a new URL and fetches fresh. Use it to confirm a fix, not in the posts you publish.
  2. Give the image a new URL. Images are cached by URL, so a changed picture at the same address can stay old. Upload under a new name, or add a version parameter to the twitter:image or og:image URL.
  3. Post the clean URL once the test card is right. Posts made before the refresh may keep the old card until X's cache expires.

Does X read the Facebook tags?

Yes, as fallbacks. A site with a complete Open Graph set needs only a twitter:card line to get the wide card. That is also why a fix in the Open Graph tags shows up on X too. Facebook's equivalent of the old validator still exists and still forces a refresh; see using Meta's Sharing Debugger. The tag set both read is explained in the Open Graph section, and image sizing that survives both crops is in the Open Graph image size guide.

What goes wrong

  • Trusting an old third-party validator. Third-party preview tools render their own guess at a card, not X's card. The composer is the reference.
  • Posting the test URL. A ?x=test1 link in a real post splits your share count and looks odd. Test with it, publish without it.
  • Using property instead of name. The markup reference writes twitter tags with the name attribute. Open Graph tags use property.
  • Two twitter:card tags. An SEO plugin prints summary_large_image and a share plugin prints summary. Remove one source.
  • Blocking Twitterbot by accident. A robots.txt rule meant for scrapers, or a bot challenge on the CDN, stops the card. The troubleshooting guide shows an explicit User-agent: Twitterbot allow rule.
  • A huge PNG. A design export over 5 MB fails silently. Export a JPG or WEBP at 1200 by 630.

Check it worked

  • A new post in the X composer, with the clean URL pasted, shows the wide image card with the right title. You then discard the draft.
  • View source, logged out, shows exactly one twitter:card tag using the name attribute.
  • The curl request with the Twitterbot user agent returns your tags, and the image request returns 200 with an image type.
  • The image is a public https URL, under 5 MB, in JPG, PNG or WEBP.
  • After a change, the composer shows the new card for a test URL with a unique parameter, and the clean URL updates within about a week.

Sources

Questions

Does the Twitter Card Validator still work?

Only partly. X removed its preview on 2 August 2022. The announcement said the page stayed for submitting new domains and reading logs. In November 2026 the address redirected to the X login, so it is not a quick public check any more.

What replaced the Twitter Card Validator?

The post composer. X's developer team told site owners to paste the link into a new post without sending it; if the card tags work, the preview appears under the text box. It reflects how X actually displays the card.

How long does X cache a card?

X's developer forum post says card data is cached for up to 7 days before it is refreshed. Images are cached by their own URL, so a new image needs a new file name to show sooner.

Why does X show a small square instead of a large image?

The twitter:card tag is missing or set to summary. X's markup reference says a page with only og:type, og:title and og:description may get a summary card. Add twitter:card with summary_large_image.

Can I test a Twitter card before the page is live?

Not in the composer, which needs a public URL. Paste the page HTML into an in-browser checker to confirm the tags are complete, then repeat the composer test after publishing.

Share this guide

Hannah Voss, Editor. Checks every guide against a working WordPress install and the networks' current documentation. Last reviewed September 2026.

  1. Twitter cards on X: tags and testingSet up Twitter card tags so links to your WordPress posts show a large image on X: the summary_large_image card, fallbacks to Open Graph, sizes and testing.6 min read
  2. How to use the Facebook Sharing DebuggerUse Meta's Sharing Debugger to see the tags Facebook scraped, read each warning, force a fresh scrape, and refresh many URLs or call the Graph API instead.9 min read
  3. Link preview checker: test your Open Graph and card tagsPaste a page's HTML to check its Open Graph and X card tags, see mock previews, and find duplicate, missing or relative tags. Runs in your browser only.10 min read
  4. Open Graph image size: 1200 by 630 and the safe zoneThe right Open Graph image size is 1200 by 630 pixels at a 1.91:1 ratio. Minimums, file limits, formats, and a centre safe zone for square crops.6 min read