ScreenshotNeo

BlogGuides

Website Thumbnail Image Sizes in Pixels

Use 1200×630 px for most social previews, then match WordPress, Facebook, LinkedIn, and in-page thumbnail requirements.

By the ScreenshotNeo team1 October 20266 min read

For a social link preview, start with 1200 × 630 pixels (about 1.91:1), use JPG or PNG, and keep the file below 5 MB. That is a practical cross-network baseline. An in-page website thumbnail has no universal size: WordPress themes and site settings decide the rendered dimensions.

1. First decide which “thumbnail” you mean

Use case Recommended starting point What controls the final display
WordPress post or card thumbnail Use the theme’s registered image size Theme code, Media settings, CSS, and the requested WordPress size
Facebook link preview 1200 × 630 px for high-resolution displays Open Graph tags, Facebook’s scraper, crop rules, and cache
LinkedIn link preview 1200 × 627 px, approximately 1.91:1 Open Graph data, LinkedIn’s rendering rules, and cache
Shared image across several networks 1200 × 630 px, under 5 MB The destination network may crop or pad the image

Do not treat 1200 × 630 as a WordPress thumbnail default. It is a social-preview target. WordPress’s documented default generated sizes are 150 px for thumbnail, 300 px for medium, and 640 px for large; the full size is the original upload. Themes can register different sizes and crop behavior.

2. WordPress in-page thumbnail sizes

WordPress exposes named image sizes rather than one mandatory “website thumbnail” dimension. The default names are thumbnail, medium, large, and full. Check the active theme and the site’s Media settings before exporting assets.

How WordPress chooses a size

  • the_post_thumbnail('thumbnail') requests the registered thumbnail size.
  • the_post_thumbnail('medium') and large request those generated variants.
  • A theme can register a custom size with add_image_size().
  • WordPress can preserve proportions or crop to exact dimensions, depending on the size registration.
  • CSS may display a smaller or larger box than the source bitmap, so inspect both the requested file and the rendered element.
<?php
// functions.php
add_image_size('card-thumbnail', 640, 360, true); // exact 16:9 crop

// template file
the_post_thumbnail('card-thumbnail', [
  'loading' => 'lazy',
  'alt' => get_the_title(),
]);
?>

Regenerate image variants after changing registered sizes so older uploads receive the new dimensions. Keep important subjects near the center because a hard crop can remove edges.

3. Social preview dimensions by platform

Cross-network baseline

WordPress.com recommends 1200 × 630 px, about 1.91:1, as a practical social-preview size. Use JPG or PNG and keep the file under 5 MB. Center important content to reduce crop problems. Open Graph fields such as og:title, og:description, and og:image tell networks which asset to fetch. See WordPress.com’s social preview guidance.

Facebook

  • Minimum image: 200 × 200 px.
  • For larger images: at least 600 × 315 px.
  • For high-resolution displays: 1200 × 630 px.
  • Maximum file size: 8 MB.
  • A ratio close to 1.91:1 reduces News Feed cropping.

Facebook may choose among several page images. Set an explicit featured image and og:image when your publishing setup permits it. If an old image remains, use Facebook’s Sharing Debugger to request a fresh scrape. See the Facebook thumbnail guidance.

LinkedIn

  • Minimum image: 1200 × 627 px.
  • Recommended ratio: 1.91:1.
  • Maximum file size: 5 MB.
  • Images under 401 px wide display as a thumbnail in the sharing module.

WordPress.com’s LinkedIn guidance also describes a 200 px width threshold for the larger format. These are different rendering thresholds, so do not reduce them to one universal cutoff. LinkedIn can cache a previous image; use LinkedIn’s Post Inspector to inspect or refresh the share. See LinkedIn’s sharing-image requirements.

4. Safe export settings

