All fix guides
NoticeOn-Page SEO

How to Fix Missing Twitter Card Tags

Your page is missing Twitter Card meta tags (twitter:card, twitter:title, twitter:description, twitter:image), so links to it can render as a bare URL instead of a rich preview on X, Slack, Discord, and similar apps. X reads your Open Graph tags as a fallback for title, description, and image, so in most cases one twitter:card tag on top of solid OG tags closes the gap. This is a low-severity notice about link-preview appearance, not a ranking factor.

What this means

Twitter Cards are a small set of meta name="twitter:..." tags in your page's <head> that tell X, and a few apps that reuse its parser, how to build a preview card when someone posts your URL. The core tags are twitter:card (the layout type), twitter:title, twitter:description, and twitter:image. This guide covers six related audit codes: no card-type declaration at all (missing_twitter_card, no_twitter_card_tags), individual fields missing (missing_twitter_title, missing_twitter_description, missing_twitter_image), and a card type set to the smaller layout when the larger one would serve you better (twitter_card_not_summary_large_image).

The fallback behavior changes how urgent each flag actually is. X has read your Open Graph tags (og:title, og:description, og:image) as a substitute for any twitter: field you don't set explicitly for years. So if your OG tags are solid, missing_twitter_title, missing_twitter_description, and missing_twitter_image are often more theoretical than real: X already has the data, it's just sourced from og: instead of twitter:. The two flags that change what actually renders are the card-type ones. No twitter:card means X has to guess a layout, which can produce a small thumbnail or no image at all. A card type stuck on summary instead of summary_large_image means your preview renders as a small square image next to the text instead of a full-width image above it.

One thing worth knowing before you go looking for a preview tool: X shut down its public Card Validator years ago (the old cards-dev.twitter.com/validator address no longer works) and never shipped a first-party replacement with a visual preview. The most reliable way to check a card now is to draft a real post with the URL and look at the preview before sending, or use a third-party Open Graph and Twitter Card debugger.

Why it matters

Twitter Card tags carry no ranking weight with Google or Bing. They only control the preview card on X and apps that share its parser, so treat this as a click-through and presentation issue, not an SEO issue. That's why it's a notice rather than a warning or error.

Where it does matter is social click-through. A link that renders as bare text or a tiny thumbnail gets scrolled past more than one with a large, relevant image next to a clear headline. It's also worth knowing that X has changed how it displays in-stream link previews over time, and recent versions increasingly foreground the header image with the domain overlaid on it, showing less of the title and description text directly in the feed. That makes a strong, correctly sized image the highest-leverage part of this fix on X specifically. Slack, Discord, iMessage, and LinkedIn still render the fuller card with title and description text, so those fields aren't wasted effort even if X currently shows less of them. Separately, X's algorithmic treatment of posts containing outbound links has swung between periods of active suppression and periods of no penalty at various points since 2023; that's a distribution decision on X's side, and no meta tag changes it. This guide only controls what a link looks like when X decides to show it, not how often X shows it.

The AI-answer-engine angle, which matters a lot for Open Graph and schema markup, is weak here. ChatGPT, Perplexity, and similar tools don't render social share cards, so they have no use for twitter:* tags specifically. They read the same title tag, meta description, canonical URL, and structured data regardless of whether Twitter Card tags exist. If you're improving metadata for AI-citation reasons, prioritize your title tag, meta description, and Open Graph or schema markup first. Twitter Cards are a social-share nicety layered on top of that foundation, not a citation signal in their own right.

The practical takeaway: if missing-open-graph-tags is already fixed on this page, this is usually a five-minute follow-up of adding one tag, not a rebuild.

