Twitter Card Image Size Guide (2026)
The exact image dimensions, formats, and meta tags you need for Twitter/X card previews to look perfect.
Twitter (now X) cards are the preview images that appear when you share a link. Getting the dimensions right is the difference between a professional-looking share and an awkwardly cropped thumbnail.
Quick answer
Use 1200 x 630 pixels, PNG format. This works for both summary_large_image and regular summary cards.
Card types
Summary Card with Large Image (recommended)
This is the most common type — a large image with title and description below.
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Your Page Title" />
<meta name="twitter:description" content="A brief description" />
<meta name="twitter:image" content="https://example.com/og.png" />
Image specs:
- Size: 1200 x 630 (1.91:1 ratio)
- Min: 300 x 157
- Max file size: 5MB
- Format: PNG, JPEG, GIF, WEBP
Summary Card (small thumbnail)
A smaller square thumbnail with text to the right.
<meta name="twitter:card" content="summary" />
<meta name="twitter:image" content="https://example.com/og.png" />
Image specs:
- Size: 1200 x 1200 (1:1 ratio, but 1200x630 also works — it gets cropped to center)
- Min: 144 x 144
Pro tip: use both OG and Twitter tags
Twitter falls back to Open Graph tags if Twitter-specific tags aren't present. But for maximum control, set both:
<!-- Open Graph (Facebook, LinkedIn, Slack, etc.) -->
<meta property="og:image" content="https://example.com/og.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<!-- Twitter/X specific -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://example.com/og.png" />
In Next.js, the metadata API handles this for you:
export const metadata = {
openGraph: {
images: [{ url: "/og.png", width: 1200, height: 630 }],
},
twitter: {
card: "summary_large_image",
images: ["/og.png"],
},
};
Common issues
Image not showing
- Check that the URL is absolute (starts with
https://) - Verify the image is publicly accessible (not behind auth)
- Clear Twitter's cache using Card Validator
- Ensure file size is under 5MB
Image looks blurry
- Use PNG instead of JPEG for text-heavy images
- Ensure the image is exactly 1200x630, not upscaled from a smaller size
Old image showing
Twitter caches aggressively. After changing an OG image:
- Go to Card Validator
- Enter your URL
- Click "Preview card" — this forces a cache refresh
Generating Twitter card images automatically
Instead of creating images manually for each page, use an API to generate them dynamically:
curl "https://snap-og.com/api/og?title=Your+Title&template=bold&theme=dark" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o twitter-card.png
The bold template with dark theme works especially well for Twitter cards — high contrast text on a dark background stands out in feeds.
Try generating a Twitter card image free — no signup required.