For X (Twitter): post images at 1600×900px (16:9) or 1200×1200px (square). Profile photo at 400×400px. Header at 1500×500px. File size limit is 5MB for JPEG/PNG. X recompresses everything and smart-crops the feed preview — landscape images display most predictably.
| Image type | Recommended size | File size limit |
|---|---|---|
| Post / tweet image | 1600 × 900 px (16:9) | 5MB |
| Post image (square) | 1200 × 1200 px | 5MB |
| Profile photo | 400 × 400 px | 2MB |
| Header / banner | 1500 × 500 px | 5MB |
| Animated GIF | 1280 × 1080 px max | 15MB |
How X crops images in the feed — and how to work with it
When you post an image, X shows a cropped preview in the timeline. For a long time, X used simple center-cropping, which meant tall portrait images had their top and bottom cut off unpredictably. X later introduced AI-based smart cropping that detects the visually important region (typically a face or focal point) and centers the crop on it.
Smart crop works reasonably well for photos with clear subjects. It works poorly for infographics, text-heavy images, and designs where the important content isn't in a single obvious focal region. For those, landscape (16:9) or square (1:1) images are safer — they fit within the feed preview without requiring a crop decision.
The safest approach for content that must display a specific way: post it, check the preview before adding it to a campaign or pinning it, and reshoot or recompose if the crop is wrong. There's no reliable way to predict exactly how smart crop will handle a specific image without testing it.
The header image mobile crop
The X header image is 1500×500px (3:1 ratio). On desktop profiles, it displays at 600×200. On mobile, X crops further — displaying roughly the center 375px of width. If your header has text, a logo, or important design elements near the left or right thirds, those elements will be cut off for most mobile viewers.
Design the header so anything you need people to see sits in the center 500px of the 1500px width. Treat the outer sections as decorative background. A simple gradient, texture, or color wash that extends edge-to-edge works well since it doesn't depend on any specific element being visible.
Twitter Cards and link preview images
When someone posts a link to your website on X, the preview image is pulled from the twitter:image meta tag (or falls back to og:image if no Twitter-specific tag is set). The recommended size is 1200×628px for a Summary Large Image card.
X has two card types for links: Summary (small image on the left, text on right) and Summary Large Image (full-width image above the text). To get the large image card, your page needs <meta name="twitter:card" content="summary_large_image">. Without this tag, X defaults to the small Summary card even if an og:image is present.
Keep link preview images at under 500KB — X fetches them when posts are shared and caches them, but oversized images can cause fetch timeouts that result in no preview being shown.
Posting multiple images in one tweet
X allows up to 4 images per post. When you attach multiple images, the layout depends on the count:
- 2 images: side by side, each cropped to roughly 1:1
- 3 images: one large on the left (portrait crop), two stacked on the right
- 4 images: 2×2 grid, each cropped to square
For multi-image posts, square images (1200×1200) display most predictably since they match the crop X applies. Landscape images in a 4-image grid get aggressively cropped to squares, often losing the composition. Prepare images at 1200×1200 for multi-image posts.
Preparing images for X
X's 5MB limit is generous. A 1600×900 JPEG at 85% quality is typically 400–800KB. Compress to under 1MB before uploading — smaller files upload faster and X's recompression produces better output when working from a clean source file rather than an oversized one it has to aggressively downscale.
