Skip to main content
Hero image for WordPress Image SEO: The Complete Technical Checklist
9 min read

WordPress Image SEO: The Complete Technical Checklist

Quick summary

  • A complete technical checklist covering every image SEO factor for WordPress: alt text, file naming, compression, WebP format, lazy loading, structured data, Open Graph tags, and XML sitemap image inclusion
  • WooCommerce-specific additions included: product schema, gallery image markup, and Google Merchant Center image requirements
  • Ordered by impact per hour of effort, with pass/fail criteria for each item and developer-grade specificity throughout

WordPress Image SEO Checklist: Every Factor That Matters

Most WordPress image SEO guides cover alt text and then stop. That's fine as far as it goes — alt text is the most consistently overlooked signal, and if you only fix one thing, fix that. But if you're doing a proper audit of a site, or setting up a new build with image SEO baked in, there's a longer list.

This checklist covers every factor that affects how Google finds, crawls, indexes, and ranks images from a WordPress site. I've run versions of this audit on 40+ WordPress installs. These are the items that consistently make a difference.

The list is ordered roughly by impact per hour of effort — fix the high-leverage items first. The WooCommerce additions are at the end.


1. Alt Text — The Non-Negotiable

Alt text is Google's primary signal for understanding what an image shows. It's also the most commonly missing or wrong.

The pass/fail test: Every non-decorative image on the site has a unique, descriptive alt text that accurately describes the image content and includes naturally-occurring keywords where relevant. Decorative images (purely visual, adding nothing to content comprehension) have alt="".

What "good enough" looks like:

  • Red leather crossbody bag with adjustable strap and brass buckle closure
  • Screenshot of WordPress media library showing alt text column for bulk editing
  • IMG_4521.jpg — filename leak; tells Google nothing
  • image or photo — present but useless
  • red bag leather bag buy red leather bag — keyword stuffing; Google's guidance explicitly penalises this

The three alt text failure modes that show up in audits most often: missing entirely, too generic (any image could have this description), or duplicated (same alt text on every image on a page). All three reduce Google's ability to index images correctly.

Why it matters beyond Google: As of 2026, AI search assistants — including ChatGPT, Perplexity, and Claude — scrape alt text directly when generating product citations in shopping results. Sites with descriptive alt text are being cited three to six times more often than sites with empty or generic alt text. This is a relatively new discovery channel, and alt text is the entry ticket.

How to audit at scale: Export a list of all media library items using a plugin or WP-CLI:

wp media list --fields=ID,post_title,post_mime_type --format=csv

Then cross-reference against the _wp_attachment_image_alt post meta field to identify images with empty or very short alt text. For sites with hundreds of images, bulk generation followed by a review pass is the practical approach — doing it manually is how this task ends up permanently on the to-do list.

Internal links:How to fix missing alt text in WordPress · → Does alt text actually help WordPress SEO? · → WooCommerce product image alt text: the complete guide · → How to bulk-fix alt text for 1,000+ WooCommerce products · → Alt text and WCAG: what WordPress sites actually need to comply · → How to add alt text in WordPress without an OpenAI API key


2. Image File Naming

File names are a secondary Google relevance signal. They reinforce or contradict what the alt text says. Google uses them when it can't rely on other signals.

The pass/fail test: Images have descriptive, hyphenated file names that reflect the image content. Camera-assigned names (IMG_4521.jpg, DSC_0034.jpg, screenshot-2024.png) are absent.

Convention that works:

[subject]-[descriptor].jpg
red-leather-crossbody-bag-front-view.jpg
wordpress-media-library-alt-text-bulk-edit.png

What doesn't work:

image1.jpg
photo.jpg
IMG_4521.jpg
new-image-copy-final-v2.jpg

Developer note on retroactive renaming: Changing file names on existing images is higher-risk than it sounds. WordPress stores file paths in the database — guid, _wp_attached_file post meta, and any <img> tags in post content. Renaming the physical file without updating those references gives you broken images. Most image SEO plugins that offer file renaming handle the database updates automatically. If you're doing it manually, use wp search-replace to update references, and confirm you have a complete redirect from the old URL. For large sites, prioritise fixing alt text first — higher impact per hour. Tackle file renaming when you're ready to commit to the full update.


3. Image Compression and File Size

