X (Twitter) image sizes for link cards

Last updated: September 20, 2026.

Size figures on this page are placeholders. They are not marked verified because we have not re-checked X (Twitter)’s current documentation.

X shows a large picture when a tweet contains a URL and the page includes Twitter Card tags (and usually Open Graph as a fallback). summary_large_image is the card type that matches a wide OG file. This page covers that card, not in-app photo posts you upload by hand. The pixel values below are placeholders we have not re-checked against X’s current documentation, so wait for the verified badge before you treat them as a vendor spec. A 1200-wide landscape PNG with a readable title still behaves better than a tiny logo. After you publish, use X’s card validator on the live URL; the app caches cards much like Facebook does.

Recommended X (Twitter) size

X (Twitter) recommended image sizes
PlatformImage typeRecommended sizeAspect ratioMax file size
X (Twitter)Summary large image1200 × 628 px1.91:15 MB

Official page to re-check:https://docs.x.com/resources/fundamentals/cards/overview/markup

How X crops your image

Large summary cards are landscape. X may use a ratio close to 2:1 or to classic 1.91:1 depending on client and card type. That is why this site’s generator also offers a 1200×675 preset while the table still lists 1200×628 — both are working defaults, not verified vendor copy. Keep the headline in the middle band of the canvas so a slightly taller or shorter crop still reads.

summary (the small card) places a square thumbnail beside the title. If you only ship a wide OG file, X will crop the center of it for that thumbnail. Do not put the only logo in the left third if you also care about the compact card.

Player and app cards have their own rules. If your page is a normal article or landing URL, stay on summary_large_image plus og:image. Mixing twitter:image and og:image with different files makes debugging harder; use one artwork unless you have a reason to split them.

Three common X (Twitter) mistakes

  • Forgetting twitter:card

    og:image alone is not always enough. Set twitter:card to summary_large_image and give twitter:image the same absolute https URL (or let the crawler fall back only after you have confirmed it works).

  • Using a 400-pixel-wide header graphic

    A site banner that looks sharp in a browser tab is soft in a tweet. Start from 1200 pixels on the long side so the card is not upscaled.

  • Blocking the Twitterbot user agent

    If robots.txt or a firewall sends Twitterbot elsewhere, the card stays empty. The image URL must return 200 without a login cookie.

Cards versus Open Graph

X invented Twitter Cards; Open Graph came from Facebook. Most article pages should emit both. Width and height tags help the crawler reserve space. Do not point twitter:image at a URL that redirects through a tracker that drops bots.

If the validator shows the right image and the live tweet does not, the tweet may have been composed before the scrape. Paste the URL in a new compose window after a successful validate. Changing tags on a URL that was already tweeted often needs a new path to bust cache.

Create an X-sized card image

Opens the generator with the X (Twitter) size preset selected. Nothing is uploaded.

Frequently asked questions

Short answers about X (Twitter) preview images.

Should I design at 1200×628 or 1200×675?

Both are landscape defaults used in the wild. This table lists 1200×628 as a placeholder; the generator’s X preset is 1200×675. Until we verify X’s current docs, keep type out of the last 10 percent of the frame and pick one file per URL.

Why does my X card show a small square instead of a large image?

The page is probably emitting summary instead of summary_large_image, or the crawler never saw twitter:card. Check the HTML source, then re-run the card validator. A failed image fetch can also fall back to a smaller treatment.

Can I use an animated GIF as twitter:image?

Cards expect a still raster for the tagged preview. GIFs and video belong in uploaded media, not as a substitute for twitter:image on a linked URL. PNG or JPG is the reliable pair.

Does X read og:image if twitter:image is missing?

Often yes, but you should not depend on that fallback without testing. Set both tags to the same file when you control the head, then validate the live URL.