Published May 2026 · Updated May 29, 2026
Search engines cannot see images the way humans do. They read the text signals around an image — the file name, alt attribute, surrounding paragraph text, structured data, and page context — to understand what the image depicts and whether it is relevant to a given search query.
Getting this right matters for two distinct reasons. First, images with good SEO signals rank in Google Image Search, which drives a meaningful share of referral traffic for sites with visual content. Second, search engines use image relevance as one input when assessing overall page quality — a page where images are properly labeled and relevant to the content signals to crawlers that the page was carefully prepared.
The good news is that image SEO is mostly a checklist of straightforward practices: file naming conventions, writing accurate alt text, picking the right format and file size, and in some cases adding structured data. None of it requires advanced technical knowledge.
The file name is one of the first signals a search engine uses to understand an image. Crawlers read the URL path — and a path like /images/IMG_4821.jpg tells them nothing, while /images/apple-watch-ultra-black-titanium.jpg tells them quite a lot.
red_dress is parsed as a single token, not two words.DSC00412.jpg, image(3).png, and screenshot-2025-11-07.png are all meaningless to crawlers.IMG_4821.jpg · photo1.png · image-file-2.webp · DSC00412-copy.jpg
homemade-sourdough-bread.jpg · nike-air-max-90-white.webp · tokyo-skyline-night.jpg
Alt text (the alt attribute on an <img> element) serves two purposes simultaneously: it describes the image to screen readers for visually impaired users, and it provides a primary text signal to search engine crawlers.
These two purposes are sometimes in tension — SEO alt text and accessibility alt text are not always written the same way — but they are mostly aligned. Good alt text for accessibility is usually good alt text for SEO.
alt="" for decorative images. Spacers, decorative dividers, and purely aesthetic images should have an empty alt attribute, not a description. This tells screen readers to skip them.alt="product"alt="image of shoes shoes buy shoes online best shoes"alt="photo of a dog"
alt="Nike Air Max 90 in white and black, right-side view"alt="Golden retriever puppy sitting on a park bench"alt="Bar chart showing monthly website traffic from Jan–Jun 2026"
Drop an image here to generate a concise alt text draft while you read the guide. Review the result before publishing it.
or click to browse · JPG, PNG, WebP
AI analysis sends the image to Cloudflare Workers AI for inference. Use non-sensitive images only.
| Image type | Alt text approach | Example |
|---|---|---|
| Product photo | Brand + product name + key variant (color, size) | Sony WH-1000XM5 headphones in midnight black |
| Photograph / scene | Subject + action or context + location if relevant | Aerial view of Santorini cliffs at sunset |
| Chart or graph | Type of chart + what it shows + key conclusion | Line chart showing 40% revenue growth Q1–Q4 2025 |
| Screenshot | What the screenshot is of + the key UI element shown | Chrome DevTools Network panel showing image load times |
| Decorative / spacer | Empty alt (alt="") |
alt="" |
Image SEO is not only about text signals — technical factors affect how images rank and how the page performs overall.
One of the most common SEO and performance mistakes is serving images at much larger dimensions than they are displayed. A 4000×3000 JPEG served in a 600px-wide blog column is sending three times more data to the browser than needed. Google's crawlers and Lighthouse checks flag this as wasted bandwidth, which directly affects your Page Speed score and LCP (Largest Contentful Paint).
The correct approach is to resize images to roughly 1× or 2× their display dimensions (for high-DPI screens), then use srcset to serve different sizes to different devices. For a 600px column on desktop and 100vw on mobile, you might serve a 600px, 900px, and 1200px version and let the browser pick the right one.
LCP is the render time of the largest visible element in the viewport — and it is almost always an image (hero image, featured photo, product shot). LCP is a Core Web Vitals metric and a confirmed Google ranking signal.
The practical targets for LCP images:
If your hero image is 800KB+, LCP will almost certainly be above 2.5 seconds — the threshold Google considers "good". Compress and convert the image before worrying about any other SEO factor.
Structured data (schema.org markup in JSON-LD format) gives search engines explicit, machine-readable information about an image and its context. While alt text and file names are inferred signals, structured data is a direct declaration.
The ImageObject type lets you declare properties of an image directly. It is most commonly used as part of a larger schema (like Article, Product, or Recipe) rather than standalone. For example, an article schema can include an image property pointing to the article's featured image:
{
"@type": "Article",
"headline": "How to Make Sourdough Bread",
"image": {
"@type": "ImageObject",
"url": "https://example.com/images/sourdough-loaf.jpg",
"width": 1200,
"height": 800,
"caption": "A finished sourdough loaf on a wooden board"
}
}
E-commerce pages benefit the most from structured image data. Google's Shopping Graph — which powers product results in Search and Google Shopping — pulls product images from Product schema. High-quality, well-labeled product images with matching structured data are more likely to appear in visual product search results.
Key properties for product images: include at least one image URL in the image field of your Product schema. Google recommends images that are at least 160×90 px and no larger than 1920×1080 px, with the product clearly visible against a neutral background.
Recipe and how-to pages that include structured data with images are eligible for Google's rich results — the visual cards that appear at the top of search results. Each step in a HowTo schema can include its own image, and recipe schemas can include multiple images for different preparation stages. These rich results can dramatically increase click-through rates compared to plain text listings.
When a page is shared on social media (Twitter/X, Facebook, LinkedIn, Slack, iMessage), platforms pull the preview image from the page's Open Graph meta tags. This is separate from search engine indexing but affects click-through rates when links are shared.
<meta property="og:image" content="https://example.com/og/article-share.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://example.com/og/article-share.jpg">
The standard recommendation is 1200×630 px for Open Graph images — this renders well across most platforms without cropping. Use a JPEG or WebP at 80–85% quality; most platforms cache these aggressively so file size is less critical than for page images.
Use a dedicated share image rather than a content image. Share images look best when designed with a title overlay and enough margin around the edges so platform cropping does not cut off important content.
A standard XML sitemap tells Google which pages exist. An image sitemap (using the image: namespace extension) tells Google which images are on each page, along with their metadata. This helps Google discover images faster — particularly on pages with images loaded via JavaScript, which crawlers handle less reliably.
<url>
<loc>https://example.com/products/sourdough-starter</loc>
<image:image>
<image:loc>https://example.com/img/sourdough-starter-100g.jpg</image:loc>
<image:title>Sourdough starter 100g jar</image:title>
<image:caption>Active sourdough starter in a glass jar with lid</image:caption>
</image:image>
</url>
Image sitemaps are most valuable for: e-commerce product pages, photo galleries, and any page where images are a primary content type. For a standard blog with a few images per post, the incremental crawl discovery benefit is small.
Google Image Search is a separate ranking surface from web search. Understanding how it works helps prioritize image SEO efforts.
If Google Image Search is a traffic goal, focus on:
A practical reference for auditing or building image SEO on any page:
| Factor | What to check | Priority |
|---|---|---|
| File name | Descriptive, hyphenated, no camera auto-names | High |
| Alt text | Present, accurate, under 125 chars, no stuffing | High |
| File size | Hero images <100KB, secondary images <50KB | High |
| Format | WebP or AVIF for photographs; PNG for graphics with transparency | High |
| Display dimensions | Served at 1×–2× display size, not 5× | High |
| Structured data | Product/Article/Recipe schema includes image property | Medium |
| Open Graph image | og:image at 1200×630, relevant to page content | Medium |
| LCP image preload | <link rel="preload" as="image"> for above-fold hero |
Medium |
| Image sitemap | Add image namespace for e-commerce / gallery pages | Low–Medium |
| Lazy loading | loading="lazy" on below-fold images, not on LCP image |
Medium |
| CDN / caching | Images served with long cache TTL and from edge location | Medium |