ScreenshotNeo

BlogGuides

Twitter Link Preview Image Size: 2026 Guide

There is no verified organic X link-preview size in 2026. Learn which image specs apply, how to set metadata, and how to troubleshoot previews.

By the ScreenshotNeo team1 October 20267 min read

Direct answer: In 2026, no current official X source reviewed here verifies a required pixel size or aspect ratio for an organic webpage link-preview image. A link preview is generated from the destination page’s metadata. The familiar 1200 × 628 or 1200 × 630 recommendations may be practical design targets, but they should not be presented as current X requirements.

Keep organic link previews separate from paid advertisements, photos uploaded directly to a post, and profile images. Each is a different publishing path with a different owner and specification.

When someone posts a URL, X can fetch that page and build a card containing the page title, description, domain and an image selected from webpage metadata. The website owner controls those values. The person writing the post controls any image attached directly to the post.

This means changing the image attached to a post does not define the image used for the linked page’s preview. To influence the preview, update the destination page’s metadata and make the selected image publicly fetchable.

Which image specification applies?

Placement Who controls it What the official material establishes
Organic webpage link preview Website owner No current pixel size or ratio was verified in the reviewed official sources. Metadata drives the card.
Paid X ad creative Advertiser Dimensions vary by ad format. The advertising page lists 800 × 418 px for certain App Button image ads. That is paid-creative guidance, not an organic-card requirement.
Photo attached to a post Post author X Help says photos can be up to 5 MB, accepts GIF, JPEG and PNG, and automatically scales photos for expanded display and the gallery.
Profile image Account owner X support recommends 400 × 400 px for profile images.
Profile header Account owner X support recommends 1500 × 500 px for headers.

Do not substitute any of those ad, upload or profile figures for an organic link-card requirement.

  1. Choose a landscape source image. Use a clear focal point and leave breathing room around important subjects. X may resize or crop the card in different placements.
  2. Keep essential information out of the edges. Do not put a headline, logo or critical detail against the extreme top, bottom or sides.
  3. Describe the page accurately. The title, description and image should match the destination users reach after clicking.
  4. Publish metadata in the delivered HTML. Set the page title and social-card metadata in the document returned to crawlers, not only through client-side JavaScript.
  5. Make the URL publicly fetchable. Check that the page and image respond without a login, blocked user agent, private network rule or expiring authorization.
  6. Inspect the exact URL. Use a currently available card-preview or debugging tool before publishing, then check again after changing the image. Availability and cache-refresh behavior can change, so do not rely on a particular command or refresh time.

Metadata example

<head>
  <title>Article title</title>
  <meta name="description" content="A concise description of the destination page.">

  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:title" content="Article title">
  <meta name="twitter:description" content="A concise description of the destination page.">
  <meta name="twitter:image" content="https://example.com/images/article-preview.jpg">
  <meta name="twitter:image:alt" content="Description of the article image">

  <meta property="og:title" content="Article title">
  <meta property="og:description" content="A concise description of the destination page.">
  <meta property="og:image" content="https://example.com/images/article-preview.jpg">
</head>

Legacy X developer material documents this webpage-card pattern. Because that material is old, treat it as implementation guidance rather than proof of a current pixel mandate.

Accessibility requirements

X says image descriptions help people using assistive technology and allows up to 1,000 characters for descriptions on images posted to X. Provide meaningful alternative text wherever the card format supports it, and keep essential information in the page title and description instead of placing it only inside the image.

Why a preview image is missing or wrong

Symptom Likely cause Fix
No image Missing image metadata, inaccessible image URL or a fetch failure Confirm the delivered HTML contains the image metadata and fetch the exact image URL without authentication.
Old image remains The platform has cached an earlier fetch Verify the new HTML and image first, then use an available preview/debugging tool and allow for cache behavior.
Wrong image Conflicting metadata or an image selected from another page element Use one intentional card image, remove stale or conflicting tags, and inspect the final HTML.
Text is cropped Responsive card presentation or a tight composition Move critical content inward, simplify the artwork and test the actual URL preview.
Preview title is wrong Stale or mismatched title metadata Align the document title and card title with the destination page, then recheck the delivered response.
Image works in a browser but not in a card Bot protection, login requirement, robots or network restrictions Make the resource publicly retrievable by the platform’s crawler and check server logs for denied requests.

Direct upload versus linked-page preview

Use a direct upload when the image itself is the content of the post. Use webpage metadata when the goal is a clickable destination with a generated card. You can do both, but they remain separate assets: align their subject and framing so readers are not surprised when the card and attached photo differ.

Generating a preview image from a page

If your source is a live webpage, you can capture it with a browser automation stack or a screenshot API. A browser workflow gives control over viewport, waits, cookies and scripts but requires maintenance for browser binaries, rendering failures and consent UI.

Or skip the browser setup

ScreenshotNeo returns a PNG, JPEG, WebP or PDF from one GET request. It removes cookie and consent banners, newsletter popups and chat widgets before capture; bot checks, blank pages, failed loads, timeouts and cache hits are not billed. Responses identify the result with X-Page-Verdict and X-Billed headers. Its MCP server provides take_screenshot, get_page_info and capture_pdf for Claude, Cursor and other MCP clients.

See the ScreenshotNeo API documentation for the full option list. The request below captures the page that will supply your preview artwork:

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

Relevant capture controls include full-page rendering with lazy images loaded, a CSS-element capture, dark mode, device presets or custom viewports, retina scale, custom CSS and JavaScript, click actions, selector hiding, selector or network-idle waits, request and resource blocking, headers, cookies, user agent, authorization, timezone, geolocation, transparent backgrounds, resizing and a chosen cache TTL. Async jobs, signed webhooks, signed public image links, bulk capture for up to 100 URLs per call and a usage API are available on every plan.

ScreenshotNeo has 1,000 free shots each month with no card. Paid plans start at $5 for 3,000 shots; yearly billing provides two months free. Create a free ScreenshotNeo account.

Performance, reliability and cost notes

  • Reduce rendering work: capture only the required element when a full page is unnecessary; block ads, trackers and irrelevant resource types; use a cache TTL for unchanged pages.
  • Wait for real content: use a selector, delay or network-idle condition for client-rendered pages. Excessive waits increase latency.
  • Handle failures: inspect HTTP status and the X-Page-Verdict/X-Billed headers, retry transient network failures with bounded backoff and store the source URL with each generated asset.
  • Control spend: cache stable captures, use bulk calls for batches and monitor usage. ScreenshotNeo bills only clean shots; failed loads, bot checks, blank pages, timeouts and cache hits cost nothing.
  • Protect secrets: keep API keys server-side. For public <img> tags, use signed links rather than exposing credentials.

Pre-publish checklist

  • The page title and description match the destination.
  • The intended image URL appears in the delivered HTML.
  • The image is public, stable and returns the expected file.
  • Critical artwork sits away from edges and survives resizing.
  • Alt text is meaningful and accessibility information is not image-only.
  • The exact URL has been checked in a current preview tool.
  • Any direct-upload image is treated as a separate asset.

FAQ

No current official source reviewed here verifies that as a requirement. It is a commonly repeated recommendation, not a confirmed mandate.

Should I use the ad specification for an organic card?

No. Ad dimensions apply to paid creative formats and vary by format.

Can I force X to use the image attached to my post?

A directly uploaded photo and a webpage card are separate publishing paths. Set the destination page metadata for the card.

How long does a changed image take to appear?

The reviewed sources do not establish a fixed cache-refresh time. Verify the page and use an available preview tool after changes.

What file types can I upload directly to a post?

X Help says direct post photos may be GIF, JPEG or PNG and up to 5 MB.