Skip to content

Glossary Twitter Card

What is a Twitter Card (X Card)?

Definition

A Twitter Card is the rich preview X displays beneath a shared link, generated from meta tags prefixed twitter: in the page head, falling back to Open Graph when those tags are missing.

On this page 5
  1. What a Twitter Card means today
  2. How the card is generated
  3. Why it matters
  4. Good practice
  5. Common mistakes
In brief

Which tags X reads today, which card types are left, how the Open Graph fallback works, and how to check the result now that the official validator is gone.

What a Twitter Card means today

The name has outlived the rebrand. The platform became X in 2023 and the tags are still called twitter:card, twitter:site or twitter:image. There is no equivalent x: prefix, and the check is straightforward: the home page of X's developer documentation serves a twitter:card tag with the value summary_large_image in its head today.

The second thing worth knowing is that the Cards section has disappeared from the documentation portal. The old developer.x.com addresses for Cards redirect to the front page, and the current «X for Websites» index covers embedded posts, buttons, timelines and oEmbed, with no Cards section. The full technical reference can now only be consulted in archived copies, and that is where the figures further down come from.

Against Open Graph, which already has its own entry in this glossary, the relationship is one of layers. Open Graph is the general standard many services read, and it describes the content of the page. The twitter: tags are X's own layer on top, and they mainly decide the format of the card. The Open Graph entry explains which og: properties to fill in; this one explains what X adds above them and what happens if you add nothing.

How the card is generated

The process starts when somebody posts the link. X's crawler, identified as Twitterbot, requests the page, reads the meta tags in the head and assembles the card. If robots.txt blocks that crawler there is no card; if it blocks the image, the card appears without one. The result is cached for seven days according to the last published documentation.

The reading order saves the most confusion. The processor looks for the X-specific property first and, if it is absent, falls back to the equivalent Open Graph property. So twitter:title gives way to og:title, twitter:description to og:description, twitter:image to og:image and twitter:image:alt to og:image:alt. With og:type, og:title and og:description present and no twitter:card, a summary card may be rendered. The parser also accepts Open Graph's property attribute, so existing markup does not need duplicating.

Four types remain, and the value of twitter:card chooses between them: summary, summary_large_image, app and player. Only one type per page is supported, and if several twitter:card tags appear, the last one wins. The photo, gallery and product types were retired on 3 July 2015 and automatically mapped to the two summary formats.

The documented limits are specific: title up to 70 characters, description up to 200, alt text up to 420, and an image under 5 MB in JPG, PNG, WEBP or GIF. SVG is not supported. Minimal and sufficient markup looks like this:

<meta name="twitter:card"
      content="summary_large_image">
<meta name="twitter:site"
      content="@tu_cuenta">
<meta property="og:title"
      content="Título de la página">
<meta property="og:description"
      content="Resumen del contenido.">
<meta property="og:image"
      content="https://ejemplo.com/og.jpg">
<meta name="twitter:image:alt"
      content="Descripción de la imagen.">

Why it matters

The first practical decision is how many tags to maintain. If the site already has correct Open Graph, two X-specific lines are enough: twitter:card to choose the format and twitter:site for account attribution. The fallback covers the rest. Duplicating title, description and image across both vocabularies multiplies the places where a template can drift out of sync, and the failure shows in public.

The second is which format you ask for. Without twitter:card you can end up with the small summary card even when your image is landscape and made for sharing, because the wide format has to be requested. It is one line of template and it changes how much space the link takes in the thread.

The third is how you verify the result now that there is no official tool. That changes the workflow: checking is done by pasting the URL into the app's own composer, and the seven-day cache means a fix published today may take a while to show. Check before announcing the publication, not after.

Good practice

  • Fill in Open Graph first and add only twitter:card and twitter:site on top; the remaining values are inherited through the fallback and there is less to maintain.
  • Declare the format explicitly with summary_large_image when the page has a landscape image intended for sharing.
  • Respect each vocabulary's syntax: name for the twitter: tags and property for the og: ones, without rewriting existing markup.
  • Serve the image from a URL reachable without a session or cookies, under 5 MB, in JPG, PNG, WEBP or GIF, and leave out SVG.
  • Add twitter:image:alt with a real description of the image, within the 420-character limit.
  • Check the result by pasting the URL into the app's composer before publishing, and allow for the seven-day cache when you correct something.

Common mistakes

  • Leaving several twitter:card tags in the same template assuming the first one wins: the last one does.
  • Blocking the crawler in robots.txt or serving the image from a protected path, then looking for the fault in the tags.
  • Still using photo, gallery or product, types retired in 2015 and mapped to the summary formats.
  • Counting on an official validator that is no longer available: the old Card Validator address now leads to the sign-in screen.
  • Changing the image and expecting the change to show instantly, without allowing for the cache.
Manuel Riveiro Rodriguez CEO & Digital Strategist

A technical audit covers this and everything else in one pass.

Request an audit

Frequently asked

Do the tags need changing from twitter: to x:?

No. There is no x: prefix for this markup. The tags keep the twitter: prefix after the platform's rename, and X's own developer documentation serves a twitter:card tag in its head today. Replacing them with an invented prefix leaves the page without a card.

Does the preview work with Open Graph alone?

Usually it does. X's processor falls back to og:title, og:description and og:image when the specific tags are missing, and with og:type, og:title and og:description it may render a summary card. What you lose is control of the format, because the large-image version has to be requested.

Which card types still exist?

Four according to the last published documentation: summary, summary_large_image, app and player. The photo, gallery and product types were retired on 3 July 2015 and mapped to the two summary formats. Only one type per page is supported, and where several appear the last one wins.

Where has the Card Validator gone?

It is no longer available. X removed the tool's preview in August 2022 and pointed users to the app's composer; today the validator address leads to the sign-in screen. There is no official replacement, so checking is done by pasting the link into the composer.

Do these tags work on other platforms?

Tags with the twitter: prefix are specific to X. What is interoperable is Open Graph, a public standard that other services read. How any single service interprets those properties is not uniformly documented, so it pays to check the preview on each platform that matters to you.

Sources

  1. X's current documentation for websites still uses the twitter: prefix in its configuration meta tags, for example twitter:dnt and twitter:widgets:theme.
  2. The X developer documentation home page serves a twitter:card tag with the value summary_large_image in its head, checked on 18 August 2026.
  3. The current «X for Websites» index covers embedded posts, timelines, buttons, oEmbed and the publish.x.com configurator, and no longer includes a Cards section.
  4. Archived copy of the Cards markup reference, with the Open Graph fallback table and the limits for title (70), description (200), alt text (420) and image (5 MB, no SVG). This is the last published state of that page.
  5. Archived copy of the getting started guide: four twitter:card values, one type per page with the last one taking priority, Twitterbot as the crawler subject to robots.txt, and a seven-day cache.
  6. Official notice from the developer team, dated 2 August 2022, about the removal of the Card Validator preview and the recommendation to use the app's composer instead.
  7. Announcement of 3 June 2015 retiring the Photo, Gallery and Product cards as of 3 July 2015, and mapping them to the summary formats.
  8. The Open Graph protocol specification, with the four basic properties og:title, og:type, og:image and og:url and the structured image properties.