Compress Images for WordPress — Free, No Upload
Reduce image file size before uploading to WordPress — faster page speed, better PageSpeed score, 100% browser-based.
Drop image here or click to upload
JPG, PNG, WebP, HEIC — max 20MB
You can also paste an image (Ctrl+V)
Why Image File Size Matters for WordPress Speed
Images are the single biggest source of page weight on WordPress sites. A typical blog post with three uncompressed photos can weigh 8–15MB — taking 6–12 seconds to load on a mobile connection. Google measures this with LCP (Largest Contentful Paint), a Core Web Vitals metric used as a direct ranking signal. Pages with LCP under 2.5 seconds rank higher than slower pages with otherwise equal content.
Compressing images before uploading to WordPress is the most effective optimization you can make — more effective than caching plugins, CDN setup, or server upgrades for image-heavy sites. A 5MB JPEG compressed to 200KB at quality 80 is visually identical at screen resolution but loads 25× faster.
Recommended WordPress Image Sizes — Quick Reference
| Image type | Dimensions | Target size | Quality |
|---|---|---|---|
| Hero / header image | 1920×1080px | < 300KB | 78–82 |
| Featured post image | 1200×630px | < 200KB | 78–82 |
| In-post content image | 1200×800px | < 150KB | 78–82 |
| WooCommerce product | 1000×1000px | < 300KB | 80–85 |
| Blog thumbnail | 400×300px | < 50KB | 72–78 |
| Background / pattern | 1920×1080px | < 150KB | 70–75 |
| Logo (JPEG) | 300×100px | < 20KB | 82–85 |
| Gallery image | 1200×900px | < 200KB | 78–82 |
These targets apply to JPEG. WebP at the same quality setting produces files 25–35% smaller — use WebP where your theme and hosting support it (WordPress 5.8+ natively accepts WebP uploads).
How WordPress Handles Image Sizes Automatically
Every image you upload to WordPress Media Library is processed into multiple sizes. The default sizes are:
| Size name | Dimensions | Used for |
|---|---|---|
| thumbnail | 150×150px (cropped) | Archive pages, widgets |
| medium | max 300px wide | In-post small images |
| medium_large | max 768px wide | Mobile-sized images |
| large | max 1024px wide | Full-width post images |
| full | Original dimensions | Lightbox, downloads |
All these sizes are generated from the original file you upload. A 5MB original produces five large derivative files. A pre-compressed 200KB original produces five small derivatives — faster Media Library, faster regeneration, faster CDN delivery.
Pre-Compress vs Plugin — Which Is Better?
Pre-compress before upload (this tool)
- ✓WordPress generates all thumbnail sizes from the compressed source
- ✓No plugin overhead on every page load
- ✓No API calls, no subscription, no limits
- ✓Full control over quality per image
Best for performance
Plugin after upload (Smush, ShortPixel, Imagify)
- ✓Automatic — works on existing libraries
- ✓Bulk-processes old uploads
- ✓Some offer WebP conversion automatically
- ✓API-based compression can be more aggressive
Best for large existing libraries
For new WordPress sites: pre-compress every image before uploading. For existing sites with hundreds of uploaded images: use a plugin to bulk-process the library, then switch to pre-compression for new uploads.
5 WordPress Image Mistakes That Slow Your Site
❌ Uploading camera-original or export-original images (3–20MB)
✓ Resize to the display width first (1200px for posts, 1920px for heroes), then compress to quality 80. Never upload a 48MP phone photo directly.
❌ Using PNG for photographs
✓ PNG is lossless — a photo of a landscape in PNG is 5–15× larger than JPEG at equivalent quality. Use JPEG or WebP for all photos. Reserve PNG for logos and graphics with transparency.
❌ Relying on WordPress default quality (82) to compress your originals
✓ WordPress quality 82 on a 5MB original still produces a 1–2MB output. Pre-compressing to quality 80 before upload produces a 200–400KB source, so WordPress's generated sizes are smaller still.
❌ Lazy-loading the hero or featured image
✓ The above-the-fold hero image should load immediately — never add loading="lazy" to it. Lazy loading the LCP element is one of the most common causes of failing Core Web Vitals in WordPress.
❌ Not setting width and height attributes on images
✓ WordPress adds width and height automatically for Media Library images. If you hard-code images in HTML or use a page builder, always set explicit dimensions. Missing dimensions cause CLS (Cumulative Layout Shift) which Google penalizes.
JPEG vs WebP vs PNG for WordPress
JPEG
Best for: Photos, hero images, blog content
Pros: Universal support including old browsers. Smallest file for photos. Supported by all WordPress themes, plugins, and hosting.
Cons: No transparency. Slight color banding at low quality settings.
WebP
Best for: All images on modern WordPress sites
Pros: 25–35% smaller than JPEG at same quality. Full transparency. Native support in WordPress 5.8+. Supported by Chrome, Firefox, Safari, Edge.
Cons: Some older plugins or CDNs may not handle WebP correctly. Not supported in IE11.
PNG
Best for: Logos, icons, UI elements with transparency
Pros: Lossless quality. Full alpha channel transparency. Exact pixel reproduction.
Cons: Never use for photos — a PNG photo is 5–15× larger than JPEG. Only use when transparency is required.
Your Images Never Leave Your Device
All compression runs in your browser using JavaScript. Your images are never uploaded to any server — there is no upload step. Safe for unreleased blog content, WooCommerce products, and client work. Free with no limits, no watermarks, no account required.