Free SEO Tool · No Signup Required

Twitter Card Validator (X Card Checker)

See which Twitter card tags a page sets, which ones X will borrow from your Open Graph tags instead, and which are missing outright. One fetch of the page, one row per tag, and the line to add when there is no card type at all.

https://

Read-only. One fetch of the page from our server. The card image is not downloaded, and nothing is written to your site.

  • No signup, no email
  • Six twitter tags read
  • OG fallback per tag
  • Same result every run
  • Any public URL
  • Free, no daily cap
What we checked

6 tags, one URL. One GET of the page as VerandBot/1.0, redirects followed, 12 second timeout, the served HTML only. Every <meta> tag is read, written with name= or property=, and the first value of each key is kept. For twitter:card, title, description, image, site and creator we report the tag, the og:* tag X documents as its stand-in, or nothing.

How the verdict is read

A fail is no twitter:card, a card type X does not document, no title or no image in either set, or an SVG image, which X does not support. Fallback means the twitter tag is absent and the og tag X reads in its place is there: that works, so it is not a fail. Review covers the optional attribution tags, a title over 70 or a description over 200 characters (the maximums in X's markup reference), and an image URL that is not absolute.

What it cannot see

The rendered card: the OG Image Checker draws it. The image is not downloaded, so its size and dimensions are unchecked. We do not request the page as Twitterbot, so a robots.txt rule or a server that answers X's crawler differently is invisible. Tags added by JavaScript, or sitting past the first 100,000 characters of HTML, are not seen. With duplicates we keep the first value; X documents that the last twitter:card wins. X's own cache is out of reach.

About this tool

How the Twitter Card Validator reads your page.

One fetch, every meta tag, and one question per card tag: set here, borrowed from Open Graph, or missing. The card is the tool in motion on an example page, looped, and each step lights up while the card is doing it.

01

One request for the page

The tool fetches the URL you typed as VerandBot, following redirects, giving up after twelve seconds. No JavaScript runs, so what it reads is the HTML any crawler receives on the first request, before scripts add anything.

02

Every meta tag is collected

Each <meta> element is read whether it names its key with name or property, because sites mix the two. Keys starting twitter: and og: are kept, first value first.

03

One question per card tag

For the title, description and image, the tool asks what X asks: is the twitter tag there, and if not, is the Open Graph tag X falls back to? The two attribution handles have no Open Graph stand-in, and the card type only a conditional one, so those are read as set or not.

04

The missing line, written for you

When there is no card type, the card offers the one tag that sets it, choosing the large-image layout when the page has an image to fill it. The line is written here from the page's own tags; the endpoint returns the tags, not a fix.

X cards, explained

What a Twitter card is, and why X can show one you did not write.

Paste a link into a post on X and a box appears under it with a picture, a headline and a line of text. That box is built from a handful of meta tags in your page's head, or, when those are missing, from tags you wrote for someone else. Here is how X decides what goes in it.

What a Twitter card is

A Twitter card, still called that in X's own documentation, is the link preview X attaches to a post that contains a URL. When the link is first shared, X's crawler, which identifies itself as Twitterbot, fetches the page and reads the meta tags in its <head>. Those tags name the layout, the headline, the summary and the image. If they are right, the post carries a clickable card; if they are wrong or absent, it carries whatever X could assemble, which may be a bare link.

The tags are ordinary meta elements with a twitter: prefix, written with a name attribute:

<!-- inside <head> -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@yourfirm">
<meta name="twitter:title" content="Estate Planning, Explained">
<meta name="twitter:description" content="What a will covers, and what it does not.">
<meta name="twitter:image" content="https://yourfirm.com/img/estate.jpg">

What happened to the official Twitter Card Validator

For years the standard way to check those tags was Twitter's Card Validator, which drew the card for any URL. In August 2022 Twitter posted a notice on its developer forum saying it had removed the preview from the Card Validator, because the previews were not always aligned with how cards actually displayed across platforms. The notice pointed people to the post composer instead: start a new post, paste the link, and the card renders without posting. At the time, the validator page stayed up for submitting new domains and reading its logs. Reports differ on what that page does today, so we will not describe it; the advice in X's notice is the composer.

That leaves two separate questions, and this page answers the first. Are the tags on the page correct and complete? That is a question about your HTML, and a tag check answers it the same way every time. What does the card look like right now? That depends on X's current layout and its cache, and only the composer shows it exactly. For an approximation of the card itself, the OG Image Checker draws it.

The tags, and what each one falls back to

X's markup reference lists every card tag with the Open Graph property it falls back to. The rule, in X's words, is that the card processor "first checks for the Twitter-specific property, and if not present, falls back to the supported Open Graph property." So a page with good og:* tags does not need to repeat them. These are the six tags this checker reads:

TagWhat X uses it forFalls back to
twitter:cardThe layout: summary, summary_large_image, app or player. One per page.A summary card may be built from og:type, og:title and og:description
twitter:titleThe headline. The reference gives a 70 character maximum.og:title
twitter:descriptionThe summary line. 200 characters maximum. X's docs say its apps do not display it and the web version does.og:description
twitter:imageThe picture. Under 5MB; JPG, PNG, WEBP or GIF. SVG is not supported.og:image
twitter:siteThe @handle of the site, shown as attribution.Nothing
twitter:creatorThe @handle of the author.Nothing

Two details in that table do most of the damage. The card type has only a conditional fallback: X says a summary card "may be rendered" when og:type, og:title and og:description exist, which means a page with no twitter:card gets the small layout at best, however good its image is. And the attribution handles have no fallback at all, so a firm that wants its account named on every share has to write them out. X's pages disagree with each other on twitter:site: the card pages call it optional, the markup reference says it is required. This checker marks a missing handle for review rather than as a fail.

summary versus summary_large_image

Almost every article page wants one of two layouts. summary puts a small square thumbnail beside the title; X crops the image to a square on every platform, and its docs give a 1:1 aspect ratio with a 144 by 144 pixel minimum. summary_large_image puts a wide image above the title; the docs give a 2:1 aspect ratio, a 300 by 157 pixel minimum and a 4096 by 4096 maximum. Both layouts take the same title, description and image tags. The choice is the one line only you can make, which is why it is the one line with no dependable fallback.

Pick the large layout when the page has an image made for it, and the small one when all you have is a logo. X's own guidance is blunt on this point: use a unique image representing the page, not a generic one such as a site logo or an author photo that appears on every page.

Why a fix does not show up straight away

X caches card data. Its getting-started guide says content is cached for 7 days after a link with card markup is first posted, and the 2022 notice repeats that card data is cached for up to 7 days before it is refreshed. The notice also mentions adding a unique parameter to the URL as a hint to the crawler to revisit, with a delay before new tags appear on X. So if you correct a headline in your tags, the old card can keep appearing on shares of that URL for up to a week.

For most sites that is a nuisance. For a regulated firm it is a different kind of problem. The card is a headline and a summary on a public feed, attached to your name, and anyone can repost it. If the title that went out overstated a return, a result or a credential, correcting the page does not immediately correct the card. The practical answer is to treat card text as marketing copy that gets reviewed before the first share, the same as the page it points to, rather than something to fix afterwards. This checker shows you exactly which text X will use, including text borrowed from your Open Graph tags, so it can be read before it goes out.

What X needs to fetch the image

A card image fails more often than a card title, and usually for reasons that have nothing to do with the tag. The URL should be absolute, with the scheme and host written out; a relative path such as /img/card.jpg gives the crawler nothing to resolve against. The image has to be publicly reachable: behind a login, a hotlink block or a firewall rule, it will not load. And X's crawler respects robots.txt. The getting-started guide says that if a page with card markup is blocked, no card is shown, and if the image URL is blocked, no image is shown. A site that disallows everything except named search crawlers can switch its own cards off without meaning to; the Robots.txt Checker reads that file.

Common mistakes

  • No twitter:card at all. The Open Graph tags are perfect, the image is made for a wide card, and the post shows a small thumbnail or nothing, because the layout was never chosen.
  • property= instead of name=. X's parser reads Open Graph tags written with property, and its docs write twitter tags with name. Verand's site audit looks for name="twitter:card", and this checker tells you when it found the tag the other way.
  • Two twitter:card tags. A theme sets one and an SEO plugin sets another. X documents that the last one on the page wins; most checkers, this one included, report the first. If they differ, delete one.
  • A title written for Google, not for a card. A 70 character maximum is tight. A title tag with the site name appended can run past it: one of the Willowdale Equity articles we checked carries a 71 character title in both tag sets.
  • An SVG logo as the image. Unsupported. So is an image over 5MB.
  • A twitter:title that disagrees with og:title. Not an error, but it means X shows one headline and LinkedIn or Facebook another. Make the difference deliberate.
  • Checking the card and not the page. The composer shows what X displays today, from its cache. The tags show what it will display after the cache refreshes. Check both after a change.

What a good set looks like

For an article: a twitter:card of summary_large_image, a twitter:site handle for the firm and a twitter:creator handle for the author, and complete Open Graph tags carrying the title, description and a unique absolute image URL that X can read by fallback. Add twitter:title or twitter:description only when you want X to say something different from every other platform. Then check the page with this tool, paste the link into the composer, and do it before the first share rather than after.

Why this one

Why choose Verand's Twitter Card Validator?

Six things that are true of this tool, each one backed by a line in the code that runs it.

No signup, no email wall

The request carries a URL and nothing else. There is no account, no session and no database behind the tool, so there is nothing for us to keep about you.

The fallback, tag by tag

The response carries every twitter:* and og:* value on the page, so each card tag shows what X will actually read: your twitter tag, the Open Graph tag standing in for it, or nothing.

Deterministic

The tags are read by a fixed pattern from the served HTML. No model reads the page, so the same HTML gives the same answer every time.

The product's own check

The missing-card flag is the same check Verand's deep crawl runs on every page of every customer site, called directly through the product's page audit. The per-tag values come from a reader written for this tool.

Names what it cannot see

No rendered card, no image download, no request as Twitterbot, no view of X's cache. The card says so beside the result rather than in a footnote, and points to the tools that cover the gaps.

$0, no daily cap

Each run is one page fetch, so it costs nothing and is never metered. The one limit is a courtesy to the sites being fetched: 20 checks a minute per visitor.

Questions

Frequently Asked Questions About the Twitter Card Validator

The old validator, the tags a page needs, the fallback, the cache and the image.

What happened to the official Twitter Card Validator?

In August 2022 Twitter announced on its developer forum that it had removed the preview from the Card Validator, saying the previews did not always match how cards displayed across platforms. It pointed people to the post composer instead: paste the link into a new post and the card renders without posting. The notice said the validator page stayed available for submitting new domains and reading its logs. This checker does not reproduce X's preview; it reads the tags X builds the card from and tells you which ones it will use.

Which Twitter Card tags does a page need?

At minimum twitter:card, which sets the layout and has no dependable fallback, plus a title and an image. The title and image can come from twitter:title and twitter:image or, when those are absent, from og:title and og:image, which X reads in their place. twitter:description is optional and falls back to og:description. twitter:site and twitter:creator name the firm's and the author's X accounts; they have no fallback, so write them out if you want attribution.

What is the difference between summary and summary_large_image?

The layout. summary shows a small square thumbnail beside the title, cropped to 1:1, with a 144 by 144 pixel minimum in X's docs. summary_large_image shows a wide image above the title, with a 2:1 aspect ratio and a 300 by 157 pixel minimum. Both use the same title, description and image tags. Use the large layout when the page has an image made for it, and summary when the only image is a logo.

Does X use Open Graph tags if Twitter Card tags are missing?

Yes, tag by tag. X's documentation says its card processor checks for the Twitter-specific property first and falls back to the Open Graph one: og:title for the title, og:description for the description, og:image for the image and og:image:alt for the image's alt text. The card type is the exception. X says a summary card may be rendered when og:type, og:title and og:description exist and twitter:card is absent, so without the tag you get the small layout at best. The handles in twitter:site and twitter:creator have no Open Graph equivalent.

Why is X still showing my old card?

Because X caches card data. Its documentation says content is cached for 7 days after a link with card markup is posted, and its 2022 notice says card data is cached for up to 7 days before it is refreshed. The same notice mentions adding a unique parameter to the URL as a hint for the crawler to revisit, with a delay before the new tags show. Run this checker first to confirm the page itself now carries the right tags; if it does, the old card is X's cache, not your HTML.

What image size works for a Twitter card?

X's docs give a 2:1 aspect ratio for summary_large_image, from 300 by 157 pixels up to 4096 by 4096, and a 1:1 ratio for summary, from 144 by 144, cropped to a square. On both, the image must be under 5MB and in JPG, PNG, WEBP or GIF format; only the first frame of a GIF is used and SVG is not supported. This checker reads the image URL and flags an SVG or a relative path, but it does not download the image, so it cannot confirm the size.

After the check

Get the card right. Then make the page worth sharing.

A correct card gets the click; the page has to earn what comes after it. Verand writes articles from your own expertise and credentials, so both Google and the AI assistants have something of yours to name. It then tracks where you rank and where ChatGPT, Gemini, Perplexity, Claude and Google's AI answers mention you, and gates every draft so a claim your regulator would not allow never publishes.

Verand

Content built to rank in Google and get cited by ChatGPTPerplexityGeminiClaude, with every claim checked before it goes live.

support@verand.ai

© 2026 Verand. All rights reserved. TermsPrivacyAI policyAccessibilitySecurity
Not legal advice. Compliance packs are researched from the regulators' own text and tested by Verand, not reviewed by a licensed attorney.