WordPress Image Sizes — Featured, Thumbnail, Header & og:image
Every image you upload to WordPress is cut into several sub-sizes automatically. Six of those are registered by core and have fixed, documented dimensions. The two sizes people search for most — the featured image and the header image — are not among them: core defines no dimension for either, and your theme sets both. Here is what WordPress actually publishes, and what it leaves to you.
WordPress Image Sizes at a Glance
| Size Name | Dimensions | Cropped? | Notes |
|---|---|---|---|
| thumbnail | 150 x 150 | Yes | The only core size cropped to exact dimensions by default |
| medium | 300 x 300 max | No | Bounding box — the image fits inside it, keeping its ratio |
| medium_large | 768 wide | No | Height unbounded; hidden from Settings → Media |
| large | 1024 x 1024 max | No | Bounding box, not a fixed 1024x1024 crop |
| 1536x1536 | 1536 x 1536 max | No | 2x medium_large; feeds retina srcset |
| 2048x2048 | 2048 x 2048 max | No | 2x large; feeds retina srcset |
| Featured image | Theme-defined | Theme-defined | Core publishes no dimension — set by set_post_thumbnail_size() |
| Header image | Theme-defined | Theme-defined | Core defaults to width => 0, height => 0 until a theme sets it |
| og:image (social preview) | 1200 x 630 | n/a | Not emitted by core; added by an SEO plugin. 1200x630 is Meta’s spec |
WordPress Featured Image Size
There is no such thing as “the” WordPress featured image size. Core ships add_theme_support( ‘post-thumbnails’ ), which switches the feature on without defining a single pixel dimension. Your theme picks the size by calling set_post_thumbnail_size( $width, $height, $crop ) — so the correct answer for your site lives in your theme, not in a spec sheet.
That leaves you one practical decision. The featured image is usually the image that gets shared, so sizing it to 1200x630 (1.91:1) makes it work as both the post hero and the social preview. It comfortably exceeds every core sub-size except the 2x ones, so WordPress can still generate sharp retina variants from it.
| Core-defined size | None. post-thumbnails support carries no default dimension |
| Who sets it | Your theme, via set_post_thumbnail_size() or add_image_size() |
| Safe general-purpose upload | 1200 x 630 px (1.91:1) — doubles as the og:image |
| How to check yours | Search your theme’s functions.php for set_post_thumbnail_size |
Resize an image to 1200x630 → Pick the “Featured Image / og:image” preset in the WordPress platform.
WordPress Thumbnail Size
The WordPress thumbnail is 150x150 pixels, and it is the one core size that is cropped to those exact dimensions rather than scaled to fit. That is the thumbnail_cropoption, which defaults to on. Every other core size is a bounding box: a 300x300 “medium” version of a 3:2 photo is actually 300x200.
The practical consequence is that thumbnails are the only place WordPress will cut off part of your image. A wide photo becomes a centered square, so anything important near the left or right edge disappears. You can change all three sizes under Settings → Media — but note that changing them only affects images uploaded afterwards.
| Thumbnail | 150 x 150 px, cropped to a square by default |
| Medium | Fits inside 300 x 300 px — ratio preserved, no crop |
| Large | Fits inside 1024 x 1024 px — ratio preserved, no crop |
| Where to change | Settings → Media; applies only to future uploads |
| Regenerating | Existing images need a regenerate step (wp media regenerate or a plugin) |
Crop an image to 150x150 → Pick the “Thumbnail (cropped)” preset in the WordPress platform.
The 2560px Ceiling (and the -scaled File)
Upload an image longer than 2560 pixels on either edge and WordPress will quietly scale it down. Your original is kept, but the file the site serves is a new one with -scaled appended to its name. This is the big_image_size_threshold, and it has been core behaviour since WordPress 5.3.
It surprises people who upload a 4000 px photo and then find photo-scaled.jpg in their media library. Nothing is broken — but it does mean there is no point uploading beyond 2560 px unless you have raised the threshold with a filter.
| Threshold | 2560 px on the longest edge (width or height) |
| What happens | A -scaled copy is generated and served; the original is retained |
| Since | WordPress 5.3 |
| Sweet spot | Resize to 2048–2560 px before uploading — every sub-size gets built, nothing is wasted |
Resize an image to 2560x2560 → Pick the “Max Upload Before Scaling” preset in the WordPress platform.
WordPress Header Image Size
Like the featured image, the header has no core dimension. When a theme calls add_theme_support( ‘custom-header’ ) without arguments, core defaults to width => 0, height => 0 — literally unset. The theme supplies the numbers, and the Customizer then tells you what they are.
So the way to find your header size is to look, not to guess: open Appearance → Customize → Header Image, and WordPress states the size the active theme expects, along with whether it will let you crop or use a flexible height.
| Core default | width => 0, height => 0 — no dimension until a theme sets one |
| Where to find yours | Appearance → Customize → Header Image, which prints the expected size |
| Flexible headers | Themes can set flex-width / flex-height, allowing any size |
| Block themes | Often skip custom-header entirely — the header is a template part you edit directly |
WordPress og:image Size
WordPress core does not output an og:image tag at all. If your posts show a preview image when shared, an SEO plugin is adding it — and the size it should be comes from the platforms doing the rendering, not from WordPress.
Meta’s sharing documentation is the one to build against: use an image of at least 1200x630 pixels, keep it as close to 1.91:1 as you can so it renders in Feed without cropping, and stay under the 8 MB file-size limit. The minimum allowed dimension is 200x200. Note the height is 630, not 628— the 628 figure is repeated widely but it is not the number in Meta’s image guidelines.
| Recommended | At least 1200 x 630 px, as close to 1.91:1 as possible |
| Minimum | 200 x 200 px |
| Max file size | 8 MB |
| Emitted by | An SEO plugin — core writes no Open Graph tags |
Resize an image to 1200x630 → Pick the “Featured Image / og:image” preset in the WordPress platform.
WordPress Image Optimization Tips
- Upload at 2048–2560 px on the long edge: big enough for every sub-size including the 2x retina ones, small enough that WordPress won’t create a
-scaledduplicate. - Only thumbnails get cropped:
mediumandlargeare bounding boxes that preserve your aspect ratio. Keep your subject centered so the 150x150 square crop doesn’t cut it off. - Changing Settings → Media is not retroactive: new dimensions apply only to future uploads. Regenerate with
wp media regenerateor a plugin to update the existing library. - Don’t trust a “featured image size” you read somewhere: it’s whatever your theme passed to
set_post_thumbnail_size(). Checkfunctions.phprather than guessing. - A 1200x630 featured image does double duty: it fills the post hero and satisfies the og:image spec, so a shared link previews correctly without a second upload.
- Every registered size multiplies your disk usage: one upload can become six files before a theme or plugin adds more. Trim sizes you never use with
remove_image_size(). - The 2560 px threshold applies to every format: JPG, PNG and WebP are all scaled down alike, so you can’t sidestep it by changing file type. Resize before uploading instead.
Drop an image here or click to browse
Social Media Image Size Cheat Sheet (2024)
| Platform | Type | Dimensions |
|---|---|---|
| Post (Square) | 1080 x 1080 | |
| Post (Portrait) | 1080 x 1350 | |
| Post (Landscape) | 1080 x 566 | |
| Story / Reel | 1080 x 1920 | |
| Profile Photo | 320 x 320 | |
| TikTok | Video Cover | 1080 x 1920 |
| Profile Photo | 200 x 200 | |
| YouTube | Thumbnail | 1280 x 720 |
| Shorts | 1080 x 1920 | |
| Channel Banner | 2560 x 1440 | |
| Profile Photo | 800 x 800 | |
| Post (Landscape) | 1200 x 630 | |
| Post (Square) | 1200 x 1200 | |
| Cover Photo | 820 x 312 | |
| Profile Photo | 170 x 170 | |
| Event Cover | 1200 x 628 | |
| X (Twitter) | Profile Photo | 400 x 400 |
| Header Photo | 1500 x 500 | |
| In-Stream Photo | 1600 x 900 | |
| Card Image | 1200 x 628 | |
| Post Image | 1200 x 627 | |
| Cover Photo | 1584 x 396 | |
| Profile Photo | 400 x 400 | |
| Company Logo | 300 x 300 | |
| Standard Pin | 1000 x 1500 | |
| Idea Pin | 1080 x 1920 | |
| Board Cover | 600 x 600 | |
| Profile Photo | 165 x 165 | |
| Twitch | Profile Banner | 1200 x 480 |
| Offline / Video Player Banner | 1920 x 1080 | |
| Profile Photo | 256 x 256 | |
| Info Panel | 320 x 100 | |
| Emote (Large) | 112 x 112 | |
| Emote (Medium) | 56 x 56 | |
| Emote (Small) | 28 x 28 | |
| Snapchat | Snap | 1080 x 1920 |
| Geofilter | 1080 x 2340 | |
| Profile Photo | 320 x 320 | |
| Story Ad | 1080 x 1920 | |
| Threads | Profile Photo | 320 x 320 |
| Feed Image | 1080 x 1350 | |
| Feed Square | 1080 x 1080 | |
| Link Preview | 1200 x 628 | |
| Discord | Server Icon | 512 x 512 |
| Profile Avatar | 128 x 128 | |
| Profile Banner | 600 x 240 | |
| Server Banner | 960 x 540 | |
| Invite Splash | 1920 x 1080 | |
| Custom Emoji | 128 x 128 | |
| Sticker | 320 x 320 | |
| Role Icon | 64 x 64 | |
| Post Image | 1200 x 675 | |
| Community Banner | 1920 x 384 | |
| Avatar / Community Icon | 256 x 256 | |
| Old Reddit Thumbnail | 70 x 70 | |
| Status (Story) | 1080 x 1920 | |
| Business Catalog | 1024 x 1024 | |
| Profile Photo | 500 x 500 | |
| Group Icon | 500 x 500 | |
| Telegram | Channel Post Photo | 1280 x 1280 |
| Story | 1080 x 1920 | |
| Sticker | 512 x 512 | |
| Profile Picture | 512 x 512 | |
| Channel / Group Icon | 512 x 512 | |
| Spotify | Canvas (Looping Video) | 1080 x 1920 |
| Cover Art | 3000 x 3000 | |
| Show / Podcast Artwork | 3000 x 3000 | |
| Profile Image (Artist) | 750 x 750 | |
| Playlist Cover | 640 x 640 | |
| Substack | Newsletter Header | 1456 x 816 |
| Post / Section Hero | 1456 x 816 | |
| Publication Logo | 256 x 256 | |
| Profile Photo | 256 x 256 | |
| beehiiv | Post Thumbnail | 1200 x 630 |
| Publication Logo | 800 x 800 | |
| Profile Picture | 800 x 800 | |
| Inline Image (Landscape) | 1200 x 675 | |
| Inline Image (Square) | 1200 x 1200 | |
| Subscriber Profile Picture | 100 x 100 | |
| Medium | Story Cover | 1500 x 750 |
| Topic / Tag Header | 1500 x 750 | |
| Publication Logo (Horizontal) | 600 x 60 | |
| Publication Logo (Square) | 500 x 500 | |
| Profile Photo | 500 x 500 | |
| Bluesky | Profile Avatar | 1000 x 1000 |
| Profile Banner | 3000 x 1000 | |
| Post Image (Portrait) | 1200 x 1500 | |
| Post Image (Landscape) | 1200 x 675 | |
| Link Card Preview | 1200 x 630 | |
| Mastodon | Profile Picture | 400 x 400 |
| Header Image | 1500 x 500 | |
| Post Image (Landscape) | 1280 x 720 | |
| Post Image (Square) | 1200 x 1200 | |
| Post Image (Portrait) | 1200 x 1500 | |
| Link Preview Card | 1200 x 630 | |
| Etsy | Listing Photo (Square) | 2000 x 2000 |
| Listing Photo (4:3) | 2700 x 2025 | |
| Search Thumbnail | 570 x 456 | |
| Shop Banner (Big) | 1200 x 300 | |
| Shop Banner (Large) | 3360 x 840 | |
| Shop Icon | 500 x 500 | |
| Amazon | Main Image (Recommended) | 2000 x 2000 |
| Main Image (Zoom Minimum) | 1000 x 1000 | |
| Secondary / Lifestyle Image | 1600 x 1600 | |
| Video Thumbnail | 1280 x 720 | |
| Swatch Image | 30 x 30 | |
| Shopify | Product Image (Recommended) | 2048 x 2048 |
| Product Image (Maximum) | 5000 x 5000 | |
| Slideshow / Hero Banner | 1280 x 720 | |
| Blog Post Image | 1200 x 800 | |
| Logo (Wordmark) | 400 x 100 | |
| Favicon | 32 x 32 | |
| Canva | Presentation (16:9) | 1920 x 1080 |
| Instagram Post (Square) | 1080 x 1080 | |
| Instagram Story | 1080 x 1920 | |
| Facebook Cover | 851 x 315 | |
| YouTube Thumbnail | 1280 x 720 | |
| Pinterest Pin | 1000 x 1500 | |
| Logo | 500 x 500 | |
| Wix | Hero / Banner | 1920 x 1080 |
| Section Background | 1920 x 1080 | |
| Blog Post Thumbnail | 880 x 586 | |
| Gallery Image | 1000 x 1000 | |
| Product Image (Wix Stores) | 3000 x 3000 | |
| Logo | 250 x 100 | |
| Favicon | 96 x 96 | |
| WordPress | Featured Image / og:image | 1200 x 630 |
| Thumbnail (cropped) | 150 x 150 | |
| Medium | 300 x 300 | |
| Large | 1024 x 1024 | |
| 2x Large | 2048 x 2048 | |
| Max Upload Before Scaling | 2560 x 2560 | |
| Squarespace | Banner / Section Background | 2500 x 1406 |
| Full-Bleed Background | 2500 x 1667 | |
| Blog Featured Image | 1500 x 1000 | |
| Gallery Image | 1500 x 1500 | |
| Product Image | 2000 x 2000 | |
| Logo | 1200 x 400 | |
| Favicon | 300 x 300 | |
| Google Slides | Widescreen Slide (16:9) | 1920 x 1080 |
| Standard Slide (4:3) | 1024 x 768 | |
| Slide at 100% (16:9) | 960 x 540 | |
| Slide at 100% (4:3) | 960 x 720 | |
| Slack | Workspace Icon | 512 x 512 |
| Profile Photo | 512 x 512 | |
| Profile Photo (Max) | 1024 x 1024 | |
| Custom Emoji | 128 x 128 | |
| Shared Image (Full Preview) | 1024 x 1024 | |
| Link Preview (og:image) | 1200 x 630 | |
| Google Business Profile | Logo | 720 x 720 |
| Cover Photo | 1920 x 1080 | |
| Post Photo | 720 x 720 | |
| Product Photo | 720 x 720 | |
| Photo (Minimum) | 250 x 250 | |
| Tumblr | Photo Post (Recommended) | 540 x 810 |
| Photo Post (Max) | 2048 x 3072 | |
| GIF (Recommended Width) | 540 x 540 | |
| Header Image | 2048 x 1152 | |
| Avatar | 128 x 128 | |
| Email Header | Substack Email Banner | 1100 x 220 |
| Header @2x (600px Email) | 1200 x 240 | |
| Mailchimp Header @2x (New Builder) | 1320 x 264 | |
| Email Body Width (1x) | 600 x 120 | |
| Facebook Ads | Feed Single Image | 1440 x 1800 |
| Carousel Card | 1080 x 1080 | |
| Stories & Reels | 1440 x 2560 | |
| Link Ad (Legacy 1.91:1) | 1200 x 628 | |
| Google Display Ads | Inline Rectangle | 300 x 250 |
| Large Rectangle | 336 x 280 | |
| Leaderboard | 728 x 90 | |
| Half-Page | 300 x 600 | |
| Wide Skyscraper | 160 x 600 | |
| Billboard | 970 x 250 | |
| Large Mobile Banner | 320 x 100 | |
| Responsive Landscape | 1200 x 628 | |
| Responsive Square | 600 x 600 | |
| LinkedIn Ads | Single Image Ad (1.91:1) | 1200 x 628 |
| Single Image Ad (Square) | 1200 x 1200 | |
| Single Image Ad (Vertical) | 720 x 900 | |
| Carousel Card | 1080 x 1080 | |
| Spotlight Ad Background | 300 x 250 | |
| Spotlight Ad Logo | 100 x 100 | |
| Message Ad Banner | 300 x 250 | |
| Video Thumbnail (16:9) | 1200 x 675 |
Frequently Asked Questions
What are the default WordPress image sizes?
WordPress core registers six sizes: thumbnail (150x150, cropped to an exact square), medium (max 300x300), medium_large (768 pixels wide with unbounded height), large (max 1024x1024), and two retina sub-sizes at 1536x1536 and 2048x2048. Only the first, second and fourth appear under Settings → Media; the other three are registered by core and can’t be changed from the admin screen.
What size should a WordPress featured image be?
WordPress core defines no featured image size. Enabling the feature with add_theme_support( ‘post-thumbnails’ ) carries no dimension — your theme sets it by calling set_post_thumbnail_size(). If you want one upload that works everywhere, use 1200x630 pixels (1.91:1): it is large enough for core’s sub-sizes and matches the og:image spec, so shared links preview correctly.
What is the WordPress thumbnail size?
The default WordPress thumbnail is 150x150 pixels, and it is the only core size that is cropped to exact dimensions rather than scaled to fit. That behaviour comes from the thumbnail_crop option, which is on by default. Because it crops to a centered square, keep the important part of a wide photo near the middle. You can change the value under Settings → Media, but it only affects images uploaded afterwards.
Why does WordPress add “-scaled” to my image filename?
Since WordPress 5.3, any image longer than 2560 pixels on its longest edge is automatically scaled down, and the served file gets -scaled appended to its name. Your original upload is retained. The limit is the big_image_size_threshold, which a developer can change or disable with a filter. In practice there’s little reason to upload beyond 2560 pixels.
What size is a WordPress header image?
There is no core header size. When a theme calls add_theme_support( ‘custom-header’ ) without arguments, WordPress defaults to width 0 and height 0 — no dimension at all until the theme supplies one. To find the size your site expects, open Appearance → Customize → Header Image, where WordPress prints the active theme’s recommended dimensions. Many block themes skip custom-header entirely.
What is the best og:image size for WordPress?
Use at least 1200x630 pixels, as close to a 1.91:1 aspect ratio as possible, and under 8 MB — those are Meta’s published sharing specs, and the minimum allowed dimension is 200x200. WordPress core does not output an og:image tag at all; an SEO plugin adds it, usually defaulting to your featured image. That is the practical reason to size featured images at 1200x630.
How large should I upload images to WordPress?
Aim for 2048 to 2560 pixels on the longest edge. Below 1536 pixels, WordPress can’t generate the 1536x1536 and 2048x2048 retina sub-sizes, so your images look soft on high-density screens. Above 2560 pixels, core scales the file down anyway and creates a -scaled duplicate. That range gives you every sub-size with nothing wasted.