Twitter Card Tags (X Cards): The Current, Honest Guide
What twitter:card meta tags do, the four card types, the Open Graph fallback rule, and what X actually broke — the dead validator, the vanished Cards docs, and link-post reach effects (a separate system from card rendering). Not a ranking factor.
Twitter Card tags are <meta name="twitter:..."> elements that tell X's link-unfurling system what preview to build for a shared URL. Four card types: summary, summary_large_image (the default for articles), app, and player — these are the last documented types; no current official X specification exists to reconfirm them against. Every twitter:* property falls back to its og:* counterpart if missing — except twitter:card itself, which has no fallback and must be set explicitly. Use name=, not property= (mixing them up gets the tag silently ignored) — long-standing, consistently practitioner-reported behavior. What's changed since the Musk-era rebrand and matters most in 2026: the official Card Validator was deprecated in 2022 and its URL now redirects to an X login page; developer.x.com's Cards docs now redirect to a generic page with no Cards content; twitter:site/twitter:creator attribution has degraded; and X applies confirmed reduced reach to some external-link posts — a separate system from whether the card itself renders, so don't use one to diagnose the other. Not a Google or Bing ranking factor: Google's supported-meta-tags reference never mentions twitter: or og: at all. Value is social CTR only. This is a deep dive under the Meta Tags for SEO hub.
TL;DR — Twitter Card tagsTwitter Card tags (now often called \"X Cards\") are <meta name=\"twitter:...\"> tags in a page's <head> that tell X's link-unfurling system what rich preview to build for a shared URL — image, headline, description, and (for player cards) an embeddable frame. The four card types are summary, summary_large_image, app, and player. Every twitter:* property falls back to its og:* equivalent if missing — except twitter:card itself, which has no fallback and must be set explicitly. They are not a Google or Bing ranking factor. (now sometimes called “X Cards”) are lines of HTML in your page’s
Evidence for this claim X Cards use page metadata to select a card type and populate a shared-link preview. Scope: X link-preview markup behavior; rendering and product features can change. Confidence: medium · Verified: X Developer Platform: Cards markup Evidence for this claim Google's supported-meta-tag reference does not treat twitter card metadata as a Google Search control. Scope: Absence from Google's supported search-control tags supports no direct Google metadata behavior, not a universal claim about social signals. Confidence: high · Verified: Google Search Central: Meta tags and attributes<head>that tell X what preview to show when someone shares your link — the image, headline, and description. You mostly get these “for free” from your Open Graph tagsOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears., with one exception: thetwitter:cardtag has no fallback, so you have to set it. Google does not document these tags as Search controls; their purpose is the social-link preview.
What Twitter Card tags are
When you paste a link into X (formerly Twitter), it usually turns into a little
preview box with an image, a headline, and a short description instead of a bare
URL. Twitter Card tags are the instructions for that box. They live in the
<head> of your page, they start with twitter:, and X reads them to decide what
the preview looks like.
There are four “card” styles:
- summary — a small square thumbnail next to the text.
- summary_large_image — a big, full-width image. This is the one you want for articles and blog posts.
- app — a card that promotes a mobile app.
- player — plays a video or audio clip right in the preview.
A basic set of tags looks like this:
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Your headline here">
<meta name="twitter:description" content="A sentence or two about the page.">
<meta name="twitter:image" content="https://example.com/preview.jpg"> The one thing you actually have to set
Here’s the shortcut nobody tells beginners: if you already have Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. tags
(the og: tags Facebook, LinkedIn, Slack, and everyone else use), X will borrow
those for the title, description, and image if the twitter: versions are missing.
So in practice you rarely need to write out every twitter: tag.
The one exception is twitter:card itself. There’s no Open Graph equivalent for
it, so if you want a big-image card you have to add
<meta name="twitter:card" content="summary_large_image"> explicitly. Miss it and
X may show a plain small card or none at all.
The part that surprises people
Two things worth knowing before you spend an afternoon on this:
- These tags don’t help you rank on Google. They’re purely about how your link looks when it’s shared on social. (More on that in the Advanced tab.)
- A “broken” card on X is often not your fault. Since the Musk-era rebrand, X deliberately shows less of any post that contains an outside link — to keep people on the platform. So your card can be perfectly coded and still get little reach. Don’t burn hours debugging markup that’s already correct.
Want the full picture — every property, the name= vs property= gotcha, image
sizes, why the official validator is gone, and exactly what X changed? Switch to the
Advanced tab.
TL;DR — Twitter Card tagsTwitter Card tags (now often called \"X Cards\") are <meta name=\"twitter:...\"> tags in a page's <head> that tell X's link-unfurling system what rich preview to build for a shared URL — image, headline, description, and (for player cards) an embeddable frame. The four card types are summary, summary_large_image, app, and player. Every twitter:* property falls back to its og:* equivalent if missing — except twitter:card itself, which has no fallback and must be set explicitly. They are not a Google or Bing ranking factor. are
Evidence for this claim X Cards use page metadata to select a card type and populate a shared-link preview. Scope: X link-preview markup behavior; rendering and product features can change. Confidence: medium · Verified: X Developer Platform: Cards markup Evidence for this claim Google's supported-meta-tag reference does not treat twitter card metadata as a Google Search control. Scope: Absence from Google's supported search-control tags supports no direct Google metadata behavior, not a universal claim about social signals. Confidence: high · Verified: Google Search Central: Meta tags and attributes<meta name="twitter:...">elements that drive X’s link unfurling. Four card types (the last documented set — no current official spec exists to reconfirm them):summary,summary_large_image(recommended for articles),app,player. Everytwitter:*property falls back to itsog:*counterpart — excepttwitter:card, which has no fallback and must be explicit. Usename=, notproperty=(the single most common silent-failure cause). These tags are social-preview metadata, not documented Google Search controls; Google’s supported-meta-tags reference does not listtwitter:metadata.
What they are and the four card types
Twitter Card tags tell X’s link-unfurling system what rich preview to build for a
shared URL. The type is set with the required twitter:card property, and there are
four:
summary— a small square thumbnail next to the title and description.summary_large_image— a large, full-width image. The recommended default for articles and blog content, and the one most publishers want.app— a mobile app install card.player— an inline video/audio embed, driven bytwitter:player(an iframeHTML element that displays one webpage inside another — how embeds work. URL) andtwitter:player:stream(the raw media URL). Still functional, though the public documentation for it has thinned considerably.
These four are the last documented X/Twitter Card types. There’s no current,
official specification to reconfirm them against (see the status section below), so
treat this as the legacy documented contract, still consistently reported as
accurate by current practitioner sources. summary and summary_large_image are
the two you’ll actually use for normal content and the ones current guides discuss
most; app and player are practitioner-documented but harder to verify live
without an official reference.
The core properties:
| Property | What it sets |
|---|---|
twitter:card | The card type (required, no fallback) |
twitter:title | The headline |
twitter:description | The description text |
twitter:image | The preview image URL |
twitter:site | The publisher’s @handle |
twitter:creator | The author’s @handle |
How to implement them
A summary_large_image card in full:
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@yoursite">
<meta name="twitter:creator" content="@author">
<meta name="twitter:title" content="Your headline">
<meta name="twitter:description" content="A concise, click-worthy description.">
<meta name="twitter:image" content="https://example.com/preview-1200x630.jpg">On image sizing, the figures that circulate across the guides: summary wants a
roughly square image; summary_large_image wants a wide one, commonly cited around
1200×630px at roughly a 1.91:1 (or 2:1) ratio, under 5 MB, in JPG, PNG, WEBP,
or GIF. Because official documentation has thinned (see below), treat these as
well-established community consensus rather than a freshly-published X spec.
The Open Graph fallback rule — and the one tag that has no fallback
This is the load-bearing implementation fact, and it’s consistently reported across
every current practitioner source I reviewed: X checks your twitter:* tags first,
then falls back to the matching og:* Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. tag, then to your page <title>
and on-page content as a last resort. So twitter:title falls back to og:title,
twitter:description to og:description, and twitter:image to og:image. Note
the caveat that applies to everything on this page: developer.x.com no longer
publishes a Cards specification (see the status section below), so this is
current, consistent practitioner-observed behavior rather than something re-confirmed
against a live official contract.
The exception: twitter:card has no Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. equivalent. There is no
og:card. If you want anything other than X’s default renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM., you must set
twitter:card explicitly. This is the single most-repeated gotcha across every
source I reviewed, and it’s why most sites can lean almost entirely on their Open
Graph tags and just add the one twitter:card line.
The name= vs property= trap
Twitter Card tags use name=. Open Graph tags use property=. They look
interchangeable and they are not — put property="twitter:card" and the tag is
silently ignored. If your OG tags work but your Twitter tags don’t, check this
first. This is long-documented, practitioner-confirmed behavior; there’s no current
official X contract to re-verify it against, so treat it as the same kind of
consistent, current practitioner-observed fact as the fallback rule above.
<!-- Correct -->
<meta name="twitter:card" content="summary_large_image">
<!-- Silently ignored -->
<meta property="twitter:card" content="summary_large_image">The missing twitter:card finding isolates the one Twitter Card field that Open Graph cannot supply. The preview is still an approximation of X, but the metadata failure is deterministic.
Paste the URL into my Social Preview Checker to inspect the X fallback chain and the card shape before you publish a test post. Social Preview Checker Free
- Confirm twitter:card is present with name= rather than property=.
- Check whether title, description, and image resolve from twitter:* or their Open Graph fallbacks.
- Treat the preview as a metadata check, then use a real X post for the final platform rendering.
What’s changed since the Musk-era rebrand — the honest status in 2026
Most guides on this topic still read like it’s 2019. It isn’t. Four things have genuinely changed, and they matter more in practice than any syntax detail.
1. The official Card Validator is dead. cards-dev.twitter.com/validator was
deprecated in 2022 and X never shipped a replacement. As of this pass (verified
2026-07-18), the URL 307-redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. to an X login page (twitter.com/login) rather
than showing any validator. There is no first-party way to preview or debug a card
anymore. Third-party clone tools have proliferated specifically to fill that void —
you can use one to sanity-check your markup, but be clear that none are official or
guaranteed to replicate X’s live renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. pipeline. Any older guide that tells you
to “test it in the Twitter Card Validator” — including Ahrefs’ own
2020 Open Graph guide — is giving
you a dead link.
2. The official Cards documentation is simply gone, not paywalled. An earlier
research pass on this article flagged developer.x.com’s Cards URLs as returning an
HTTP 402 Payment Required response. Re-checking directly (2026-07-18, by HTTP status
rather than rendered page content), that’s no longer accurate: both the
getting-started guide and the markup reference now 307-redirect to the generic
docs.x.com overview page, which contains no Cards-specific content at all — and the
equivalent path on docs.x.com itself (mirroring the old Cards markup URL) returns a
flat 404. So there’s no current, official, first-party Cards specification at either
the old URL or its would-be replacement — not a paywall, just an absence. The
practical effect for you is the same either way: don’t treat any single “current
official spec” as available to check implementation details against.
3. twitter:site / twitter:creator attribution has degraded. The tags are
still valid and CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. plugins still output them, but X doesn’t surface that attribution
reliably in current cards. The most current dated source I foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. on this —
The SEO Framework’s KB, updated May 2026 —
notes both that X “removed much of its Twitter Card documentation, but the metadata
system still works,” and that X “does not expose this attribution reliably in current
cards.” Set the tags; don’t count on the byline showing.
4. X treats external-link posts differently — a separate system from whether your card renders. Since around March 2025, X has applied some form of reduced reach to posts containing an outside link, and the company’s own product leadership has confirmed the dynamic is intentional, aimed at discouraging “lazy linking” and keeping users on-platform. Specific percentage figures for how much reach is cut circulate widely across social-media coverage; this article isn’t citing one, because no dated, first-party figure was verifiable during this pass — treat any exact number you see elsewhere as unconfirmed unless it comes with its own current, primary source. As Nikita Bier, X’s Head of Product, put it when the company began testing a new in-app link experience in October 2025: “For creators, a common complaint is that posts with links tend to get lower reach. This is because the web browser covers the post and people forget to Like or Reply, so X doesn’t get a clear signal whether the content is any good.”
The important distinction, and the one most troubleshooting guides conflate: card
rendering and post reach are two separate systems. Whether your twitter:card
metadata produces a preview at all is a markup question — check it directly (raw
tags, a preview tool, a real test post). Whether that post then reaches many people
is a distribution question with a different, less-documented cause. Don’t use a
low-engagement post as proof your card is broken, and don’t assume a card that
isn’t rendering is “just the algorithm” — verify the markup first, using the
workflow later in this article, before attributing a problem to reach suppression.
(Historical footnote you can ignore operationally: X stripped headlines from link previews in October 2023, reversed it after backlash, and reformatted again in early 2024. That flip-flopping is settled — headlines and descriptions render normally on cards today when the tags are present.)
Are Twitter Card tags an SEO ranking factor?
No — and this is verifiable directly from the source, not by paraphrase. Google Search Central maintains an exhaustive list of every meta tag and attribute Google Search supports. Search it for “twitter,” “og:,” “Open Graph,” or “social” and you’ll find nothing — none of those terms appear on the page at all. That omission, on Google’s own canonical, maintained reference, is a direct statement (by absence) that Google doesn’t process Twitter Card or Open Graph tags as ranking or indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. signals. It’s so clearly a non-factor that Google has never even needed to publish a denial the way it did for meta keywordsThe meta keywords tag — <meta name=\"keywords\" content=\"...\"> — is a mid-1990s HTML head element meant to let a page declare its own topic keywords to search engines. Google has publicly ignored it for ranking since 2009, and no major search engine uses it as a ranking signal today. It's dead as SEO, and a populated one only leaks your target keywords to anyone who views your source..
Bing is the same story: I found no Bing documentation addressing twitter:card tags,
and Bing hasn’t published specific guidance on them. Treat these as
social-platform-only metadata, not a search-engine signal for either engine.
One adjacent fact worth keeping separate so you don’t conflate it: Google does now
consider the og:title tag as one input when it generates the blue
title link in search results
— but that’s an appearance choice, not a ranking factor, and it’s an Open Graph
tag, not a twitter:* one. Nothing from the twitter: namespace touches search at
all. (The title elementThe title tag is the HTML title element in a page's head that specifies the document's title. It's the primary source for the SERP title link and a confirmed light ranking factor — but since August 2021 Google doesn't always show it verbatim. itself is a different topic — see the title-tag deep dive in
this cluster.)
So the value of Twitter Cards is exactly one thing: how your link looks, and how many people click it, when it’s shared on social. And even that value is undercut on X specifically by the platform’s own anti-link stance.
Do you even need Twitter tags if you have Open Graph?
Mostly no. Because of the fallback rule, your og:title, og:description, and
og:image cover the corresponding twitter: properties. The pragmatic minimum for
most sites is:
- A complete set of Open Graph tags (which you want anyway, for LinkedIn, Slack,
Discord, Facebook, and Google’s
og:titletitle-link use). - Plus one explicit
twitter:cardtag to choose the card type.
Add twitter:site/twitter:creator if you want to (harmless, and they may work on
other surfaces), knowing the attribution isn’t reliable on X itself. Note that the
twitter:* meta-tag system is still read by more than just X — Discord, Slack, and
others fall back through the same Open Graph chain — so the tags remain worth having
even as X’s own treatment of them wobbles.
How to test your cards now that the official tool is gone
Since cards-dev.twitter.com/validator is dead and no official replacement exists,
treat testing as several distinct checks rather than one tool — each layer can fail
independently, so working through them in order narrows down the actual cause:
- Raw server-rendered tags — view the page’s actual served HTML (not the
browser’s rendered DOM) and confirm the
twitter:*/og:*meta tagsMeta tags are HTML elements in a page's head that pass metadata about the page to search engines and browsers. For SEO only a few matter — the title element, the meta description, and the robots meta tag — while meta keywords and most others are ignored. are present withname=/property=correct, before assuming a preview tool is wrong. - Public fetchability — the page URL and the image URL both need to be reachable by an outside crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. (not behind a login, staging password, or robots block); an unreachable image silently kills the card.
- Duplicate or conflicting tags — some CMS/plugin stacks output the same property twice; the first or last instance can win unpredictably.
- Third-party card preview tools — several clones exist specifically to fill the gap left by the dead validator. They preview your markup; they can’t guarantee they mirror X’s live pipeline.
- Your SEO tooling’s social checks — Ahrefs’ Site Audit flags a “Twitter card
incomplete” issue when a page has partial
twitter:*metadata, and the Ahrefs SEO Toolbar’s “Social” tab shows your OG and Twitter Card tags side by side. That’s a fast way to catch a missingtwitter:cardor an empty image. - Local/CDN caches — if you just changed the tags, a page cache (or X’s own cache of a previously-shared URL) can serve the old version; bust the cache before concluding a fix didn’t work.
- A real test post — ultimately the only way to see X’s actual current rendering is to share the URL and look, ideally from an account you don’t mind testing with. Treat this step as checking rendering only — a real post’s reach is a separate question (see the reach-suppression note above) and doesn’t tell you anything about whether the card itself is correct.
Where this fits
This is a deep dive under the Meta TagsMeta tags are HTML elements in a page's head that pass metadata about the page to search engines and browsers. For SEO only a few matter — the title element, the meta description, and the robots meta tag — while meta keywords and most others are ignored. for SEO hub, in the on-page cluster.
Twitter Cards sit in the same “social preview metadata” bucket as Open Graph tags
— the two overlap heavily and are usually implemented together, with Open Graph doing
most of the work and twitter:card filling the one gap. It’s a browser/social-facing
tag, not an indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. or serving directive like the robots meta tagThe robots meta tag is an HTML element in a page's head — <meta name=\"robots\" content=\"noindex\"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen., and it has no
bearing on how Google crawls, indexes, or ranks the page.
AI summary
A condensed take on the Advanced version:
- What they are:
<meta name="twitter:...">tags in the<head>that drive X’s link-preview unfurling. Four card types (the last documented contract; no current official spec exists to reconfirm it):summary,summary_large_image(default for articles),app,player. - Core properties:
twitter:card,twitter:title,twitter:description,twitter:image,twitter:site,twitter:creator. - The fallback rule: every
twitter:*property falls back to itsog:*counterpart — excepttwitter:card, which has no Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. equivalent and must be set explicitly. Most sites can lean on Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. and just add the onetwitter:cardline. - Top gotcha: Twitter Card tagsTwitter Card tags (now often called \"X Cards\") are <meta name=\"twitter:...\"> tags in a page's <head> that tell X's link-unfurling system what rich preview to build for a shared URL — image, headline, description, and (for player cards) an embeddable frame. The four card types are summary, summary_large_image, app, and player. Every twitter:* property falls back to its og:* equivalent if missing — except twitter:card itself, which has no fallback and must be set explicitly. They are not a Google or Bing ranking factor. use
name=, notproperty=(that’s Open Graph). Mixing them up gets the tag silently ignored. - 2026 status — what X broke: the official Card Validator was deprecated in
2022 and its URL now redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. to an X login page, not a replacement;
developer.x.com’s Cards documentation URLs now redirect to a generic docs.x.com page with no Cards content (the equivalent docs.x.com path 404s — there’s no current official spec, paywalled or otherwise);twitter:site/twitter:creatorattribution is no longer reliably surfaced; and X applies confirmed reduced reach to some external-link posts, as a separate system from whether the card itself renders — don’t use one to diagnose the other. - Not a ranking factor: Google’s exhaustive supported-meta-tags reference never
mentions
twitter:orog:. Bing hasn’t published guidance either. Value is social CTR only. (Separately, Google usesog:title— an Open Graph, not Twitter, tag — for title-link appearance, not ranking.) - Testing: no first-party validator anymore. Work through raw served tags, public fetchability, duplicate tags, third-party preview clones, your SEO tool’s social check (Ahrefs Site Audit flags “Twitter card incomplete”), caches, and a real test post as separate checks — a real post’s reach doesn’t tell you anything about whether the card rendered.
Official documentation
Primary-source documentation. Note the recurring theme: for this topic, the “official” sources are unusually thin — X has removed the Cards-specific documentation entirely (not paywalled it; both the old URLs and the current docs.x.com site were checked directly, 2026-07-18), and Google’s relevant reference is notable for what it doesn’t say.
X / Twitter
- X Developer Platform — Cards getting-started and Cards markup reference — the first-party docs; both URLs now 307-redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. to the generic
docs.x.comoverview, which contains no Cards-specific content (verified 2026-07-18; an equivalent path ondocs.x.comalso 404s). An earlier pass on this article had reported these URLs returning HTTP 402 — that’s no longer what happens. - Legacy developer.twitter.com Cards markup and getting started — still-indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. mirrors of the older docs (these too now redirect to
docs.x.com); useful historical reference only. - cards-dev.twitter.com/validator — the official Card Validator, deprecated in 2022 and never replaced; the URL now redirects to an X login page (verified 2026-07-18). Listed for completeness; do not rely on it.
- Meta tags and attributes that Google supports — Google’s exhaustive supported-meta-tags reference. It never mentions
twitter:orog:— the direct, by-absence proof that these aren’t a Google signal. - Influencing your title links in search results — the sources list that includes
og:title(an Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. tag) as a title-link appearance input, not a ranking factor. Included as a contrast, not a Twitter-Card fact.
Bing
- No Bing-specific
twitter:carddocumentation exists. Bing’s Webmaster Guidelines don’t address social-preview meta tagsMeta tags are HTML elements in a page's head that pass metadata about the page to search engines and browsers. For SEO only a few matter — the title element, the meta description, and the robots meta tag — while meta keywords and most others are ignored. — mirroring Google’s silence. Treat these tags as social-platform-only for both engines.
Quotes from the source
On-the-record statements relevant to this topic. Where a source page allowed direct verification, the link is a deep link that jumps to the quoted passage.
Google — meta descriptionThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through. docs (the closest supported analogue, for contrast)
Google’s supported-meta-tags reference documents tags like the meta descriptionThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through. in
detail — and never mentions twitter: or og: anywhere on the page. That omission is
the evidence that Twitter Cards aren’t a Google signal:
- “Use this tag to provide a short description of the page. In some situations, this description is used in the snippet shown in search results.” — Google Search Central docs, on the meta description (the kind of tag Google does document; note the total absence of any
twitter:/og:entry on the same page). Jump to quote
X leadership — why link posts get less reach
- “For creators, a common complaint is that posts with links tend to get lower reach. This is because the web browser covers the post and people forget to Like or Reply, so X doesn’t get a clear signal whether the content is any good.” — Nikita Bier, Head of Product, X, on the October 2025 in-app link test. Read the coverage
- Reported from the same piece, on X’s stated policy: posting a link with almost no description gets weak distribution, while a link paired with an interesting description and image gets better distribution — the causal lever here is the post’s own text and image, separate from whether your
twitter:cardmetadata renders a preview at all.
The SEO Framework KB — the honest current-status framing (May 2026)
- X “removed much of its Twitter Card documentation, but the metadata system still works,” and X “does not expose this attribution reliably in current cards” regarding
twitter:site/twitter:creator. Read the source
twitter:/og: entry on
that same reference page. Which tags do I actually need?
A quick walk-through for the two questions people actually have: do I need Twitter tags at all, and which card type do I pick?
Do I need to write out twitter:* tags?
- Do you already have complete Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. (
og:) tags?- No → add Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. tags first. You want them anyway (LinkedIn, Slack,
Discord, Facebook, and Google’s
og:titletitle-link use). Then continue. - Yes → your title, description, and image already fall back from
og:*. You only need to add one thing: an explicittwitter:cardtag.
- No → add Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. tags first. You want them anyway (LinkedIn, Slack,
Discord, Facebook, and Google’s
- Do you want a specific card style (e.g. big image)?
- Yes → set
<meta name="twitter:card" content="summary_large_image">(or another type). This tag has no Open Graph fallback — it’s the one you can’t skip. - Don’t care → you can omit it, but expect X’s default (often a bare
summary), which is rarely what you want for an article.
- Yes → set
- Do you need per-post author/publisher attribution?
- Add
twitter:siteandtwitter:creator— but know the attribution isn’t reliably surfaced on X in 2026. Harmless to include; don’t depend on it.
- Add
Which card type?
- Article, blog post, landing page →
summary_large_image(big image, best CTR). - Short link where a large image is overkill →
summary(small thumbnail). - Promoting a mobile app →
app. - EmbeddingEmbeddings are dense numerical vectors — lists of floating-point numbers — that represent the meaning of text in a high-dimensional space. Semantically similar content lands close together, so search and AI systems can match by meaning, not just keywords. playable video/audio inline →
player(plustwitter:player).
My card isn’t showing on X — is it my markup?
- Do your OG tags render correctly elsewhere (Slack, LinkedIn, a preview tool)?
- No → fix the underlying Open Graph tags first; Twitter inherits from them.
- Yes → your metadata is probably fine. Continue.
- Did you set
twitter:cardwithname=(notproperty=)?property=→ that’s the silent-failure bug; switch toname=.name=, correct → continue.
- Card renders fine everywhere you checked, but the post still gets little
visible reach on X specifically?
- That’s a distribution question, separate from card renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM.. X applies confirmed reduced reach to some external-link posts as platform policy — a different system from your metadata, and not something a meta tag can fix. Low reach alone isn’t proof the card is broken; confirm renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. first (steps 1-2 above) before attributing the problem to reach suppression.
Twitter Card tags — cheat sheet
The properties
| Property | Sets | Falls back to |
|---|---|---|
twitter:card | Card type (summary / summary_large_image / app / player) | Nothing — must be explicit |
twitter:title | Headline | og:title |
twitter:description | Description | og:description |
twitter:image | Preview image | og:image |
twitter:site | Publisher @handle | — (unreliable on X in 2026) |
twitter:creator | Author @handle | — (unreliable on X in 2026) |
The card types
| Type | Looks like | Use for |
|---|---|---|
summary | Small square thumbnail + text | Short links, minimal preview |
summary_large_image | Full-width large image | Articles, blogs — the default |
app | App install card | Promoting a mobile app |
player | Inline video/audio | Playable media embeds |
Image (community consensus — official specs have thinned)
summary_large_image: ~1200×630px, ~1.91:1 or 2:1 ratio, under 5 MB, JPG/PNG/WEBP/GIF.summary: roughly square.
Fast facts
- Use
name=, notproperty=(that’s Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears.) — mixing them silently breaks the tag. - Fallback order:
twitter:*→og:*→ page<title>/content. twitter:cardhas no OG fallback — it’s the one tag you always set.- Official Card Validator deprecated 2022; its URL now redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. to an X login page.
developer.x.comCards URLs redirect to a generic docs.x.com page with no Cards content — no current official spec exists. - Not a Google or Bing ranking factor — absent from Google’s supported-meta-tags reference entirely.
- X applies confirmed reduced reach to some external-link posts (~2025 onward) — a separate system from card renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM.; don’t diagnose a missing card from low reach, or vice versa.
Twitter Card implementation checklist
A quick pass to confirm your cards are set up right — and to avoid wasting time on problems that aren’t yours to fix:
- A complete set of Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. tags exists (
og:title,og:description,og:image,og:url) — the foundation Twitter inherits from. - An explicit
twitter:cardtag is present (usuallysummary_large_imagefor articles) — the one tag with no OG fallback. - All
twitter:*tags usename=, notproperty=. -
twitter:image(or the inheritedog:image) points at a real, reachable image — ~1200×630px, under 5 MB, JPG/PNG/WEBP/GIF. -
twitter:title/twitter:descriptionare set or correctly falling back to theog:equivalents (don’t duplicate needlessly). -
twitter:site/twitter:creatorset if you want them — with the caveat that X doesn’t reliably surface this attribution now. - Tags are in the
<head>, not injected into the<body>. - Verified with a third-party preview tool and/or your SEO tool’s social check (Ahrefs Site Audit flags “Twitter card incomplete”) — the official validator is gone.
- Sanity-checked with a real test post on X.
- Before “fixing” a low-reach card: confirmed the OG tags render fine elsewhere, so you’re not chasing X’s link-post suppression as if it were a markup bug.
Common Twitter Card mistakes
Concrete mistakes people make with these tags, why each one bites, and what to do instead.
Using property= instead of name= on twitter: tags. Open Graph tagsOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. use
property=; Twitter Card tagsTwitter Card tags (now often called \"X Cards\") are <meta name=\"twitter:...\"> tags in a page's <head> that tell X's link-unfurling system what rich preview to build for a shared URL — image, headline, description, and (for player cards) an embeddable frame. The four card types are summary, summary_large_image, app, and player. Every twitter:* property falls back to its og:* equivalent if missing — except twitter:card itself, which has no fallback and must be set explicitly. They are not a Google or Bing ranking factor. use name=. Writing
<meta property="twitter:card" content="summary_large_image"> gets the tag
silently ignored — no error, no warning, it just doesn’t work. Instead: always
write <meta name="twitter:..."> for Twitter properties, and check this first if your
OG tags work but your card doesn’t.
Assuming twitter:card falls back from Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. like everything else. Every
other twitter:* property (title, description, image) inherits from its og:*
counterpart if missing. twitter:card does not — there’s no og:card. Skipping it
because “OG covers it” leaves X to fall back to a plain default card, often not the
big-image layout you wanted. Instead: always set
<meta name="twitter:card" content="summary_large_image"> (or another type)
explicitly, even on a page with otherwise-complete Open Graph tags.
Conflating a missing card with X’s reach suppression (or vice versa). Card
renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. and post reach are two separate systems. Since around March 2025, X
applies confirmed reduced reach to some posts containing an external link — but
that’s a distribution effect, independent of whether the twitter:*/og:* metadata
actually renders a card. Assuming low visibility is “just the algorithm” sends you
past a real markup bug; assuming a low-reach post proves the card is broken sends you
chasing markup that was never wrong. Instead: check renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. first — raw served
tags, a third-party preview tool, or the card showing correctly on another platform
(Slack, LinkedIn) — before drawing any conclusion about reach.
Testing cards by looking for the official Twitter Card Validator. Guides that say
“test it in the Twitter Card Validator” are describing a tool that was deprecated in
2022 and never replaced — cards-dev.twitter.com/validator is dead. Following that
advice wastes time looking for a tool that no longer exists. Instead: use a
third-party card preview clone, your SEO tool’s social check (Ahrefs Site Audit flags
“Twitter card incomplete”), or just post a real test link.
Counting on twitter:site/twitter:creator to reliably show author attribution.
The tags are still valid and CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. plugins still output them, but X doesn’t consistently
surface that attribution in current cards. Relying on the byline to appear for
brand/author credit is unreliable. Instead: set the tags anyway (harmless, and
other surfaces may use them), but don’t treat visible attribution as guaranteed.
Spending SEO effort on Twitter Card tags expecting a ranking benefit. These tags
control social-preview appearance only — Google’s exhaustive supported-meta-tags
reference never mentions twitter: or og: at all. Prioritizing card polish over
actual indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed./ranking signals misplaces effort. Instead: implement them for
social CTR (they’re quick to add via the Open Graph fallback), but keep ranking-focused
work on tags Google actually documents.
Resources worth your time
My related writing
I haven’t written a dedicated Twitter Cards piece, so the closest first-party context is the broader technical-SEO work where social and head tagsMeta tags are HTML elements in a page's head that pass metadata about the page to search engines and browsers. For SEO only a few matter — the title element, the meta description, and the robots meta tag — while meta keywords and most others are ignored. come up:
- The Beginner’s Guide to Technical SEO — where head tags and social metadata fit in the bigger picture.
My speaking
- How Search Works (SlideShare) — my walkthrough of crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM., indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., and ranking, useful for placing what search does (and doesn’t) read from your head tags. (My standing disclaimer applies: “This is my understanding of systems… not going to be 100% complete or accurate.”)
Official / primary
- Google — Meta tags and attributes that Google supports — the exhaustive reference whose silence on
twitter:/og:is the proof they’re not a ranking signal. - Google — Influencing your title links — where
og:title(Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears., not Twitter) is used for title-link appearance. - Legacy Twitter Cards markup docs — the still-indexed older reference (the current
developer.x.comURL now redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. to a generic docs.x.com page with no Cards content — verified 2026-07-18).
From around the industry
- The SEO Framework — Twitter Cards and X Sharing (updated May 2026) — the most current, honest source I foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore.: documents that the tags still work but attribution has degraded and much of X’s own documentation is gone.
- Ahrefs — Open Graph Meta Tags: Everything You Need to Know (Michal Pecánek, 2020) — solid on the OG/Twitter fallback relationship, but note it predates the validator’s death and still tells you to test in the (now-dead) Twitter Card Validator.
- Ahrefs — Meta Tags for SEO: A Simple Guide for Beginners (Joshua Hardwick) — the broader meta-tags primer this sits alongside.
- Social Media Today — X Is Testing a New Way To Handle Links in Posts (Andrew Hutchinson, Oct. 2025) — the reporting on X’s link-post reach dynamics and the in-app link test, with Nikita Bier’s quote.
- TechCrunch — X cuts headlines from link previews (Oct. 2023) — the historical headline-stripping episode (since settled).
Test yourself: Twitter Card Tags
Five quick questions on how Twitter Card tagsTwitter Card tags (now often called \"X Cards\") are <meta name=\"twitter:...\"> tags in a page's <head> that tell X's link-unfurling system what rich preview to build for a shared URL — image, headline, description, and (for player cards) an embeddable frame. The four card types are summary, summary_large_image, app, and player. Every twitter:* property falls back to its og:* equivalent if missing — except twitter:card itself, which has no fallback and must be set explicitly. They are not a Google or Bing ranking factor. work and what X changed. Pick an answer for each, then check.
Twitter Card tags
Twitter Card tags (now often called "X Cards") are <meta name="twitter:..."> tags in a page's <head> that tell X's link-unfurling system what rich preview to build for a shared URL — image, headline, description, and (for player cards) an embeddable frame. The four card types are summary, summary_large_image, app, and player. Every twitter:* property falls back to its og:* equivalent if missing — except twitter:card itself, which has no fallback and must be set explicitly. They are not a Google or Bing ranking factor.
Related: Open Graph, Meta Tags
Twitter Card tags
Twitter Card tags (sometimes called “X Cards” since the rebrand) are <meta name="twitter:..."> elements placed in a page’s <head> that tell X’s link-unfurling system what rich preview to construct when a URL is shared: an image, a headline, a description, and — for player cards — an embeddable video/audio frame.
There are four card types, set via the required twitter:card property:
summary— a small square thumbnail beside the title and description.summary_large_image— a large, full-width image; the recommended default for articles and blog posts.app— a mobile app install card.player— an inline video/audio embed viatwitter:player(an iframeHTML element that displays one webpage inside another — how embeds work. URL).
The core properties are twitter:card, twitter:title, twitter:description, twitter:image, twitter:site (the publisher’s @handle), and twitter:creator (the author’s @handle). A quirk that has held since 2010: every twitter:* property falls back to its og:* Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. counterpart if it’s missing (twitter:title→og:title, and so on) — except twitter:card itself, which has no Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. equivalent and must be set explicitly or the card may not render as intended.
Twitter Card tags use the name= attribute (unlike Open Graph, which uses property=); mixing them up causes the tag to be silently ignored. They are not a Google or Bing ranking factor — Google’s own exhaustive list of supported meta tagsMeta tags are HTML elements in a page's head that pass metadata about the page to search engines and browsers. For SEO only a few matter — the title element, the meta description, and the robots meta tag — while meta keywords and most others are ignored. never mentions twitter: or og: tags at all. Their value is limited to social-share appearance and click-through, and even that is undercut on X specifically by the platform’s own reach suppression on posts containing external links.
Related: Open Graph, Meta Tags
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Updated Jul 18, 2026.
Editorial summary and recorded change details.Summary
Corrected the developer.x.com/docs.x.com status (redirect + 404, not HTTP 402), and removed unverifiable reach-suppression percentage figures in favor of clearly separating card rendering from post distribution.
Change details
-
Replaced the stale 'HTTP 402 Payment Required' claim about developer.x.com's Cards docs with a live-verified (2026-07-18) status: the old URLs 307-redirect to the generic docs.x.com overview, which has no Cards content, and the equivalent docs.x.com path 404s.
-
Removed the unverified 30-50%+ reach-suppression figures and reframed the section to state only the confirmed policy (reduced reach on some external-link posts) without a specific percentage.
-
Added an explicit rendering-vs-distribution distinction throughout (advanced body, ai-summary, decision-trees, cheat-sheets, checklists, anti-patterns) so a low-reach post is never used as evidence a card is broken, or vice versa.
-
Expanded the testing section into separate, ordered layers (raw served tags, public fetchability, duplicate tags, preview tools, caches, real test post) instead of a single flat list.
-
Noted that the four card types, the Open Graph fallback rule, and the name= vs property= behavior are current practitioner-observed facts rather than confirmed against a live official X specification, since no current specification exists.
-
Fixed a garbled sentence fragment in the advanced lens TL;DR ('Four card types include summary, summary_large_image, articles), app, player' with a dangling 'The' before the next sentence) that predated this pass.
Full comparison unavailable — no prior snapshot was archived for this revision.