Large image files are one of the most common causes of slow Core Web Vitals scores. Google's May 2026 algorithm update set LCP at two seconds and CLS at 0.1 as firm thresholds. Product images and hero images are typically the LCP element — if they're oversized, the whole page's performance score drops.

The pass/fail test: No image file on the site exceeds 200KB except in cases where image quality genuinely requires it (detailed photography, print-quality assets). Hero images and product images load in under 500ms on a standard connection.

Numbers worth knowing:

  • A typical JPEG product photo from a DSLR or modern smartphone: 3–8MB as exported
  • Target after compression: 60–150KB for 800×800 product images
  • WebP or AVIF at equivalent quality: 25–50% smaller than JPEG

Recommended tooling: ShortPixel, Imagify, and Smush are the three plugins that consistently perform well in independent compression tests. All three handle bulk compression of existing media libraries. ShortPixel has been consistently reliable across varied image types — product photography, editorial images, screenshots, and infographics.

What to check on each audit:

  • Run PageSpeed Insights on the highest-traffic product or content page
  • Look specifically at "Serve images in next-gen formats" and "Properly size images" in the Opportunities section
  • Check that the LCP element (usually identified in the Core Web Vitals tab) isn't an uncompressed image

4. WebP and AVIF Format Conversion

JPEG and PNG are still the default format for most WordPress sites. WebP delivers equivalent quality at 25–50% smaller file sizes. AVIF is newer — even smaller, but broader browser support came more recently.

The pass/fail test: New image uploads are served in WebP or AVIF format to browsers that support it. Legacy JPEGs and PNGs are either converted or served with WebP alternatives using <picture> elements.

WordPress support:

  • WordPress 5.8+ includes native WebP support
  • WordPress 6.5+ includes WebP generation by default during image uploads (if the server has the right libraries)
  • WordPress 6.8 "Cecil" extended WebP support and improved AVIF handling

Check whether your server has the necessary libraries: gd (for WebP) or imagick (for both WebP and AVIF). On most modern hosting setups this is already enabled. If wp_image_editor_supports(['mime_type' => 'image/webp']) returns false, the libraries aren't available.

Compression plugin coverage: Most compression plugins handle WebP conversion as part of their optimisation pipeline. Configure them to serve WebP alternatives automatically and you cover both the format and the compression in a single step.


5. Image Dimensions and Responsive Sizing

Serving an image at larger dimensions than the display container requires wastes bytes and inflates file sizes. Serving images that are too small for their container means blurry rendering on high-DPI screens.

The pass/fail test: Images are sized appropriately for their display context. WordPress is configured to generate the correct image sizes for the theme's image containers. No images are being scaled down by CSS from a significantly larger source size.

How to check: Use browser developer tools → Network tab → filter by "img" to see the actual file sizes being loaded for key images. Compare those file sizes to the CSS dimensions the images display at. A 3000px wide image displaying at 800px width is a strong signal something is wrong.

WordPress image size configuration:

// Register custom image sizes in functions.php
add_image_size('product-card', 400, 400, true); // cropped square
add_image_size('hero-image', 1600, 840, true);   // cropped hero ratio

// Force regenerate thumbnails after adding sizes:
// WP-CLI: wp media regenerate --only-missing

The "Regenerate Thumbnails" plugin or WP-CLI's wp media regenerate handles existing media library images when you add new sizes.


6. Lazy Loading

Lazy loading defers off-screen image loading until the user scrolls to them. It reduces initial page load time and improves LCP scores by focusing network bandwidth on above-the-fold content.

The pass/fail test: All images below the fold have loading="lazy" attribute. The LCP image (hero or first product image) does NOT have loading="lazy" — lazy loading the LCP element will actually hurt your score by delaying the most important image.

WordPress 5.5+ automatically adds loading="lazy" to images via wp_lazy_loading_enabled. This covers the standard <img> tags output by WordPress core.

Where this breaks:

  • Custom theme templates that output <img> tags directly without wp_get_attachment_image() or similar WordPress functions — these won't get the attribute automatically
  • Some page builders that override image output with their own rendering
  • WooCommerce gallery images in some themes (see WooCommerce section below)

The LCP image exception: Tell WordPress not to lazy-load the hero or above-the-fold product image:

add_filter('wp_lazy_loading_enabled', function($enabled, $tag, $context) {
    if ($context === 'the_content') {
        // Check if this is the first image in content
        // Logic depends on your theme structure
    }
    return $enabled;
}, 10, 3);