How to fix it

  1. 1

    Add one twitter:card tag

    If your Open Graph tags are already solid, this is the only tag X strictly needs. Set it to summary_large_image for the full-width image layout, which is the right choice for almost any content, product, or article page, or summary for a small square-thumbnail card. Without this tag, X has to infer a layout, which is what produces the missing_twitter_card and no_twitter_card_tags flags.

  2. 2

    Only add twitter:title, twitter:description, and twitter:image if you want them to differ from Open Graph

    X falls back to og:title, og:description, and og:image for any Twitter field you don't set explicitly. Add the twitter:* versions only when you genuinely want the X card to say something different, for example a headline tuned for X's audience instead of your general share copy. If one message everywhere is fine, skip these three and let the fallback do the work; that's less markup to keep in sync, not a shortcut that costs you anything.

  3. 3

    Size the image correctly and add alt text

    For summary_large_image, use 1200x628px, a 2:1 ratio, at minimum 300x157px, under 5MB, as JPG, PNG, GIF, or WEBP. That's close enough to the 1200x630 Open Graph size that one image usually covers both. Add twitter:image:alt with a short, accurate description of the image; it costs nothing and helps screen-reader users.

  4. 4

    Add twitter:site and twitter:creator only if you have accounts to attribute

    twitter:site (your brand's @handle) and twitter:creator (the author's @handle) don't change how the card renders. They attribute the share to an account for X's own analytics and, on some card types, a byline. Skip them if there's no relevant account; they aren't required to clear the missing-card flags.

  5. 5

    Check the rendered tags, since X no longer offers a public validator

    Confirm your tags are correct by viewing page source, not just the rendered DOM, to make sure they're server-rendered rather than injected only by client-side JavaScript, since some crawlers won't run your JS. Then draft a post with the URL on X to see the live preview before sending, or run the URL through a third-party Open Graph and Twitter Card debugger. Re-run your SEO audit afterward to confirm the flags clear.

Example

<!-- Minimum viable fix if Open Graph is already solid -->
<meta name="twitter:card" content="summary_large_image" />

<!-- Optional: only if you want X to show different content than OG -->
<meta name="twitter:title" content="How to Fix Missing Twitter Card Tags" />
<meta name="twitter:description" content="Fix weak link previews on X with the right twitter:card tags." />
<meta name="twitter:image" content="https://example.com/images/twitter/card.png" />
<meta name="twitter:image:alt" content="Example.com logo on a blue background" />

<!-- Optional: attribution only, doesn't change how the card renders -->
<meta name="twitter:site" content="@example" />
<meta name="twitter:creator" content="@authorhandle" />

twitter:card is the one tag most sites actually need; the rest only matter if you want X to show something different from your Open Graph tags.

Platform-specific steps

WordPress (Yoast SEO / Rank Math)

Both plugins output twitter:card automatically once you fill in the Social tab for a post, defaulting to summary_large_image. They reuse your Open Graph title, description, and image for Twitter unless you set a separate Twitter image in the same tab. There's nothing to hand-code; fill in the Social tab and the plugin emits both sets of tags.

Shopify

Most Shopify themes emit Open Graph tags but skip the dedicated twitter:card tag. Add <meta name="twitter:card" content="summary_large_image"> directly to theme.liquid inside <head>, once, site-wide; it doesn't need to vary per page. Confirm your theme's OG image resolves to an absolute HTTPS URL first, since Twitter reuses it.

Wix / Squarespace

Neither platform exposes a dedicated Twitter Card field. Set your social share title, description, and image in the page's SEO or Social settings as usual, which drives the Open Graph tags, then add the one missing tag through Wix's Custom Code (Settings > Custom Code, head injection) or Squarespace's Code Injection (Settings > Advanced > Code Injection, header).

Next.js / raw HTML

In Next.js App Router, add a twitter block alongside openGraph in your metadata export or generateMetadata; Next renders both sets of tags from the same object. On static HTML, add the meta name="twitter:..." tags next to your existing OG tags in <head>. Either way, confirm the tags appear in View Source, not only after client-side JavaScript runs.

Frequently asked

Do I need Twitter Card tags if I already have Open Graph tags?

Usually just one: twitter:card set to summary_large_image. X reads og:title, og:description, and og:image as a fallback for anything you don't set with a twitter: equivalent, so on top of solid OG tags, the card type is the one thing it can't infer. Add the other twitter:* tags only if you want the X preview to differ from what LinkedIn, Slack, or Discord show.

What's the difference between summary and summary_large_image?

summary renders a small, roughly square thumbnail next to the text. summary_large_image renders a full-width image above the text, which is what most content, product, and article pages want. If your twitter:card is missing or stuck on summary and a bigger image would serve you better, that's what the twitter_card_not_summary_large_image flag is telling you.

Do Twitter Card tags affect my Google ranking?

No. They only affect how your link previews on X and apps that share its parser. They carry no ranking weight with Google or Bing, and skipping them doesn't hurt your SEO; it just means a plainer share card on X.

How do I preview my Twitter Card now that the official validator is gone?

X retired its public Card Validator years ago and never shipped a replacement preview tool. The most reliable check is drafting a real post with your URL on X and looking at the preview before you send it, or using a third-party Open Graph and Twitter Card debugger. It's worth first viewing your page source to confirm the tags are actually there and server-rendered.

Does your site have this issue?

Run a free, AI-powered audit and we’ll flag this and 150+ other checks in about a minute. No signup.

No signup needed. Results in under 60 seconds.

Related fixes