Smol for bloggers

How to Optimize Images for Blog Posts Before Uploading

Phone photos arrive at 4032 × 3024 and a blog needs a fraction of that. Smol shrinks a whole folder of post images on your Mac in one drop, resizes to your column width, sets quality, writes WebP or JPG, and strips location data, so your pages load faster and nothing is uploaded anywhere.
  • Drop a folder of post images and compress them in bulk
  • Resize to your column width, then set quality and format
  • Write WebP, AVIF or JPG; GPS and camera data stripped by default
  • Runs on your Mac: no upload, no account, no per-image quota

$29 once per Mac · No subscription · Files never leave your Mac

Smol’s main window in dark and light appearance with an image, a PDF and a video queued and a Compress 3 Files button
By the Smol team9 min read

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 uploading, the limit you hit, and the Smol setting
What you are sendingThe limit you hitThe Smol setting
Featured image (also the social preview)Facebook recommends 1200 × 630 and caps files at 8 MBCompress, WebP or JPG, quality 75, maximum dimension 1600
Photos inside the postLCP of 2.5 seconds or less counts as good, and an image can be the LCP elementCompress, quality 70 to 75, maximum dimension 1600
Screenshots and diagramsGoogle Search supports WebP and AVIF as well as PNGCompress, output WebP, quality 75
Straight-from-the-phone photos4032 × 3024 HEIC or JPEG, several MB eachCompress, 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.

Published limits that affect blog images, with source and date read
WhereLimit or recommendationSource
Facebook link previewsRecommended 1200 × 630 px, about 1.91:1 aspect ratio, minimum 200 × 200, file up to 8 MBFacebook, read 11 October 2026
WordPress uploadsImages over 2560 px on either side are scaled down; the original is kept as original_imageWordPress core, read 11 October 2026
Google SearchSupports BMP, GIF, JPEG, PNG, WebP, SVG and AVIF; wants short descriptive file names and alt textGoogle Search Central, read 11 October 2026
Page speedGood LCP is 2.5 seconds or less at the 75th percentileweb.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.

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.

Smol settings by kind of blog image (starting points, not standards)
ImageOperation and formatQualityMaximum dimension
Photo in a postCompress, WebP or JPG70 to 75 (starting point)1600
Featured imageCompress, WebP or JPG75 (starting point)1600
Screenshot or diagramCompress, WebP75 (starting point)1600
Hero photo you want very crispCompress, JPG80 (starting point)2000 (the default)
Full-width gallery shotCompress, AVIF65 (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.

  1. Collect the post’s images in one folder

    Rename them first. Google asks for short, descriptive file names such as my-new-black-kitten.jpg rather than IMG00023.JPG.

  2. Drag the folder into Smol

    Whole folders and mixed types are fine. HEIC, PNG and JPEG can go in together.

  3. Choose Compress, format and quality

    WebP or JPG at 75 is a sound first pass. Set the maximum dimension to 1600 with fit mode.

  4. 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.

  5. Upload the compressed copies

    Give each an alt text that describes the image. Google calls alt the most important attribute.

Smol’s completion screen after a batch: 128 files complete, 2.4 GB before, 310 MB after, 87% saved, 2 minutes 41 seconds elapsed
The completion screen after a batch: total size before and after, the share saved, and the time it took.

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.

Ways to optimize blog images compared
OptionGood atFalls short
WordPress itselfScales anything over 2560 px on uploadDoes not shrink the original it keeps; no quality control before upload
Preview or sipsFree and built into the Mac; see the sips guideManual, one setting at a time; less suited to a whole folder
A WordPress pluginRuns on upload without any extra stepWorks after the heavy file has already been uploaded
TinyPNG (web)Drag-and-drop in a browserFiles go to a server; see Smol vs TinyPNG
SmolBulk folders, resize plus quality plus format in one pass, offlineMac 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