Twitter Card Issues | Blue Frog Docs

Twitter Card Issues

Diagnose and fix Twitter Card meta tags for enhanced Twitter/X link previews

Twitter Card Issues

What This Means

Twitter Cards are meta tags that control how your content appears when shared on Twitter/X. Without proper Twitter Card implementation:

  • Links appear as plain text URLs without previews
  • No image, title, or description shows in the tweet
  • Reduced engagement and click-through rates
  • Missed opportunity for brand visibility

Types of Twitter Cards:

  • Summary - Title, description, and thumbnail image
  • Summary Large Image - Title, description, and large featured image
  • Player - Video or audio player embed
  • App - Mobile app installation card

How to Diagnose

1. Twitter Card Validator

  1. Visit Twitter Card Validator (requires Twitter login)
  2. Enter your page URL
  3. Review card preview and any error messages

2. Manual HTML Check

<!-- Required Twitter Card tags -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Your Title">
<meta name="twitter:description" content="Your description">
<meta name="twitter:image" content="https://example.com/image.jpg">

<!-- Optional but recommended -->
<meta name="twitter:site" content="@yourbrand">
<meta name="twitter:creator" content="@authorhandle">

3. DevTools Console

// Check Twitter Card tags
Array.from(document.querySelectorAll('meta[name^="twitter:"]'))
  .map(m => `${m.getAttribute('name')}: ${m.getAttribute('content')}`)
  .join('\n');

4. Common Issues

Issue Symptom
Missing twitter:card No preview appears at all
Wrong card type Unexpected layout or missing elements
Image too small Image doesn't display or appears cropped
Missing twitter:image Falls back to og:image (may not be optimized)

General Fixes

Summary Large Image Card (Most Common)

Best for blog posts, articles, and product pages:

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@BlueFrogHQ">
<meta name="twitter:creator" content="@authorhandle">
<meta name="twitter:title" content="Complete Guide to Core Web Vitals Optimization">
<meta name="twitter:description" content="Learn how to improve LCP, CLS, and INP scores with actionable techniques that deliver real results.">
<meta name="twitter:image" content="https://example.com/images/twitter-cwv-guide.jpg">
<meta name="twitter:image:alt" content="Core Web Vitals optimization guide cover">

Image Requirements for Summary Large Image:

  • Minimum: 300 x 157 pixels
  • Recommended: 1200 x 628 pixels (2:1 ratio)
  • Maximum: 4096 x 4096 pixels
  • File size: Under 5MB
  • Formats: JPG, PNG, GIF, WEBP

Summary Card (Compact)

Best for homepages, landing pages, or when you want a smaller preview:

<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@BlueFrogHQ">
<meta name="twitter:title" content="BlueFrog Analytics">
<meta name="twitter:description" content="Website analytics and optimization platform">
<meta name="twitter:image" content="https://example.com/images/logo-square.jpg">

Image Requirements for Summary:

  • Minimum: 144 x 144 pixels
  • Recommended: 400 x 400 pixels (1:1 ratio)
  • Maximum: 4096 x 4096 pixels

Player Card (Video/Audio)

For embedded video or audio content:

<meta name="twitter:card" content="player">
<meta name="twitter:title" content="Product Demo Video">
<meta name="twitter:description" content="See our platform in action">
<meta name="twitter:image" content="https://example.com/video-thumbnail.jpg">
<meta name="twitter:player" content="https://example.com/embed/video123">
<meta name="twitter:player:width" content="480">
<meta name="twitter:player:height" content="270">

Note: Player cards require approval from Twitter.

Fallback to Open Graph

Twitter will use Open Graph tags if Twitter-specific tags are missing:

Twitter Tag OG Fallback
twitter:title og:title
twitter:description og:description
twitter:image og:image

Best Practice: Implement both for optimal display across all platforms:

<!-- Open Graph (Facebook, LinkedIn, others) -->
<meta property="og:title" content="Page Title">
<meta property="og:description" content="Description">
<meta property="og:image" content="https://example.com/og-image.jpg">

<!-- Twitter-specific (if different from OG) -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@BlueFrogHQ">
<!-- Twitter will use OG tags for title, description, image -->

Framework-Specific Implementation

Next.js:

export const metadata = {
  twitter: {
    card: 'summary_large_image',
    title: 'Page Title',
    description: 'Description',
    site: '@BlueFrogHQ',
    creator: '@authorhandle',
    images: ['https://example.com/twitter-image.jpg'],
  },
};

Nuxt.js:

useHead({
  meta: [
    { name: 'twitter:card', content: 'summary_large_image' },
    { name: 'twitter:title', content: 'Page Title' },
    { name: 'twitter:description', content: 'Description' },
    { name: 'twitter:image', content: 'https://example.com/image.jpg' },
  ],
});

Platform-Specific Guides

Platform Guide
Shopify Shopify Twitter Cards
WordPress WordPress Twitter Setup
Wix Wix Twitter Cards
Squarespace Squarespace Twitter

Verification

  1. Validate with Twitter's tool:

    • Use Card Validator to check implementation
    • Note: Cards may take time to appear after first crawl
  2. Test share behavior:

    • Tweet the link from a test account
    • Verify image, title, and description render correctly
  3. Clear cache if needed:

    • Twitter typically caches for 7 days
    • Re-validate in Card Validator to force refresh

Common Mistakes

Mistake Fix
Using property instead of name Twitter uses name attribute, not property
Relative image URLs Use absolute URLs starting with https://
Image blocked by robots.txt Ensure Twitter's crawler can access images
Using wrong card type Match card type to content (summary_large_image for articles)
Missing twitter:card Always specify the card type explicitly

Further Reading

// SYS.FOOTER