WordPress 6.8 introduced the Speculation Rules API, which handles some of this automatically for navigation prefetching — but the LCP image lazy-loading exception is still something to configure explicitly.


7. Structured Data: ImageObject Schema

Structured data tells Google explicitly what your images show, in a format it can parse reliably rather than infer. The ImageObject schema type is the relevant one for images.

The pass/fail test: High-value images on the site (product images, authored images, featured images) are referenced in structured data with appropriate schema markup. ImageObject properties populated at minimum: url, width, height, description (mirrors alt text).

Where it matters most: Product pages, article pages with byline photos, and recipe or tutorial pages where images are integral to the content. Structural pages (contact, about) rarely need this.

WordPress implementation: Most SEO plugins (Yoast, Rank Math, All in One SEO) include ImageObject references in their Article and Product schema output. Check what they're actually outputting using Google's Rich Results Test — the schema is often present but missing the description property or referencing only one image when there are multiple.

Manual addition if your SEO plugin doesn't cover it:

{
  "@context": "https://schema.org",
  "@type": "ImageObject",
  "url": "https://example.com/wp-content/uploads/product.jpg",
  "width": 800,
  "height": 800,
  "description": "Red leather crossbody bag with adjustable strap, front view"
}

Note: The Yoast SEO Schema Aggregation feature (rolled out March 2026) improved how WordPress image schema connects to the broader page graph. Worth verifying your SEO plugin is on a current version that includes it.


8. Open Graph and Social Image Tags

Open Graph tags control how images appear when pages are shared on social platforms — and they also provide additional image metadata that search engines can use.

The pass/fail test: Every page has og:image set to a specific, high-quality image. The image meets the recommended dimensions for social sharing (1200×630px minimum). The og:image:alt tag is populated with descriptive alt text (required for Twitter Cards accessibility compliance as of 2024).

<meta property="og:image" content="https://example.com/path/to/image.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Descriptive text for the social image" />

Most WordPress SEO plugins handle this if you configure the Social settings correctly. The common failure: the og:image:alt tag is missing even when og:image is set correctly. Check both.


9. XML Sitemap Image Inclusion

Google's image sitemap extensions allow you to explicitly list images on each page and their associated metadata. This is separate from the standard XML sitemap and gives Google additional signals about image content.

The pass/fail test: Your XML sitemap includes image namespace extensions for pages with significant image content. Each image reference includes at least the <image:loc> element; ideally also <image:title> and <image:caption>.

Sample image sitemap entry:

<url>
  <loc>https://example.com/products/red-leather-bag/</loc>
  <image:image>
    <image:loc>https://example.com/wp-content/uploads/red-leather-bag.jpg</image:loc>
    <image:title>Red Leather Crossbody Bag</image:title>
    <image:caption>Red leather crossbody bag with adjustable strap and brass buckle</image:caption>
  </image:image>
</url>

Yoast SEO and Rank Math both generate image sitemaps automatically, including referenced images from post content. The key thing to verify is that WooCommerce product gallery images are included — not just the featured image. Some configurations only pick up the featured image and leave gallery images out of the sitemap entirely.


10. CDN and Image URL Consistency

If you're serving images through a CDN (Cloudflare, BunnyCDN, or similar), make sure Google Search Console is verified for both the original domain and the CDN domain — and that your structured data, sitemaps, and Open Graph tags all reference the same canonical image URL.

The pass/fail test: Image URLs referenced in structured data, sitemaps, and Open Graph tags match the URLs Google actually crawls in Search Console. No mixed HTTP/HTTPS references. No mismatches between original domain URLs and CDN URLs.

Inconsistent URLs across these signals don't cause a catastrophic failure, but they reduce the clarity of your image signals to Google. Consistent URLs across all references reinforce the same signals.


WooCommerce-Specific Additions

WooCommerce stores have additional image SEO requirements that don't apply to standard WordPress sites. These are consistent pain points that affect product image visibility in Google Image Search.

Product Schema: Image Property

WooCommerce includes basic Product schema by default, but the image property is frequently incomplete or missing. Google Merchant Center flags this as "product images do not meet quality expectations."

What complete product schema looks like:

{
  "@type": "Product",
  "name": "Red Leather Crossbody Bag",
  "image": [
    "https://example.com/bag-front.jpg",
    "https://example.com/bag-side.jpg",
    "https://example.com/bag-interior.jpg"
  ]
}

