ScreenshotNeo

BlogGuides

What Is the Twitter Preview Image Size?

For a single photo post, X displays standard 2:1 to 3:4 images in full. Link cards, ads, profiles and Media Studio use separate guidance.

By the ScreenshotNeo team1 October 20266 min read

For one photo attached directly to a regular X (formerly Twitter) post, use a standard aspect ratio between 2:1 and 3:4. X says images in that range display in full. X does not give one universal pixel canvas for ordinary post photos, so treat the ratio as the requirement and check the composition in the post composer.

The phrase “Twitter preview image” can also mean a website link card, an ad creative, a profile image, or a Media Studio upload. Those are different assets with different guidance.

Quick answer by image type

Image context What the current official guidance says
Single photo attached to an organic post Use a standard aspect ratio from 2:1 through 3:4; X says it will display in full. No single universal pixel size is specified. X Help Center
Organic website link preview The official pages reviewed do not confirm a universal pixel recommendation. Do not present an ad size as an organic link-card requirement.
Paid image ad Dimensions depend on placement and format. Examples include 800 × 418 for 1.91:1 and 800 × 800 for 1:1 in applicable placements. X Ads creative specs
Media Studio image JPG or PNG, maximum 20 MB, maximum resolution 8192 × 8192 pixels. These limits are for Media Studio only. Media Studio Library
Profile photo 400 × 400 pixels recommended. Profile customization guidance
Profile header 1500 × 500 pixels recommended. Profile customization guidance

What 2:1 through 3:4 means

Aspect ratio compares width with height. A 2:1 image is twice as wide as it is tall. A 3:4 image is taller than it is wide. The range includes common landscape, square and portrait shapes:

  • 2:1: 1600 × 800
  • 16:9: 1600 × 900
  • 1:1: 1200 × 1200
  • 4:5: 1200 × 1500
  • 3:4: 1200 × 1600

These pixel dimensions are examples that preserve the ratio, not minimums or X-mandated canvases. Pick enough pixels for the detail in your image, export in a supported format, and inspect the post composer before publishing.

Keep important content inside the safe area

Keep faces, product details and text away from the extreme edges. Different clients, embeds and placements can present media at different display sizes. This is practical layout advice, not a guarantee that every surface crops in the same way.

Regular post photo versus website link preview

A photo uploaded with a post is controlled by the photo-post behavior described above. A website link preview is generated from the destination page’s metadata and is a separate system. The official sources reviewed for this guide do not establish a current, universal pixel size for an organic X link card.

Do not copy a familiar third-party value such as 1200 × 628 and call it an X requirement without current, primary documentation specifically covering organic card metadata. If a link preview matters, set an appropriate social image on your page, publish the URL, and inspect the card on the surfaces your audience uses.

  1. Use a clear social image with the main subject away from the edges.
  2. Give the page a concise title and description in its metadata.
  3. Publish the URL in a test post and review the generated card.
  4. After changing metadata, allow the platform to refresh its cached preview before judging the result.

Ad creative is placement-specific. X lists, among other formats, 1:1 at 1080 × 1080, 1.91:1 at 2064 × 1080, 16:9 at 1920 × 1080, 9:16 at 1080 × 1920, 4:5 at 1440 × 1800 and 2:3 at 1080 × 1620 where those formats apply. It also gives examples such as 800 × 418 for a 1.91:1 image and 800 × 800 for a square image.

Use the specification for the exact campaign placement, not a single “Twitter image size.” X’s promoted-ads FAQ explains that there are no one-size-fits-all specifications because X appears across devices, platforms and screen resolutions. See the Promoted Ads FAQ before exporting final creative.

Media Studio limits are upload limits

For Media Studio, X documents JPG or PNG uploads up to 20 MB and a maximum resolution of 8192 × 8192 pixels. X explicitly says this guidance is for Media Studio and should not be treated as instructions for the developer API, Pro Media API, desktop upload or mobile upload.

Accessibility checklist

  • Add an image description when the image conveys information that the post text does not.
  • Use readable contrast and avoid placing small type over busy backgrounds.
  • Keep essential information in the image’s center area as well as in the post text.
  • Preview the final post on both a narrow and a wide screen.

X provides instructions for adding image descriptions in its image-description help.

Capture and compare the final preview

If you need repeatable screenshots for documentation, visual regression or approval, capture the published post or your test page at the viewport sizes you care about. A browser script can do this, but it must handle navigation, waiting, cookies and cleanup.

Or skip the browser setup

ScreenshotNeo accepts one GET request and returns a PNG, JPEG, WebP or PDF. It can capture the full page or one CSS-selected element, set a viewport or device preset, use retina scale, wait for a selector or network idle, and apply custom CSS or JavaScript. Before capture it accepts cookie and consent banners and removes more than 60 known consent platforms, newsletter popups and chat widgets; each step can be turned off. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads and cache hits cost nothing, and response headers identify the page verdict and whether the request was billed.

See the ScreenshotNeo API documentation for all options.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://x.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://x.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://x.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

ScreenshotNeo also has an MCP server with take_screenshot, get_page_info and capture_pdf tools for Claude, Cursor and other MCP clients. Plans include every feature: 1,000 shots per month free with no card, then Starter is $5 for 3,000 shots. Create a free ScreenshotNeo account.

Troubleshooting

Symptom Likely cause Fix
The photo is cropped The image is outside the standard ratio range or a different surface is displaying it. Export within 2:1 to 3:4, keep key content away from edges, and check the composer preview.
The link card shows the wrong image The page metadata is missing, incorrect or cached. Fix the page’s social metadata, republish the URL and allow the preview cache to refresh.
An ad is rejected The creative does not match the selected placement. Use the dimensions and ratio listed for that exact ad format.
Media Studio rejects an upload The file is not JPG/PNG, exceeds 20 MB or exceeds 8192 × 8192. Convert the format, reduce file size or export within the documented resolution.
The screenshot includes a cookie banner or popup A browser capture ran before consent or widget cleanup. Automate dismissal and hiding, or use ScreenshotNeo’s pre-capture cleanup.

Performance, reliability and cost notes

  • Use the smallest pixel dimensions that preserve the detail viewers need; oversized files take longer to upload and process.
  • For link-card debugging, test after metadata changes and account for caching.
  • For automated screenshots, wait for the specific selector or network idle instead of relying only on a fixed sleep.
  • ScreenshotNeo supports caching with a TTL you choose, async jobs with signed webhooks, bulk capture of up to 100 URLs per call, custom headers and cookies, and a usage API.
  • Only clean ScreenshotNeo shots are billed. Failed loads, bot checks, blank pages, timeouts and cache hits are free, with X-Page-Verdict and X-Billed response headers explaining the result.

FAQ

Is 1200 × 628 the official Twitter preview size?

It is not established as a universal requirement for an organic X link card by the official sources reviewed. Do not present it as one.

Can I upload a very tall photo?

For a single attached photo, stay within X’s stated 2:1-to-3:4 standard ratio range if you want the image to display in full.

What size should a profile banner be?

X recommends 1500 × 500 pixels for a profile header. That is separate from post photos and link cards.

Does X publish one resolution requirement for normal posts?

The current photo-post guidance specifies an aspect-ratio range and display behavior, not one universal pixel dimension.

How can I verify the result automatically?

Capture the published page or test URL at the target viewport sizes with a browser automation tool or ScreenshotNeo, then compare the resulting images.