To optimize images for blog posts, resize each photo to about twice your content column width, save it as WebP or JPG at moderate quality, strip the metadata, and upload the result instead of the camera original. Do it for a whole post at once, before the files reach your media library.
| What you are sending | The limit you hit | The Smol setting |
|---|---|---|
| Featured image (also the social preview) | Facebook recommends 1200 × 630 and caps files at 8 MB | Compress, WebP or JPG, quality 75, maximum dimension 1600 |
| Photos inside the post | LCP of 2.5 seconds or less counts as good, and an image can be the LCP element | Compress, quality 70 to 75, maximum dimension 1600 |
| Screenshots and diagrams | Google Search supports WebP and AVIF as well as PNG | Compress, output WebP, quality 75 |
| Straight-from-the-phone photos | 4032 × 3024 HEIC or JPEG, several MB each | Compress, output JPG or WebP, same settings as above |
How do you optimize images for blog posts?
It means making each image as small in bytes as it can be while still sharp at the size a reader sees it. Three levers do the work: pixel dimensions, quality, and format. Pixel dimensions matter most, because a 4032 × 3024 frame holds about 12 million pixels and a 1600 × 1200 version keeps about 16% of them.
Speed is why it matters. web.dev treats an LCP of 2.5 seconds or less as good, measured at the 75th percentile of page loads, and an <img> is a common LCP element on a blog post. Our own measured results are in Image Optimization for Core Web Vitals, Measured.
What is the best image size for blog posts?
Make the image about twice as wide as the column it appears in, so phones and high-density screens stay sharp. For a column of 700 to 800 pixels that means 1400 to 1600 pixels. No single size fits every theme, so check your own column width in your browser’s inspector.
| Where | Limit or recommendation | Source |
|---|---|---|
| Facebook link previews | Recommended 1200 × 630 px, about 1.91:1 aspect ratio, minimum 200 × 200, file up to 8 MB | Facebook, read 11 October 2026 |
| WordPress uploads | Images over 2560 px on either side are scaled down; the original is kept as original_image | WordPress core, read 11 October 2026 |
| Google Search | Supports BMP, GIF, JPEG, PNG, WebP, SVG and AVIF; wants short descriptive file names and alt text | Google Search Central, read 11 October 2026 |
| Page speed | Good LCP is 2.5 seconds or less at the 75th percentile | web.dev, read 11 October 2026 |
Notice what WordPress does with a 4032-pixel upload: it keeps the unscaled original in your media folder and builds the displayed version at 2560. That still leaves a large file on disk, so resize before you upload.
What featured image size should I use?
Export the featured image at 1200 × 630 in about a 1.91:1 shape, and keep the file under Facebook’s 8 MB cap. Facebook recommends that size, and says that shape shows in the feed without cropping.
Your theme may crop the same file differently on the homepage grid. Smol’s fill mode crops to a box with no control over what is cropped, so for a deliberate crop do it in your editor first and let Smol handle size and quality. Use fit when nothing should be cut.
What blog image file size should I aim for?
Aim as low as looks clean at full width, and judge by eye rather than by a magic number. Smol sets quality and pixel size, not output bytes, so choose a setting, run one image, check the result, then run the rest.
Here are starting points, labeled as ours, not a standard. Compare the result at 100% zoom.
| Image | Operation and format | Quality | Maximum dimension |
|---|---|---|---|
| Photo in a post | Compress, WebP or JPG | 70 to 75 (starting point) | 1600 |
| Featured image | Compress, WebP or JPG | 75 (starting point) | 1600 |
| Screenshot or diagram | Compress, WebP | 75 (starting point) | 1600 |
| Hero photo you want very crisp | Compress, JPG | 80 (starting point) | 2000 (the default) |
| Full-width gallery shot | Compress, AVIF | 65 (starting point) | 2000 |
Quality belongs to Compress. Choosing Convert to turn a HEIC into JPG ignores the quality slider and writes a large file, so use Compress with the output format set to JPG.
How do I compress blog images in bulk?
Drop the folder onto Smol, set the format, quality and maximum dimension once, and run it. Smol writes a copy of every file next to the original with a _compressed suffix, and by default never overwrites the original.
Collect the post’s images in one folder
Rename them first. Google asks for short, descriptive file names such as
my-new-black-kitten.jpgrather thanIMG00023.JPG.Drag the folder into Smol
Whole folders and mixed types are fine. HEIC, PNG and JPEG can go in together.
Choose Compress, format and quality
WebP or JPG at 75 is a sound first pass. Set the maximum dimension to 1600 with fit mode.
Run it and read the per-file sizes
Smol shows each file’s result. Open the largest output at full size and look for banding in skies and soft edges on text.
Upload the compressed copies
Give each an alt text that describes the image. Google calls alt the most important attribute.