Note the array — all gallery images should be referenced, not just the featured image. Check what your SEO plugin outputs on product pages using Google's Rich Results Test, then configure it to include gallery images if they're missing.

Most WooCommerce stores that have alt text on their featured product image have no alt text — or duplicated alt text — on gallery images. This is a distinct problem from the featured image.

Gallery images show different views of the same product. Each view should have a distinct alt text that describes what that view shows:

  • Front view: Red leather crossbody bag, front view showing main compartment and magnetic closure
  • Side view: Red leather crossbody bag, side view showing profile depth and base stitching
  • Interior: Red leather crossbody bag interior with three card slots and zip pocket

Writing these manually for a catalog of 300 products means 900+ distinct alt text strings. That's the scale problem WooCommerce stores face — and why bulk generation with per-image review is the practical workflow.

Reference:WooCommerce product gallery images and alt text: the missing SEO guide · → WooCommerce and Google Image Search: why your products aren't showing · → Auto-generate alt text on WordPress image upload

Google Merchant Center Image Requirements

If you're using Google Shopping, Merchant Center has its own image quality requirements that affect product visibility in Shopping results (separate from organic image search):

  • Minimum image size: 100×100px (recommended 800×800px minimum for apparel, 1000×1000px for other products)
  • No text overlays, watermarks, or borders
  • White or light background preferred for product-only shots
  • JPEG, PNG, or WebP format (no SVG)

Merchant Center reports image quality issues in its Diagnostics tab. Check this monthly if you're running Shopping campaigns — an image quality rejection can silently suppress products from Shopping results without alerting you through normal channels.

WooCommerce product galleries are a common source of LCP problems. Loading five or six full-resolution gallery images on page load — even if they're below the fold — can significantly inflate page weight.

Check that your theme applies loading="lazy" to gallery images that aren't in the initial viewport. The featured product image should load without lazy loading (it's almost always the LCP element on a product page). Gallery thumbnails and carousel images below the fold should be lazy-loaded.

Test with PageSpeed Insights on your highest-traffic product pages. The LCP element and its load time will be identified explicitly. If it's a WooCommerce gallery image rather than the featured image, your theme is likely loading gallery images in a way that competes with the main product image for priority.


Frequently Asked Questions

What's the most important image SEO factor for WordPress?

Alt text — by a significant margin. It's the primary signal Google uses to understand image content, and it's consistently the most commonly missing or incorrect item across WordPress sites. If you're doing a triage audit and need to prioritise one thing, fix alt text first. File naming, structured data, and sitemap inclusion are all worth doing, but none of them will move the needle the way fixing empty alt text does at scale.

Does image size affect WordPress SEO?

Yes, through two distinct mechanisms. First, large image files slow page load times, which affects Core Web Vitals scores (particularly LCP) and can suppress page rankings after Google's May 2026 algorithm update tightened performance thresholds. Second, serving images at larger dimensions than their display context requires wastes bandwidth for users without any quality benefit. Both are addressable through image compression and correct size configuration in WordPress.

How do I add image schema markup to WordPress?

Most SEO plugins (Yoast, Rank Math, All in One SEO) handle this automatically for standard post types. For WooCommerce, verify that the image property in your Product schema references all product images — not just the featured image. Use Google's Rich Results Test to see exactly what schema Google reads from your product pages. If gallery images are missing from the schema, you'll need to either configure your SEO plugin or add custom structured data output via wp_head or a theme function.


Use This List

This checklist has ten items plus the WooCommerce additions. On most sites I've audited, items 1, 2, 3, and 7 account for the majority of fixable image SEO gaps. Start there.

A few of these items — particularly alt text at scale and structured data verification — are worth making part of your standard site audit process rather than a one-time fix. Images get added, products get uploaded, themes get changed. The checklist is more useful as a recurring audit than as a single remediation pass.

If you're managing a WooCommerce store with a significant product catalog, the alt text item alone is probably several hours of work at minimum — more likely a day or two — to fix manually. That's why most stores don't fix it. BeepBeep AI handles WooCommerce featured images, gallery images, and media library items in a single bulk workflow, with a review step before anything saves to your database.

Try BeepBeep AI free on WordPress.org →

Disclosure: BeepBeep AI is built by Ben Oats, the author of this post.

O

Benjamin Graham Oats

·9 min read

Related Posts