A Practical Checklist for Image SEO and Metadata Before You Hit Publish

I learned about image SEO the hard way — after watching a product page I'd spent two weeks building rank on page four while a competitor with noticeably worse photography outranked me simply because their images were named red-running-shoes-womens-size-8.jpg and mine were still called DSC_04471.jpg. That one oversight probably cost me several hundred visits a month. I never made that mistake again, and now I run through this checklist before every single publish.

This isn't a theoretical post about "the importance of image SEO." It's the actual list I use, in the actual order I check things, with the specific tools I rely on. Work through it once and you'll start catching problems you didn't even know you were shipping.


1. Rename Every File Before Upload

Your camera names files. Your CMS names files. Neither of them names files well. The filename is a genuine ranking signal — Google's crawlers read it before they read your alt text — so treat it like a mini title tag.

  • Use hyphens, never underscores. Google treats underscores as word joiners, not separators. blue-ceramic-mug.jpg reads as three words; blue_ceramic_mug.jpg reads as one long word to the crawler.
  • Keep it descriptive, not keyword-stuffed. handmade-blue-ceramic-coffee-mug-12oz.jpg is good. buy-blue-ceramic-mug-cheap-online-best-price.jpg is a penalty waiting to happen.
  • Lowercase only. Some servers are case-sensitive; mixed-case filenames cause 404s you'll spend hours debugging.
  • No special characters or spaces. Spaces become %20 in URLs. Just use hyphens.

If you're batch-renaming on macOS, the built-in Finder rename function handles it fine for small sets. For bulk work, I use a script or tools like XnConvert that let you define naming patterns across hundreds of files at once.


2. Write Alt Text That Actually Describes the Image

Alt text is the single most under-used image SEO lever. People either skip it entirely or paste their primary keyword in every single field, which reads as spam and helps nobody — including screen reader users, who are the original reason the attribute exists.

  • Describe what's actually in the image, then weave in context. "A 12oz handmade ceramic coffee mug in cobalt blue glaze, photographed on a wooden table" beats "coffee mug product photo" on every metric.
  • Don't start with "Image of" or "Photo of." Screen readers already announce that it's an image. You're wasting characters.
  • Decorative images get empty alt text (alt=""), not no alt attribute at all. An absent alt attribute triggers accessibility warnings; an empty one tells assistive tech to skip it.
  • Keep it under 125 characters — not a hard rule, but screen readers typically cut off after that point.
  • Make each alt text unique across the page. If you have five product shots, describe each one differently. Google notices when you've copy-pasted.

3. Strip or Sanitize EXIF and Metadata

This one lives at the intersection of privacy and SEO hygiene. Your camera bakes a surprising amount of information into every JPEG and HEIC: GPS coordinates, device model, shooting time, even the serial number of the camera body. You probably don't want to publish your home address embedded in a photo of your home studio setup.

  • Check what's in your images before you upload. On macOS, open any image in Preview, go to Tools → Show Inspector, then click the info tab. You'll see EXIF data right there. For a more thorough read, ExifTool (free, command-line) is the gold standard — exiftool filename.jpg dumps every field.
  • Remove geotags from personal or sensitive images. ExifTool handles this: exiftool -gps:all= filename.jpg strips all GPS fields in place.
  • Keep copyright and creator fields. Stripping everything isn't always right. If you're a photographer, the Copyright, Creator, and Rights IPTC fields protect your work and some platforms surface them. Strip GPS; keep authorship.
  • For product or blog images where you want a clean slate, tools like ImageOptim (Mac) strip most metadata as part of compression. Set it up to do both jobs in one pass.

4. Compress Without Visible Quality Loss

