ClasesSEO
ES EN
SEO Search Engine Optimization

How to appear in Google Images: a step-by-step SEO guide

9 min read Leer en español
How to appear in Google Images: a step-by-step SEO guide
Table of contents

You published the site, the photos look fine on screen, and image search shows nothing. The useful question is not how to upload the image, but why Google is not showing it. To appear in Google Images you have to work on image SEO, and it is not solved by filling in the alt attribute.

The process has three steps: Google has to discover the image, understand it and decide to show it. What you control are the signals you declare at each one.

How Google discovers and indexes images

The general crawling requirements apply here too, but there are additional ones: how an image is presented decides which keywords it gets indexed for. The base rule, from Google's image SEO best practices, is blunt: "Using standard HTML image elements helps crawlers find and process images." Google finds the image in the src attribute of the <img>, even when it is a child of <picture>, and it does not index images declared only in CSS:

<img src="puppy.jpg" alt="golden retriever puppy" />
<div style="background-image:url(puppy.jpg)"></div>

The supported formats are explicit: "Google Search supports images referenced in the src attribute of img in the following file formats: BMP, GIF, JPEG, PNG, WebP, SVG, and AVIF."

Images that never reach the HTML

Data URIs, images embedded as Base64 inside the src, are supported, but they remove HTTP requests and inflate the HTML; web.dev's guide to responsive images covers when each option pays off. Images loaded by JavaScript are a different case: the crawler does not guess them, and the official way to declare them is an image sitemap.

Image sitemaps: what they add and how to write them

The image sitemap exists for one specific problem: "Image sitemaps are a way to tell Google about images on your site, especially images that we wouldn't otherwise be able to find (such as images your site reaches through JavaScript code)." The XML basics live in how to set up XML sitemaps.

The syntax uses the namespace http://www.google.com/schemas/sitemap-image/1.1: each <url> carries its <image:image> blocks, and inside them <image:loc> with the image URL. Official limit: "Each url tag can contain up to 1,000 image:image tags." And one fact that contradicts the regular sitemap rule: "Unlike regular sitemaps, you can include URLs from other domains in the image:loc elements of image sitemaps." That covers images served from a CDN, with two conditions: verify both domains in Search Console and make sure robots.txt does not block crawling (see CDN and SEO and the guide to a correct robots.txt in 2026).

Tags that no longer exist and still get copied from old tutorials: "We've removed the following attributes and tags from our documentation: image:caption, image:geo_location, image:title, image:license." And one warning: an image sitemap helps discovery, it does not guarantee indexing; it competes for crawl budget like any other URL.

Responsive images without losing indexation

This is the trap that makes the most images invisible. To serve the right image for each screen size you use <picture> or srcset, and the document warns: "However, some browsers and crawlers don't interpret these attributes. We recommend that you always include an alternative URL with the src attribute."

<img src="puppy-800.jpg"
     srcset="puppy-400.jpg 400w, puppy-800.jpg 800w"
     sizes="(max-width: 600px) 400px, 800px"
     alt="Dalmatian puppy running in the park" />

<picture>
  <source srcset="puppy.webp" type="image/webp">
  <img src="puppy.jpg" alt="Dalmatian puppy running" />
</picture>

Without that fallback, indexation breaks and, if the image is the main element of the page, the loading metric suffers too. Review LCP, loading speed, Core Web Vitals and resource hints and fetchpriority.

The same image, always the same URL

When an image repeats across pages, the official recommendation is "reference the image with the same URL so Google can cache it and reuse it without having to request it multiple times."

Choosing the image Google shows: og:image, schema and the 1200 px rule

It pays to be honest, because the documentation is: "Google's selection of an image preview is entirely automatic" and it weighs several sources. You cannot force an image; you can influence it by declaring a preference. There are three ways:

  1. The primaryImageOfPage property from schema.org (a URL or an ImageObject) inside a WebPage.
  2. The image property attached to the main entity through mainEntity or mainEntityOfPage.
  3. The <meta property="og:image" content="..."> tag.

When picking it: relevant and representative, never the site logo, no embedded text, no extreme aspect ratios, and high resolution whenever possible. And the numbers that matter for Google Discover: at least 1200 px wide, more than 300,000 pixels in total (the doc gives the example of 16:9 at 1280x720, which is 921,600 pixels), a 16:9 ratio and max-image-preview:large. See max-image-preview and the basics of structured data.

Filenames, titles and alt text

Where Google gets an image's topic from is documented: "Google extracts information about the subject matter of the image from the content of the page, including titles and headings of the images." The filename counts (new-black-kitten.jpg beats IMG00023.JPG), and on multilingual sites it should be translated following the URL and slug best practices and the multilingual website guide.

The decisive attribute: "The most important attribute for providing more metadata for an image is alt text (the text that describes an image), which also improves accessibility for users who can't see images." The four official examples sum up the criteria:

<img src="puppy.jpg"/>                                 (wrong: no alt)
<img src="puppy.jpg" alt="puppy dog pet canine ..."/>    (wrong: keyword stuffing)
<img src="puppy.jpg" alt="puppy" />                      (correct)
<img src="puppy.jpg" alt="dalmatian puppy playing fetch" />  (best)

The limit is stated plainly: "Don't stuff keywords into the alt attributes, as this leads to a poor user experience and can cause your site to be considered spam." Describing what is visible is enough. In embedded SVGs that role falls to <title> (web accessibility), and when an image is a link, its alt text works as anchor text.

Structured data: where the badge in Google Images comes from

With structured data, Google can show images in rich results and add a prominent badge in Google Images. To qualify, the image attribute is required in those data types: without it there is no badge and no rich result. How to implement it lives in structured data and rich snippets and schema.

The other side: keeping images out, or small

max-image-preview accepts none, standard or large, and the official warning explains why ignoring it backfires: "If you don't specify the max-image-preview rule, Google may show image previews at the default size." Without large the image can appear smaller than it could. To stop images from being indexed there is noimageindex: "Don't index the images on this page." The full removal procedure is in how to remove or deindex content from Google.

A little-known and official mechanism: to prevent the embedded link in Google Images, when the request comes from a Google domain you can respond with HTTP 200 or 204 with no content; Google keeps discovering the image, but shows the thumbnail generated during the crawl. The documentation closes it like this: "This behavior is not considered image cloaking and no manual action will be taken." For explicit content there is <meta name="rating" content="adult"> (or the RTA value: one is enough), and it is worth grouping that content on a separate domain, because otherwise the systems can conclude that the whole site looks explicit: guidelines for sites with explicit content.

Final checklist to appear in Google Images

  • The image is declared in an <img> with a real src, never in CSS alone.
  • If srcset or <picture> is used, a fallback src always exists.
  • The same image is always referenced with the same URL to take advantage of caching.
  • With JavaScript-loaded images or images served from another verified CDN, an image sitemap exists.
  • The featured image is large and representative: 1200 px wide, 16:9, with no text or logo.
  • The preference is declared with og:image or schema, not left to chance.
  • A descriptive filename and an alt text that describes the image without stuffing keywords.
  • max-image-preview:large present, and structured data with image if a rich result applies.

How to check whether it works

Real measurement lives in Search Console: the Performance report has a search type filter that covers images, so you can isolate that traffic. Start with how to use Google Search Console and track it with an SEO dashboard; for weight and loading, use PageSpeed Insights.

Appearing in Google Images is not achieved with an alt trick, but by removing the obstacles that stop an image from being discovered, understood and shown. Which image Google picks and when remains out of your control: you can only influence it through the signals Google itself documents.

We use cookies to improve your experience and analyze site traffic. By continuing to browse you accept their use.

Privacy