Content teams lose more time to ad-hoc image decisions than to writing. A fixed pipeline removes the decisions.
Step 1: Source Legally
Decide where images come from, once:
- Your own photography — legally safest and most distinctive.
- Licensed stock — record the licence, image ID and date in a spreadsheet.
- Free-licence libraries — permissive, but check for editorial-only restrictions and identifiable people.
- AI-generated — understand the copyright limits and label where required.
Never take images from search results. The cost of one claim exceeds years of stock subscription.
Step 2: Fix the Sizes
Define the sizes your site needs and never deviate:
- Featured image: 1200 × 630 (also serves as the social card).
- In-article images: 1200 px wide, height as needed.
- Full-width hero: 1920 px wide.
- Inline screenshots: captured at 2×, displayed at 1×.
Having fixed numbers means nobody has to think, and every post looks consistent.
Step 3: Crop, Then Resize
Crop to the ratio first (so you control what's lost), then resize to the target width. Never upscale — if the source is smaller than the target, find a better source.
Step 4: Compress to a Budget
- Featured image: under 200 KB.
- In-article images: 60–120 KB.
- Screenshots: PNG, cropped tight; use lossless WebP if size is a problem.
Use a target-size mode rather than guessing quality, and batch the whole post's images at once.
Step 5: Name Files Descriptively
The filename becomes part of the URL permanently:
- Good: sourdough-starter-day-3-bubbles.jpg
- Bad: IMG_4821.jpg, Screenshot 2026-07-28 at 14.22.31.png
Lowercase, hyphens, no spaces, no dates unless meaningful.
Step 6: Write Alt Text
One clear sentence describing the image's purpose in this article. Not "image of bread" — "sourdough starter on day three, showing active bubbling". Decorative images get an empty alt attribute.
Step 7: Check the Featured Image Separately
It appears in three places with different crops: your archive listing, social previews, and possibly a newsletter. Keep the subject and any text within the central 80%, and preview the social card before publishing.
Step 8: Publish and Verify
- Confirm dimensions are declared so the layout doesn't shift.
- Confirm the hero image is not lazy-loaded.
- Run one Lighthouse check per month, not per post.
Making It Stick
- Write the pipeline down as a one-page checklist and put it in your CMS template or content brief.
- Build a template folder structure per post: originals, working, export.
- Batch by post, not by image — process all of a post's images in one pass with identical settings.
- Keep originals outside the CMS. Site redesigns change required sizes, and re-exporting from originals beats upscaling what you uploaded.
- Review quarterly: check for oversized images that slipped through, broken images, and screenshots showing outdated interfaces.
The whole pipeline should take under ten minutes per post once it's routine — and the consistency it produces is visible on the page in a way individual clever optimizations are not.