Free tool · No sign-up

Validate your Twitter card. See how it renders on X.

Twitter shut down their official card validator. This one shows you the exact preview, checks all required fields, and tells you which og:* tags X falls back to.

Only submit URLs you are allowed to check. Linkraft analyzes publicly available page metadata and may store limited scan data to operate and improve the tools.

Try
CARD TYPES

The four twitter:card types X supports

  • summary — small square image on the left, title and description on the right. The default if twitter:card is missing.
  • summary_large_image — full-width image above the title. This is what most sites want — it takes up more space in the timeline and gets more clicks.
  • player — embeds an iframe (for video or audio). Requirestwitter:player, twitter:player:width, andtwitter:player:height.
  • app — renders an app-install card with App Store / Play Store links. Rarely used since Twitter removed the old app card rendering.
FALLBACK

X reads twitter:* first, then falls back to og:*

You don't need to duplicate every field. X will use og:title iftwitter:title isn't set, og:description iftwitter:description isn't set, and og:image iftwitter:image isn't set.

The exception is twitter:card — there's no OG equivalent, so if you don't set it, X defaults to summary (the small card).

If you want different copy on X vs. Facebook/LinkedIn, set both og:title andtwitter:title separately. Otherwise, just set the og:* tags and add twitter:card.

IMAGE RULES

What X requires for card images

  • Images must be less than 5 MB.
  • summary_large_image — minimum 300×157, recommended 1200×630. Aspect ratio 2:1.
  • summary — minimum 144×144. Displayed as a square crop.
  • Supported formats: JPG, PNG, WebP, GIF (first frame only).
  • Images must be served over HTTPS.
  • X caches images aggressively — changing the URL (or adding a query param) forces a re-fetch.
DEBUGGING

How to flush X's card cache

X caches card data for up to 7 days. If you updated your tags but the old card still shows:

  1. Append a cache-buster query parameter to the URL (e.g. ?v=2).
  2. Post the URL with ?v=2 on X — it will fetch fresh metadata.
  3. Once the new card renders, you can remove the query parameter.

At scale, managing cache invalidation across thousands of pages is what Linkraft automates.

Fix this across every route

The checker is free today. Join the waitlist for the full Linkraft platform — route-level fixes, monitoring, reports, and client-ready workflows.

By joining the waitlist, you agree to receive launch updates from Linkraft. You can unsubscribe at any time.

No spam. Just launch updates and useful resources about metadata, schema, and link previews.