Setting Recommendation Reason
Canvas 1200 × 630 px for broad social use Matches the common 1.91:1 baseline
Format JPG for photographs; PNG for sharp graphics or transparency Balances quality and file size
File size Below 5 MB; below 8 MB for Facebook’s stated maximum Meets the stricter common limit
Composition Keep faces, logos, and headings away from edges Networks can crop or pad previews
Metadata Set one explicit featured/social image Reduces scraper selection ambiguity

5. Generate a thumbnail yourself with Playwright

If you need a screenshot of a web page rather than a designed graphic, set the viewport to the exact pixel dimensions and capture the page or a selected element.

npm install playwright
npx playwright install chromium
// thumbnail.mjs
import { chromium } from 'playwright';

const browser = await chromium.launch();
const page = await browser.newPage({ viewport: { width: 1200, height: 630 }, deviceScaleFactor: 1 });
await page.goto('https://example.com', { waitUntil: 'networkidle' });
await page.screenshot({ path: 'thumbnail.png', fullPage: false, type: 'png' });
await browser.close();

For a full-page image, use fullPage: true; for one card, locate it and call locator.screenshot(). A full-page capture is usually taller than a social-preview canvas, so resize or crop it deliberately rather than stretching it.

6. Or skip the browser setup

ScreenshotNeo provides a website screenshot API and MCP server. One GET request returns PNG, JPEG, WebP, or PDF, with options for full-page capture, element selectors, viewport and device presets, retina scale, custom CSS and JavaScript, waits, blocking rules, headers, cookies, user agents, geolocation, resizing, caching, signed links, async jobs, bulk capture, and more. Read the ScreenshotNeo API documentation for parameter details.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" \
  -d access_key=YOUR_API_KEY \
  --data-urlencode url=https://stripe.com \
  -o shot.webp

Python

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const fs = await import('node:fs/promises');
await fs.writeFile('shot.webp', Buffer.from(await res.arrayBuffer()));

ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed; response headers identify the page verdict and whether the shot was billed. Its MCP server includes take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 shots per month without a card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.

7. Troubleshooting checklist

Symptom Likely cause Fix
Image is cropped Wrong aspect ratio or edge-aligned content Export near 1.91:1 and keep key content centered.
Old image appears after replacement Social scraper cache Use Facebook Sharing Debugger or LinkedIn Post Inspector to re-scrape.
No large LinkedIn preview Image below the platform’s larger-format thresholds Use 1200 × 627 px and keep the file below 5 MB.
WordPress thumbnail dimensions differ Theme or Media settings override defaults Inspect registered sizes and regenerate thumbnails.
Screenshot contains a popup Consent, newsletter, or chat overlay loaded before capture Dismiss or hide the selector in Playwright, or use ScreenshotNeo’s cleanup options.
Screenshot API returns an error Invalid key, inaccessible URL, timeout, or bot check Check authentication, URL reachability, wait settings, and the response verdict headers.

8. Performance, reliability, and cost

  • Serve the smallest source that still meets the destination dimensions; oversized files increase transfer time.
  • Use WebP or AVIF for in-page thumbnails when your browser support and CMS pipeline allow it; retain JPG or PNG for social systems that require them.
  • Cache deterministic screenshots with a TTL when the source page changes infrequently.
  • For many URLs, batch work and limit concurrency so your own workers do not exhaust memory.
  • With ScreenshotNeo, cache hits and failed or unusable captures are not billed, and the X-Page-Verdict and X-Billed headers let you audit outcomes.

9. FAQ

Is 1200 × 630 the required size for every website thumbnail?

No. It is a practical social-preview baseline. An in-page thumbnail follows the CMS and theme’s registered dimensions.

Should I use 1200 × 630 or 1200 × 627 for LinkedIn?

Use 1200 × 627 when LinkedIn is the primary destination; use 1200 × 630 for a shared cross-network asset and verify the result.

Does changing the image URL force a refresh?

It can help, but social networks may still cache the page. Use the platform’s debugger or inspector to request a new scrape.

Ask the active theme. Themes can register custom featured-image sizes, so there is no universal WordPress value.

Sources