How X decides what to show
X (Twitter) reads dedicated twitter:card, twitter:title, twitter:description,
and twitter:image tags when present, but falls back to a page's Open Graph tags (og:title,
og:image, and so on) for anything it does not find a Twitter-specific tag for. This checks both
sets together and shows which values X would actually end up using, plus a preview of the resulting card.
Why checking the fallback behavior matters, not just the raw tags
Looking only at whether twitter:* tags exist misses the full picture, since X will happily
use your Open Graph tags instead when a Twitter-specific one is missing - this tool resolves that fallback
logic for you, showing the actual final value X would display rather than requiring you to manually cross-
reference two separate sets of meta tags yourself.
Why dedicated twitter:* tags are still sometimes worth adding
Even though Open Graph tags work as a fallback, adding explicit twitter:* tags is useful when
you specifically want the X preview to look different from your general social preview - a different cropped
image, a shorter title tuned for X's card format, or explicitly forcing the larger "summary_large_image" card
type rather than leaving it to X's own inference.
Why the card preview matters as much as the pass/fail checks
Individual pass/fail checks confirm each tag technically exists, but the actual preview shows how those values combine visually - a title that's technically "found" might still be awkwardly truncated, or an image might crop poorly at the card's fixed aspect ratio, issues that only become obvious by seeing the rendered card itself.