Got an older archive? Point Smol at the exported library of an old blog and run the same settings across it. For a folder that fills with fresh screenshots, a watched folder can compress new files as they arrive, but it can make files that are already optimized larger, so use it only for unoptimized input.
Should I use WebP, AVIF or JPG for blog images?
WebP is the safe default and JPG the universal fallback. Google Search supports WebP and AVIF as well as JPEG and PNG, so none of them blocks image indexing.
AVIF gives the smallest files. In our benchmark of 24 small (768 × 512) film photos, Smol’s AVIF needed 22 to 26% fewer bytes than the best JPEG at the same SSIMULACRA2 score. Using Compress with AVIF output at quality 65 on the same photos as PNG saved 92.1%. These are small test images, not your camera files. Check that your blog platform and email tools accept AVIF before you switch; the AVIF converter page has the details, and PNG to WebP on Mac covers the screenshot case.
What do bloggers use today, and how do they compare?
Free and built-in options come first, and they are often enough. The table below is fair to each.
| Option | Good at | Falls short |
|---|---|---|
| WordPress itself | Scales anything over 2560 px on upload | Does not shrink the original it keeps; no quality control before upload |
| Preview or sips | Free and built into the Mac; see the sips guide | Manual, one setting at a time; less suited to a whole folder |
| A WordPress plugin | Runs on upload without any extra step | Works after the heavy file has already been uploaded |
| TinyPNG (web) | Drag-and-drop in a browser | Files go to a server; see Smol vs TinyPNG |
| Smol | Bulk folders, resize plus quality plus format in one pass, offline | Mac only; no lossless mode; not the fastest tool |
Details: the sips command, Smol vs TinyPNG, and every Mac method compared.
When Smol is the wrong tool
- You are on Windows or Linux: Smol runs only on macOS.
- You need pixel-identical, lossless optimization: Smol always re-encodes images, so use ImageOptim for that.
- Your images are SVG: Smol does not handle them.
- You need several widths of one image for
srcset: one Smol run makes one size, so separate runs and renaming are needed. Your theme or CDN may build the set for you. - You want the whole job at build time on a server: look at the Smol API or a build-step library.
Keep the page itself fast
Compression is half the job. Per web.dev, use loading=lazy only for images outside the initial viewport, and add width and height to every <img> so the browser reserves space and the layout does not jump. If your featured image is the LCP element, keep it eager. More on this in image SEO and page speed, and WordPress users can read the WordPress image guide.
Frequently asked questions
How do I optimize images for blog posts?
Resize each image to about twice your content column width, save it as WebP or JPG at quality 70 to 75, strip metadata, and give it a descriptive file name and alt text. In Smol, drop the folder, choose Compress, set a maximum dimension of 1600, run it, and check the largest output.
What is the best image size for blog posts?
There is no single size. Take your column width and double it for sharp display on high-density screens; for an 800 pixel column that is about 1600 pixels. Facebook recommends 1200 × 630 for link previews, so a featured image at 1600 pixels wide covers both.
What featured image size should I use?
Use 1200 × 630 pixels in about a 1.91:1 shape, which Facebook recommends and says displays in the feed without cropping, and keep the file under its 8 MB cap. Your theme may crop it on archive pages, so preview it there before publishing.
How big should a blog image file be?
As small as still looks clean at full width. Smol sets quality and pixel size rather than output bytes, so pick a setting such as WebP at 75 with a 1600 pixel maximum, run one image, check the size, then run the rest. There is no universal byte target.
Can I compress blog images in bulk on a Mac?
Yes. Drag a folder into Smol, set format, quality and maximum dimension once, and every image is compressed in the same run. Copies are written beside the originals with a _compressed suffix, and originals are not overwritten by default.
Does WordPress already optimize my images?
Partly. It scales uploads over 2560 pixels, but it keeps the original file on disk and does not let you choose a quality before upload. Resizing and compressing before upload gives a smaller media library and a lighter page.
Keep reading
Smol for other teams
