Twitter or X card metadata audit
So you paste a link into X and the card looks broken. Happens constantly. This checks the handful of fields that actually build the share card (`twitter:card`, the title, the description, the image) and shows you where each one comes from. It puts the real Twitter tags side by side with whatever Open Graph or SEO values would step in as backup. You get both card layouts to look at, a quick read on the image, plus a report you can paste straight into your publish checklist.
Even when a preview quietly leans on Open Graph or page metadata, this keeps the Twitter-specific fields in view. Heads up: platforms cache old card data, sometimes for a while after you’ve already fixed the page.
What a Twitter Card preview should expose
A page can look perfectly fine in your browser and still share like garbage on X. The card gets built from a tiny pile of metadata, and honestly it’s usually the weakest field that wrecks the whole thing. Maybe the page declares a card type but forgot the image. Maybe it borrows a decent title from Open Graph while the Twitter description just isn’t there. Or it grabs the SEO title as a backup, and that title is way too long for a compact social card.
So this keeps the layers apart. Dedicated Twitter or X fields up top, then the Open Graph and SEO values that might fill in behind them. That gap matters. You want share cards you actually chose, not previews that happen to work because some plugin or template stuffed a nearby tag and got lucky.
Card type, title, description and image work together
Card type sets the shape. A large image card tends to earn its keep on articles, tools, anything that gains from a picture. A summary-style card works fine when the image is more of a side note. Either way, write copy for the page itself. A short, concrete title tells people what they’re about to open. The description’s job is to add the payoff, or some context, not to echo the same noun phrase back at them.
- `twitter:card` is the page saying which card format it wants.
- `twitter:title` hands X a title you picked on purpose, not a leftover fallback.
- `twitter:description` gives the share a short summary a human would actually read.
- `twitter:image` sets a visual that won’t fall apart once X crops it.
- Open Graph fields need to stay in sync, since other preview surfaces read them too.
How to review X card fallbacks
Fallbacks are handy. They also have a nasty habit of papering over real problems. If your selected source reads SEO fallback on every single field, sure, the card still renders, but nobody’s actually steering your social metadata at that point. Title from Twitter fields, image only from Open Graph? Totally fine if you meant it. The source matrix just makes that handoff visible before you go and drop the URL into a post or a campaign.
A practical publishing workflow
- Preview the exact public URL you’re going to share, not a staging version.
- Confirm the Twitter-specific fields actually exist. A card showing up isn’t proof.
- Look at the image in both the large and the summary-style layouts.
- Hold the card title up against the page topic so the click promise stays honest.
- Retest after you fix the metadata, and don’t forget the platform caches lag.
Common questions
Do I need Twitter tags if Open Graph tags exist?
Open Graph fallbacks do pick up the slack a lot of the time. But the dedicated Twitter or X fields hand you tighter control over card type and copy, and honestly I’d lean that way whenever sharing matters. Depends on your template, really, and how much you care about how the page looks when someone posts it.
Why does the checker say the image is missing when the page has images?
Because an image sitting in the body is a completely different thing from a chosen social card image. The preview wants a metadata image URL, the one pinned in a Twitter or Open Graph field. Without it, what shows up is anyone’s guess.
Should the card description be stuffed with keywords?
No. Please don’t. Write it for the actual human hovering over the link, trying to decide if it’s worth a tap. Your search metadata and your social metadata can both pull their weight for SEO without reading like a robot wrote them.
What is the difference between summary and summary_large_image cards?
summary tucks a little square thumbnail next to the text. summary_large_image goes big, a full-width banner across the top. For articles and anything visual, the large one. It just lands harder in the feed.
Do I still need Twitter card tags if I have Open Graph?
X reaches for Open Graph on most fields, so the one tag you genuinely need is twitter:card to lock in the layout. Past that, spelling out twitter:title and twitter:image is what gives you the precise control.
Why is my X card not showing an image?
Usually one of three things. The image URL has to be absolute and publicly reachable, the card type has to be set, and X caches previews hard. Re-validate the URL to force a refresh and the image often just appears.













