Fig2WP Logo Fig2WP Image Uploader
WordPress Image Size Guide: What Dimensions to Export from Figma

Published August 5, 2026 · 8 min read · by the Fig2WP team

WordPress Image Size Guide: What Dimensions to Export from Figma

The rule: export at twice the width the image is displayed at, capped at 2560px.

For most sites that comes out as 1600px for a blog content image, 2400–2560px for a full-width hero, and 600–800px for a card or thumbnail.

The cap matters as much as the doubling — WordPress silently resizes anything wider than 2560px, so exporting "big to be safe" is actively worse than exporting correctly.

"What size should my images be?" has no single answer, because it depends on your theme — but it has a reliable method, and a set of numbers that fit the large majority of WordPress sites. Here are both.

The cheat sheet

Where it goesTypical display widthExport atTarget weight
Full-width hero / banner1200–1600px2400–2560px< 300 KB
Blog content image700–800px1600px< 150 KB
Wide / full-bleed in content1000–1200px2000–2400px< 250 KB
Card or grid thumbnail300–400px600–800px< 60 KB
Avatar / small thumbnail150px300px< 20 KB
Logo, iconanySVGa few KB
Product photo (zoomable)600px1600–2000px< 250 KB

Weights assume WebP or well-compressed JPG. PNG will be three to six times heavier for the same picture — see WebP vs PNG vs JPEG.

Why twice the displayed width

Because a CSS pixel isn't a physical pixel. Phones and most modern laptops pack two physical pixels into each CSS pixel, so an image displayed in a 800px-wide slot has 1600 real pixels to fill. Give it 800 and the browser stretches them, which is what "blurry" actually is.

Twice is enough. Three times has a visible benefit only on a handful of high-density phone screens; four times has none at all on the web and quadruples your file size. The full explanation, plus what to do when 2x still looks soft, is in why Figma exports come out blurry.

How to find your real slot widths

The numbers above are typical, not universal. Your theme's are knowable in about fifteen seconds:

  1. Open a published post on your site, on a desktop browser.
  2. Right-click an image in the content area → Inspect.
  3. Look at the rendered width of the image element, in CSS pixels.

Double it. That's your export width for that slot. Repeat once for a hero and once for a card, write the three numbers down, and you never have to think about it again.

Design at the real width where you can. If your content column is 760px, a mockup drawn at 760px means "export at 2x" is literally correct with no arithmetic. Designing a card at 400px that ships at 600px is where most sizing mistakes come from.

The sizes WordPress makes on its own

Every upload triggers WordPress to generate several derivatives. The defaults:

NameDimensionsBehaviour
thumbnail150 × 150Hard cropped to a square
mediumup to 300 × 300Scaled, aspect kept
medium_large768px wideScaled — has no settings-screen UI
largeup to 1024 × 1024Scaled, aspect kept
fullyour uploadCapped at 2560px wide — see below

Themes and page builders register more on top of these, which is why a single upload can produce a dozen files. WordPress then offers them to the browser through srcset, and the browser picks whichever fits the slot and screen density.

Two consequences worth knowing. First, this is why uploading one large, correctly-sized image is the right move — WordPress derives the small versions itself. Second, if a theme's registered size is narrower than the slot it's displayed in, the browser will be handed something too small no matter how good your original was.

The 2560px threshold

Since WordPress 5.3 there's a "big image" threshold, set to 2560px by default. Upload anything wider and WordPress:

  1. Scales it down to 2560px on the longest edge,
  2. Serves that as the full-size image,
  3. Keeps your original with -scaled appended to the filename.

The resize is a plain resample with no quality tuning. So a beautifully exported 4000px hero gets replaced by WordPress's own, less careful, downscale — and you never see it happen.

Stay under 2560px and you keep control. That's the whole rule. If you genuinely need larger, the threshold is filterable via big_image_size_threshold, but for a website you almost never do.

To spot whether this has already happened to you: open a hero image on your live site in a new tab and look at the URL. If the filename ends in -scaled, WordPress resized it.

Dimensions are only half of it

Correct dimensions with the wrong format still ships a heavy page. A 1600px PNG straight from Figma is commonly 800 KB to 1.5 MB. The same image as WebP at quality 80 is usually under 150 KB — the same picture, at the same dimensions, five to ten times lighter.

So the full instruction is three parts, not one:

  1. Dimensions — 2x displayed width, capped at 2560px
  2. Format — WebP for almost everything, SVG for logos and icons, PNG only when you need lossless detail
  3. Quality — 75–85 for WebP and JPG

Figma can do the first. It cannot do the second or third — no WebP export, no quality slider, and scale is a multiplier rather than a cap. That's why the export panel alone can't get you to a correctly-sized WordPress image, and why the gap normally gets filled by a round trip through Squoosh.

Fig2WP Image Uploader applies all three at once — max width, format and quality — and shows the resulting file size before anything uploads, so you can see you're under 150 KB rather than hoping.

FAQ

What size should images be for WordPress?

Twice the displayed width, capped at 2560px. About 1600px for a blog content image, 2400–2560px for a full-width hero, 600–800px for a card.

What's the maximum image size WordPress allows?

Two different limits. WordPress downscales anything wider than 2560px. Separately, your host caps the upload file size — commonly 2 MB to 64 MB, and it's the one behind "exceeds the maximum upload size for this site".

Should I resize before uploading, or let WordPress do it?

Resize first. WordPress generates smaller sizes but never optimises your original, and its downscale above 2560px is crude. Exporting correctly is the only way to control quality and weight.

How wide is the WordPress content area?

Theme-dependent, usually 650–800px for blog themes. Inspect the element on your own site rather than guessing.

Does uploading a bigger image improve quality?

Only up to 2x the displayed width. Past that it's wasted bytes, and past 2560px WordPress resizes it anyway.

Set the width once, not per image

Fig2WP lets you set max width, format and quality for the whole batch, then sends the finished images to your WordPress Media Library — under the 2560px threshold, in WebP, with the file size visible before upload.

Get the plugins   Read the export settings guide