/
/
Image SEO mistakes that kill rankings (and the fixes)

Image SEO mistakes that kill rankings (and the fixes)

7 min read

Most image SEO mistakes aren't malicious — they're defaults. The seven that quietly hurt rankings, why each one matters, and how to fix it.

Most image SEO mistakes are not the result of bad decisions. They are the result of no decision — defaults left in place, the camera’s filename kept, the “lazy-load everything” setting flipped on years ago and never revisited. Which is good news: a default is easy to change once you know to look for it.

Here are the seven that quietly hurt rankings on image-heavy WordPress sites, ranked roughly by how much damage they do. Each comes with why it matters, how to fix it, and how to audit your own site for it. For the full framework behind these, see our complete image SEO guide.

A word on why “default, not decision” is the useful framing. Every one of these mistakes is something a reasonable person ends up with by doing nothing wrong — keeping the camera’s filename, leaving a plugin’s lazy-load setting on, uploading the photo at the size the camera produced. That is good news, because a default is trivial to change once you know to look. The hard part is not the fix; it is knowing the problem is there at all, since none of these throws an error or shows a warning. They just quietly cost you. The audit steps below are how you make the invisible visible.

1. Lazy-loading the hero image

Why it hurts. Your largest above-the-fold image is usually your Largest Contentful Paint element — the thing Google measures to decide how fast your page feels. Lazy-loading delays it, so the browser waits before fetching the one image it should fetch first. This is the most common and most damaging image mistake on the web, precisely because “lazy-load everything” used to be the advice.

The fix. Remove loading="lazy" from the hero and add fetchpriority="high". Lazy-load everything below the fold as normal.

Audit it. Run PageSpeed Insights, find the named LCP element, and check its loading attribute.

2. Missing or stuffed alt text

Why it hurts. Missing alt text leaves search engines and screen readers with nothing — and more than half of home pages have this problem. Stuffed alt text is the opposite failure: a keyword pile-up that Google treats as spam. Both lose.

The fix. Write a natural description, 80 to 125 characters, for every meaningful image. Give decorative images a deliberate empty alt="".

Audit it. Media Library list view, alt-text column, sort to find the gaps. Full method in how to write alt text that ranks.

3. Uncompressed images over 1MB

Why it hurts. A multi-megabyte image is the heaviest thing on most pages, and image weight is the biggest single factor in page speed. Slow pages rank worse and convert worse.

The fix. Resize to display size, compress, and serve WebP or AVIF with a fallback. An 800px WebP at 150KB does the job a 2MB JPEG was failing to do.

Audit it. Right-click your key images, open in a new tab, check the file size. Anything over a few hundred KB is a candidate.

4. No width and height attributes

Why it hurts. Without dimensions, the browser does not reserve space, so the page jumps as images load. That jump is Cumulative Layout Shift, a Core Web Vital, and it frustrates readers as much as it dents rankings.

The fix. Always set width and height. WordPress and well-built gallery plugins do this automatically; the problem usually lives in custom theme code.

Audit it. Check your CLS score in PageSpeed Insights; inspect a few image tags for missing dimensions.

5. srcset without sizes

Why it hurts. The srcset attribute offers the browser several image sizes; without a matching sizes attribute, the browser assumes the image fills the full viewport and downloads an oversized file on mobile. You did the responsive-images work and lost the benefit on the last step.

The fix. Always pair srcset with sizes. WordPress generates both when you use its image functions properly.

Audit it. Inspect an image tag — if you see srcset but no sizes, that is the bug.

6. Underscores in filenames

Why it hurts. Google reads hyphens as word separators and underscores as joiners, so red_brick_house is read as one word. It is a small signal, but it is free to get right and free to get wrong.

The fix. Hyphens, lowercase, descriptive. Fix it on the source before upload — see image file naming for SEO.

Audit it. Open key images in a new tab and read the filename in the URL.

7. Schema with broken image URLs

Why it hurts. A broken or relative image URL inside otherwise-correct schema disqualifies the rich result silently — no error, no warning, just no result. This one is invisible until you test for it.

The fix. Use absolute URLs in schema and test the live page with Google’s Rich Results Test.

Audit it. Paste your important page URLs into the Rich Results Test and check that the image fields resolve.

Do this now. Run one important page through PageSpeed Insights and the Rich Results Test back to back. Between the two reports you will spot mistakes 1, 3, 4, 5, and 7 in about five minutes. Fix the LCP one first — it is the highest-impact change on the list.

The 20-minute audit session

Rather than hunting for these one at a time, run a single focused session on your most important page and catch all seven in one pass. Block out twenty minutes and work in this order.

  1. PageSpeed Insights (5 min). Run the page. Expand the LCP element — is it lazy-loaded? (Mistake 1.) Check the CLS score — above 0.1? (Mistake 4.) Note the total image weight flagged in the opportunities — large files? (Mistake 3.)
  2. View source (5 min). Open the raw page source and inspect a few image tags. srcset present but no sizes? (Mistake 5.) Missing width/height? (Mistake 4, confirmed.) Read the filenames in the URLs — underscores or IMG_? (Mistake 6.) Blank or stuffed alt? (Mistake 2.)
  3. Rich Results Test (5 min). Paste the live URL. Do the image fields resolve, or is there a broken contentUrl? (Mistake 7.)
  4. Write the punch list (5 min). You now have a list of which of the seven this page actually has. Fix them in impact order: LCP first, then file size, then the rest.

The value of doing it as one session rather than seven separate hunts is that you finish with a complete picture of the page and a prioritised list, instead of fixing one thing and wondering what else is lurking. Run it on your top three pages and you have covered the content that matters most.

Most of these mistakes are defaults a gallery plugin can hold correctly for you, so they never recur in the first place: dimensions, srcset with sizes, first-row-eager loading, and absolute-URL schema are all things FotoGrids handles per gallery rather than per image. Getting them right once at the tool level is the difference between auditing for these mistakes repeatedly and never making them again — the audit becomes a confirmation rather than a clean-up.

Key takeaways

  • The worst mistake is lazy-loading the hero — fix that first.
  • Most mistakes are defaults, not decisions, which makes them easy to fix once you look.
  • PageSpeed Insights plus the Rich Results Test surface five of the seven in minutes.
  • A good gallery plugin holds most of these correct so they never come back.

What is the most damaging image SEO mistake?

Lazy-loading your hero or Largest Contentful Paint image. It delays the one image the browser should fetch first, hurting page speed, Core Web Vitals, and rankings together. Fix it before anything else.

How can I check my image SEO quickly?

Run an important page through Google’s PageSpeed Insights and Rich Results Test back to back. Between them you will catch lazy-loaded heroes, oversized files, missing dimensions, missing sizes, and broken schema URLs in a few minutes.

Do underscores in filenames really matter?

It is a small signal, but Google reads underscores as joiners and hyphens as separators, so red_brick_house reads as one word. It costs nothing to use hyphens, so there is no reason not to.

FotoGrids · Pro Starter

Image SEO & structured data — built in.

Schema, Open Graph, and image sitemaps generated for every gallery — without a second SEO plugin. Lazy-loading, responsive images, and captions are already in Free.

  • Schema.org ImageObject and ImageGallery markup.
  • Auto-generated image sitemap for every gallery.
  • Open Graph & Twitter card per gallery.

In this article

Share the article
Related Articles