Page speed is a direct ranking factor and images are almost always the biggest contributor to slow load times. The goal isn't small files at any cost — it's the smallest file that still looks good at the size it'll actually be displayed.

  • Choose the right format first. JPEG for photographs, PNG for anything with transparency, WebP for everything if your host and CMS support it (most modern setups do). AVIF is better than WebP but browser support still has gaps as of mid-2026 — test before committing.
  • Resize before compressing. If your blog column is 800px wide, uploading a 4000px image and letting CSS scale it down wastes bandwidth on every page load. Resize to display dimensions first.
  • Target under 150KB for most web images, under 80KB for thumbnails. These aren't absolute rules — a full-width hero image can reasonably be larger — but they're a good gut-check.
  • Tools I actually use: Squoosh (browser-based, free, gives side-by-side quality comparison), ImageOptim (Mac desktop, batch-friendly), or Sharp if you're processing programmatically. TinyPNG is fine for quick one-offs.
  • Check the result in a new browser tab at 100% zoom before moving on. Compression artifacts are easy to miss when you're looking at a thumbnail.

5. Verify Color Rendering Across Contexts

This step trips up product photographers and designers more than anyone else. Images shot in AdobeRGB look amazing in Lightroom and terrible on most monitors when published to the web — washed-out, desaturated, slightly wrong. The culprit is color profile mismatch.

  • Convert to sRGB before export. Every image destined for the web should be in the sRGB color space. Most export dialogs in Photoshop, Lightroom, and Affinity Photo have a "Convert to sRGB" checkbox — use it every time.
  • Use a color picker to spot-check critical brand colors after export. Open the published image in a browser, use your browser's DevTools color picker or a tool like ColorPicker.me, and sample the colors you care about. If your brand blue is supposed to be #1A3FBD and it's showing as #1E47CC, there's a profile issue.
  • Don't embed the ICC profile unnecessarily. Embedding AdobeRGB or ProPhoto profiles in a file that's going to a web page adds file size without benefit. If you've converted to sRGB, you can strip the profile or embed the sRGB profile — both are fine. Embedding AdobeRGB is the mistake.

6. Add Structured Data for Images Where It Matters

For recipes, products, articles, and news, Google can display image-rich results in search — but only if you've told it what the image represents. That's what structured data does.

  • For product pages, your Product schema should include an image property pointing to your primary product image URL. Without it, product rich results often don't show the image.
  • For recipes, the Recipe schema's image field should include multiple sizes (Google recommends at least 16:9, 4:3, and 1:1 aspect ratios as separate URLs if possible).
  • For articles, NewsArticle and Article schemas support an image field that influences how your content appears in Google Discover and Top Stories.
  • Validate before you publish. Google's Rich Results Test lets you paste a URL or raw HTML and immediately see whether your structured data is valid and which rich result types you qualify for. Run it. Every time. It takes thirty seconds and catches errors that would otherwise cost you weeks of ranking potential.
  • Image URLs in structured data must be crawlable and stable. Don't use URLs that redirect, require authentication, or point to CDN paths that might change. A broken image URL in your schema is worse than no image URL at all.

7. Final Checks Before You Publish

A quick last pass before hitting the button:

  • Is a descriptive title attribute on images where it adds genuine value? Not required for SEO, but it can show as a tooltip and adds context. Don't copy-paste your alt text verbatim — write something complementary or leave it off.
  • Are images lazy-loaded? Above-the-fold images should load eagerly; below-the-fold should use loading="lazy". This is a Core Web Vitals detail but it affects LCP scores on image-heavy pages.
  • Do you have an image sitemap, or are your images included in your main sitemap? Google can discover images through regular crawling, but an image sitemap helps — especially for images served from a CDN subdomain that wouldn't be crawled in the normal course of following links.
  • Run a quick crawl of the published page with Screaming Frog (free up to 500 URLs) to catch missing alt text, oversized files, and broken image paths in one shot. I do this weekly for active projects rather than waiting until something goes wrong.

None of this is complicated. The whole checklist takes maybe ten minutes per page once you've built the habit. The photographers and content teams I've worked with who actually follow a list like this consistently see higher click-through rates from image search, better Core Web Vitals scores, and cleaner audit reports when they run SEO tools. The ones who skip it keep finding the same low-hanging problems showing up in crawls months later.

Save this, adapt it to your workflow, and run through it before every publish. Future you will thank present you.