{"id":291,"date":"2026-08-08T12:50:06","date_gmt":"2026-08-08T12:50:06","guid":{"rendered":"https:\/\/artsflick.com\/blog\/?p=291"},"modified":"2026-08-08T12:50:08","modified_gmt":"2026-08-08T12:50:08","slug":"image-seo","status":"publish","type":"post","link":"https:\/\/artsflick.com\/blog\/image-seo\/","title":{"rendered":"Image SEO: What Google&#8217;s Own Documentation Actually Says"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1672\" height=\"941\" src=\"https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-search-results-hero.webp\" alt=\"Laptop showing image search results while planning image SEO for a website\" class=\"wp-image-292\" srcset=\"https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-search-results-hero.webp 1672w, https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-search-results-hero-300x169.webp 300w, https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-search-results-hero-1024x576.webp 1024w, https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-search-results-hero-768x432.webp 768w, https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-search-results-hero-1536x864.webp 1536w\" sizes=\"auto, (max-width: 1672px) 100vw, 1672px\" \/><\/figure>\n\n\n<style>.kb-row-layout-id291_3be651-83 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id291_3be651-83 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id291_3be651-83 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);max-width:1140px;margin-left:auto;margin-right:auto;padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);grid-template-columns:minmax(0, 1fr) minmax(0, 2fr);}.kb-row-layout-id291_3be651-83 > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id291_3be651-83 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr) minmax(0, 2fr);}}@media all and (max-width: 767px){.kb-row-layout-id291_3be651-83 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id291_3be651-83 alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-2-columns kt-row-layout-right-golden kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>#wrapper.site{overflow:clip;}.kadence-column291_82645f-d1 > .kt-inside-inner-col,.kadence-column291_82645f-d1 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column291_82645f-d1 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column291_82645f-d1 > .kt-inside-inner-col{flex-direction:column;}.kadence-column291_82645f-d1 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column291_82645f-d1 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column291_82645f-d1{position:relative;}@media all and (max-width: 1024px){.kadence-column291_82645f-d1 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column291_82645f-d1 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column291_82645f-d1 kb-section-is-sticky\"><div class=\"kt-inside-inner-col\"><style>.kb-table-of-content-nav.kb-table-of-content-id291_5af50d-2f .kb-table-of-content-wrap{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);border-top:0px solid #000000;border-right:0px solid #000000;border-bottom:0px solid #000000;border-left:0px solid #000000;}.kb-table-of-content-nav.kb-table-of-content-id291_5af50d-2f .kb-table-of-contents-title-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id291_5af50d-2f .kb-table-of-contents-title-wrap{color:#000000;}.kb-table-of-content-nav.kb-table-of-content-id291_5af50d-2f .kb-table-of-contents-title{color:#000000;letter-spacing:1px;font-weight:regular;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id291_5af50d-2f .kb-table-of-content-wrap .kb-table-of-content-list{color:#5b6472;font-size:15px;font-weight:regular;font-style:normal;margin-top:0px;margin-left:-2px;}.kb-table-of-content-nav.kb-table-of-content-id291_5af50d-2f .kb-table-of-content-wrap .kb-table-of-content-list .kb-table-of-contents__entry:hover{color:#1f2430;}.kb-table-of-content-nav.kb-table-of-content-id291_5af50d-2f .kb-table-of-content-wrap .kb-table-of-content-list .active > .kb-table-of-contents__entry{color:#3b6cf6;}.kb-table-of-content-nav.kb-table-of-content-id291_5af50d-2f .kb-table-of-content-list li{margin-bottom:16px;}.kb-table-of-content-nav.kb-table-of-content-id291_5af50d-2f .kb-table-of-content-list li .kb-table-of-contents-list-sub{margin-top:16px;}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id291_5af50d-2f .kb-table-of-content-wrap{border-top:0px solid #000000;border-right:0px solid #000000;border-bottom:0px solid #000000;border-left:0px solid #000000;}}@media all and (max-width: 767px){.kb-table-of-content-nav.kb-table-of-content-id291_5af50d-2f .kb-table-of-content-wrap{border-top:0px solid #000000;border-right:0px solid #000000;border-bottom:0px solid #000000;border-left:0px solid #000000;}}<\/style><\/div><\/div>\n\n\n<style>.kadence-column291_e32574-de > .kt-inside-inner-col,.kadence-column291_e32574-de > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column291_e32574-de > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column291_e32574-de > .kt-inside-inner-col{flex-direction:column;}.kadence-column291_e32574-de > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column291_e32574-de > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column291_e32574-de{position:relative;}@media all and (max-width: 1024px){.kadence-column291_e32574-de > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column291_e32574-de > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column291_e32574-de\"><div class=\"kt-inside-inner-col\">\n<p class=\"wp-block-paragraph\">Most image SEO advice is a game of telephone: one blog paraphrases another, and by the tenth retelling the tips have drifted from anything Google actually said. So this guide goes to the source. Everything below comes from&nbsp;<a href=\"https:\/\/developers.google.com\/search\/docs\/appearance\/google-images\" target=\"_blank\" rel=\"noopener\">Google&#8217;s image SEO documentation<\/a>, last updated March 2026, with the industry myths flagged where the two disagree.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are some surprises in there, including one markup habit that makes images completely invisible to Google, and one widely-taught ranking factor that Google describes as barely mattering.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The mistake that makes your images invisible<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Start with the one that silently costs the most traffic:&nbsp;<strong>Google doesn&#8217;t index CSS background images.<\/strong>&nbsp;Not &#8220;ranks them lower&#8221; or &#8220;struggles with them.&#8221; Doesn&#8217;t index them at all.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Google&#8217;s documentation is blunt about it, marking this as bad:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>&lt;div style=\"background-image:url(puppy.jpg)\"&gt;A golden retriever puppy&lt;\/div&gt;<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And this as good:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>&lt;img src=\"puppy.jpg\" alt=\"A golden retriever puppy\" \/&gt;<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This matters because modern page builders and themes love CSS backgrounds for hero sections, gallery tiles, and card thumbnails. If your best photography lives in `background-image` declarations, it exists for visitors and not for search. Google finds images in the&nbsp;<code>src<\/code>&nbsp;attribute of&nbsp;<code>&lt;img&gt;<\/code>&nbsp;elements, including inside&nbsp;<code>&lt;picture&gt;<\/code>, and nowhere else.<\/p>\n\n\n\n<style data-wp-block-html=\"css\">\n.callout {\n    background: #eef3ff;\n    border: 1px solid #d8e3ff;\n    border-radius: 14px;\n    padding: 18px 20px;\n    margin: 24px 0;\n}\n\n.callout strong {\n    color: #3b6cf6;\n    font-weight: bolder;\n}\n\nbody {\n    margin: 0;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n    color: var(--text);\n    background: #ffffff;\n    line-height: 1.7;\n    font-size: 18px;\n}\n<\/style>\n\n<div class=\"callout\"><strong>Worth auditing today:<\/strong> right-click your most important images and inspect them. If you see a div with a background style instead of an img tag, that image is invisible to Google Images, Discover, and Lens.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Alt text, using Google&#8217;s own good and bad examples<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Alt text is the single most important piece of image metadata, and Google&#8217;s docs include a rare thing: a graded set of examples. Their progression, verbatim in spirit, for a photo of a puppy:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Where presets fall short: they apply the same numbers to every photo regardless of its exposure, so a filter that flatters a bright beach scene will crush a dim indoor shot. Treat the preset as a starting point and finish with the sliders, especially the black point, which varies most from photo to photo.<\/p>\n\n\n<style>.kb-table-container291_51c494-6b{overflow-x:auto;}.kb-table-container .kb-table291_51c494-6b th{padding-top:var(--global-kb-spacing-xxs, 0.5rem);padding-right:var(--global-kb-spacing-xxs, 0.5rem);padding-bottom:var(--global-kb-spacing-xxs, 0.5rem);padding-left:var(--global-kb-spacing-xxs, 0.5rem);text-align:center;}.kb-table-container .kb-table291_51c494-6b caption{text-align:center;}.kb-table-container .kb-table291_51c494-6b td{padding-top:var(--global-kb-spacing-xxs, 0.5rem);padding-right:var(--global-kb-spacing-xxs, 0.5rem);padding-bottom:var(--global-kb-spacing-xxs, 0.5rem);padding-left:var(--global-kb-spacing-xxs, 0.5rem);text-align:left;}<\/style><div class=\"kb-table-container kb-table-container291_51c494-6b wp-block-kadence-table\"><table class=\"kb-table kb-table291_51c494-6b\">\n<tr class=\"kb-table-row kb-table-row291_afe796-fc\">\n<td  class=\"kb-table-data kb-table-data291_325b80-5f\">\n\n<p class=\"wp-block-paragraph\"><strong>Grade<\/strong><\/p>\n\n<\/td>\n\n<td  class=\"kb-table-data kb-table-data291_0989f3-bd\">\n\n<p class=\"wp-block-paragraph\"><strong>Alt text<\/strong><\/p>\n\n<\/td>\n\n<td  class=\"kb-table-data kb-table-data291_84be72-b2\">\n\n<p class=\"wp-block-paragraph\"><strong>Why<\/strong><\/p>\n\n<\/td>\n<\/tr>\n\n<tr class=\"kb-table-row kb-table-row291_66a6ad-49\">\n<td  class=\"kb-table-data kb-table-data291_250763-1b\">\n\n<p class=\"wp-block-paragraph\">Bad<\/p>\n\n<\/td>\n\n<td  class=\"kb-table-data kb-table-data291_0cd1af-9d\">\n\n<p class=\"wp-block-paragraph\">(missing entirely)<\/p>\n\n<\/td>\n\n<td  class=\"kb-table-data kb-table-data291_8438d3-0d\">\n\n<p class=\"wp-block-paragraph\">No information for search or screen readers<\/p>\n\n<\/td>\n<\/tr>\n\n<tr class=\"kb-table-row kb-table-row291_0e47c5-31\">\n<td  class=\"kb-table-data kb-table-data291_db193d-9e\">\n\n<p class=\"wp-block-paragraph\">Bad<\/p>\n\n<\/td>\n\n<td  class=\"kb-table-data kb-table-data291_3b62bf-6e\">\n\n<p class=\"wp-block-paragraph\">&#8220;puppy dog baby dog pup pups puppies doggies\u2026&#8221;<\/p>\n\n<\/td>\n\n<td  class=\"kb-table-data kb-table-data291_afbd1c-bc\">\n\n<p class=\"wp-block-paragraph\">Keyword stuffing; a spam policy violation<\/p>\n\n<\/td>\n<\/tr>\n\n<tr class=\"kb-table-row kb-table-row291_141f82-7d\">\n<td  class=\"kb-table-data kb-table-data291_5ee2dd-03\">\n\n<p class=\"wp-block-paragraph\">Better<\/p>\n\n<\/td>\n\n<td  class=\"kb-table-data kb-table-data291_9a1950-d3\">\n\n<p class=\"wp-block-paragraph\">&#8220;puppy&#8221;<\/p>\n\n<\/td>\n\n<td  class=\"kb-table-data kb-table-data291_b80610-8f\">\n\n<p class=\"wp-block-paragraph\">Accurate but thin<\/p>\n\n<\/td>\n<\/tr>\n\n<tr class=\"kb-table-row kb-table-row291_a8f305-9f\">\n<td  class=\"kb-table-data kb-table-data291_bc67d3-6f\">\n\n<p class=\"wp-block-paragraph\">Best<\/p>\n\n<\/td>\n\n<td  class=\"kb-table-data kb-table-data291_9f4e7a-c7\">\n\n<p class=\"wp-block-paragraph\">&#8220;Dalmatian puppy playing fetch&#8221;<\/p>\n\n<\/td>\n\n<td  class=\"kb-table-data kb-table-data291_312ee4-8a\">\n\n<p class=\"wp-block-paragraph\">Specific subject plus what&#8217;s happening<\/p>\n\n<\/td>\n<\/tr>\n<\/table><\/div>\n\n\n<p class=\"wp-block-paragraph\">The pattern in the &#8220;best&#8221; example is worth copying deliberately:&nbsp;<em>specific subject + action or state<\/em>. Not a keyword list, not a vague noun. And note that stuffing alt attributes isn&#8217;t merely ineffective; Google names it under keyword stuffing in its spam policies, which is a different category of risk entirely.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two practical additions. Decorative images (spacers, purely ornamental flourishes) should carry an empty&nbsp;<code>alt=\"\"<\/code>&nbsp;rather than no attribute, which tells screen readers to skip them. And if an image is a link, its alt text functions as the anchor text, so describe the destination rather than just the picture.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Filenames matter less than the industry claims<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s where popular advice and Google&#8217;s documentation part company. You&#8217;ll find guides asserting that Google weights the leading words of a filename more heavily, that filenames are a major ranking signal, that renaming your library will transform your traffic.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Google&#8217;s actual wording: the filename &#8220;can give Google&nbsp;<em>very light clues<\/em>&nbsp;about the subject matter of the image.&#8221; Light clues. The guidance is simply to use short, descriptive names, preferring&nbsp;<code>my-new-black-kitten.jpg<\/code>&nbsp;over&nbsp;<code>IMG00023.JPG<\/code>, and to avoid generic names like&nbsp;<code>image1.jpg<\/code>&nbsp;or&nbsp;<code>pic.gif<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So rename your files, because it costs nothing and it does help a little. But if you&#8217;re choosing where to spend an hour, alt text and page context are worth vastly more than perfecting hyphenation. This is the clearest example of the telephone game in image SEO: a minor signal amplified into a major one through repetition.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Context beats metadata<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The least-discussed line in Google&#8217;s documentation may be the most important: Google extracts information about an image from the content of the page, including captions and nearby text, and recommends placing images &#8220;near relevant text and on pages that are relevant to the image subject matter.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Which means an image&#8217;s ranking potential is partly inherited from the page around it. A photo of a Dalmatian puppy on a page about dog training will outperform the same file dropped into an unrelated article, no matter how good its alt text is. Three consequences:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Put images where the text explains them.<\/strong>\u00a0An image three sections away from its relevant paragraph is weaker than one beside it.<\/li>\n\n\n\n<li><strong>Captions are read.<\/strong>\u00a0Google names captions explicitly as a source. If an image benefits from explanation, a caption does double duty for readers and crawlers.<\/li>\n\n\n\n<li><strong>Reuse the same URL.<\/strong>\u00a0If an image appears on several pages, reference it with one consistent URL so Google can cache it instead of re-crawling, which matters on larger sites with crawl budget limits.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Choosing which image Google shows<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Google picks preview thumbnails automatically, but you can influence the choice, which most guides omit entirely. Two mechanisms, per the docs: the schema.org&nbsp;<code>primaryImageOfPage<\/code>&nbsp;property, or the&nbsp;<code>og:image<\/code>&nbsp;meta tag.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Google&#8217;s own best practices for that preferred image are worth quoting as rules: choose something relevant and representative of the page, avoid generic images like your site logo, avoid images with text in them, avoid extreme aspect ratios, and use high resolution where possible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you publish through WordPress, your featured image typically populates&nbsp;<code>og:image<\/code>&nbsp;automatically, which is exactly why the featured-image rules we follow (no baked-in text, centered subject, standard 1200\u00d7630 ratio) line up with Google&#8217;s guidance rather than being arbitrary. Structured data helps too: images in supported rich result types can earn a badge in Google Images, which is a visible differentiator in a grid of competitors.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1672\" height=\"941\" src=\"https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-impact-ladder.webp\" alt=\"Infographic ranking image SEO factors from highest to lowest impact\" class=\"wp-image-293\" srcset=\"https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-impact-ladder.webp 1672w, https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-impact-ladder-300x169.webp 300w, https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-impact-ladder-1024x576.webp 1024w, https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-impact-ladder-768x432.webp 768w, https:\/\/artsflick.com\/blog\/wp-content\/uploads\/2026\/08\/image-seo-impact-ladder-1536x864.webp 1536w\" sizes=\"auto, (max-width: 1672px) 100vw, 1672px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Speed and formats, the half everyone forgets<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Google&#8217;s image documentation devotes a full section to performance, noting that images are often the largest contributor to page size and pointing readers at PageSpeed Insights. Sharp, high-quality images are also called out as more likely to earn clicks from result thumbnails, which puts quality and weight in direct tension. Resolving it is the whole job:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Supported formats:<\/strong>\u00a0BMP, GIF, JPEG, PNG, WebP, SVG, and AVIF. Google also advises that your file extension match the actual file type.<\/li>\n\n\n\n<li><strong>Compress to a target<\/strong>\u00a0rather than by feel; our guide on\u00a0<a href=\"https:\/\/artsflick.com\/blog\/compress-images-for-web\/\">compressing images for web<\/a>\u00a0has the KB numbers by image role.<\/li>\n\n\n\n<li><strong>Serve responsive sizes<\/strong>\u00a0with\u00a0<code>srcset<\/code>\u00a0or\u00a0<code>&lt;picture><\/code>, and always include a plain\u00a0<code>src<\/code>\u00a0fallback, which Google explicitly recommends since some crawlers don&#8217;t parse the newer attributes.<\/li>\n\n\n\n<li><strong>Submit an image sitemap<\/strong>\u00a0for images Google might not otherwise discover. Usefully, image sitemaps may include URLs on other domains, so CDN-hosted images can be declared this way.<\/li>\n<\/ul>\n\n\n\n<style data-wp-block-html=\"css\">\n.cta-box {\n    background: linear-gradient(135deg, #3b6cf6, #6a4cf0);\n    color: #fff;\n    border-radius: 18px;\n    padding: 28px;\n    margin: 34px 0;\n    text-align: center;\n}\n\n.cta-box a {\n    background: #fff;\n    color: #3b6cf6;\n    font-weight: 700;\n    padding: 12px 22px;\n    border-radius: 999px;\n    display: inline-block;\n}\n\na:-webkit-any-link\nSpecificity: (0,1,1)\n {\n    cursor: pointer;\n}\n\na {\n    color: #3b6cf6;\n    text-decoration: none;\n}\n\n.cta-box h3 {\n    margin: 0 0 8px;\n    color: #fff;\n    font-size: 22px;\n}\n\nbody {\n    margin: 0;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n    background: #ffffff;\n    line-height: 1.7;\n    font-size: 18px;\n}\n<\/style>\n\n<div class=\"cta-box\">\n        <h3>Get your images light enough to rank\n<\/h3>\n        <p>Compress to a target size and export web-ready formats. Free, in your browser.\n<\/p>\n        <a href=\"https:\/\/artsflick.com\/compress-image\">Try the ArtsFlick Compressor<\/a>\n      <\/div>\n\n\n\n<h2 class=\"wp-block-heading\">The image SEO checklist for every publish<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">What this reduces to, per image, before you hit publish:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>It&#8217;s an\u00a0<code>&lt;img><\/code>\u00a0element with a real\u00a0<code>src<\/code>, not a CSS background.<\/li>\n\n\n\n<li>Alt text names the specific subject and what&#8217;s happening, in a natural phrase.<\/li>\n\n\n\n<li>Filename is short and descriptive, and you spent thirty seconds on it, not thirty minutes.<\/li>\n\n\n\n<li>The image sits beside text that&#8217;s about the same thing.<\/li>\n\n\n\n<li>Dimensions match the display size, and the file is\u00a0<a href=\"https:\/\/artsflick.com\/blog\/compress-images-for-web\/\">compressed to a sensible target<\/a>.<\/li>\n\n\n\n<li>Format is web-appropriate, with the extension matching the file type.<\/li>\n\n\n\n<li>Width and height attributes are set, so the layout doesn&#8217;t shift as it loads.<\/li>\n\n\n\n<li>If it&#8217;s the page&#8217;s key image, it&#8217;s your featured image or\u00a0<code>og:image<\/code>, with no text baked in.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">One last thing worth knowing exists: if you&#8217;d rather Google not display your full-size images in results, the docs describe an opt-out based on the HTTP referrer header, where requests from Google domains receive a 200 or 204 with no content. Google still crawls the page and shows a thumbnail generated at crawl time, and this specifically isn&#8217;t treated as cloaking. Niche, but useful for photographers who want discovery without free full-resolution hosting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n<style>.kt-accordion-id291_dca1e1-14 .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:10px;}.kt-accordion-id291_dca1e1-14 .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;background:#ffffff;padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);}.kt-accordion-id291_dca1e1-14 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:1px solid #e7eaf0;border-right:1px solid #e7eaf0;border-bottom:1px solid #e7eaf0;border-left:1px solid #e7eaf0;border-top-left-radius:12px;border-top-right-radius:12px;border-bottom-right-radius:12px;border-bottom-left-radius:12px;background:#f2f2f2;font-size:17px;color:#1f2430;padding-top:14px;padding-right:15px;padding-bottom:14px;padding-left:15px;}.kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:before{background:#1f2430;}.kt-accordion-id291_dca1e1-14 .kt-accordion-panel-inner, .kt-accordion-id291_dca1e1-14 .kt-accordion-panel-inner h1, .kt-accordion-id291_dca1e1-14 .kt-accordion-panel-inner h2, .kt-accordion-id291_dca1e1-14 .kt-accordion-panel-inner h3, .kt-accordion-id291_dca1e1-14 .kt-accordion-panel-inner h4, .kt-accordion-id291_dca1e1-14 .kt-accordion-panel-inner h5, .kt-accordion-id291_dca1e1-14 .kt-accordion-panel-inner h6{color:#3a4150;}.kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger{background:#1f2430;}.kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:before{background:#f2f2f2;}.kt-accordion-id291_dca1e1-14 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id291_dca1e1-14 .kt-blocks-accordion-header:focus-visible{color:#1f2430;background:#eeeeee;border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}.kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion--visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#1f2430;}.kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger, body:not(.hide-focus-outline) .kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger{background:#1f2430;}.kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#eeeeee;}.kt-accordion-id291_dca1e1-14 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id291_dca1e1-14 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{color:#1f2430;background:#f2f2f2;border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}.kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:#1f2430;}.kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger{background:#1f2430;}.kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id291_dca1e1-14:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:#f2f2f2;}@media all and (max-width: 1024px){.kt-accordion-id291_dca1e1-14 .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;}}@media all and (max-width: 1024px){.kt-accordion-id291_dca1e1-14 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:1px solid #e7eaf0;border-right:1px solid #e7eaf0;border-bottom:1px solid #e7eaf0;border-left:1px solid #e7eaf0;}}@media all and (max-width: 1024px){.kt-accordion-id291_dca1e1-14 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id291_dca1e1-14 .kt-blocks-accordion-header:focus-visible{border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}}@media all and (max-width: 1024px){.kt-accordion-id291_dca1e1-14 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id291_dca1e1-14 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}}@media all and (max-width: 767px){.kt-accordion-id291_dca1e1-14 .kt-accordion-inner-wrap{display:block;}.kt-accordion-id291_dca1e1-14 .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:10px;}.kt-accordion-id291_dca1e1-14 .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;}.kt-accordion-id291_dca1e1-14 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:1px solid #e7eaf0;border-right:1px solid #e7eaf0;border-bottom:1px solid #e7eaf0;border-left:1px solid #e7eaf0;}.kt-accordion-id291_dca1e1-14 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id291_dca1e1-14 .kt-blocks-accordion-header:focus-visible{border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}.kt-accordion-id291_dca1e1-14 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id291_dca1e1-14 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}}<\/style>\n<div class=\"wp-block-kadence-accordion alignnone\"><div class=\"kt-accordion-wrap kt-accordion-id291_dca1e1-14 kt-accordion-has-10-panes kt-active-pane-0 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-basic kt-accodion-icon-side-right\" style=\"max-width:none\"><div class=\"kt-accordion-inner-wrap\" data-allow-multiple-open=\"true\" data-start-open=\"none\">\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-1 kt-pane291_48da3e-4b\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Does Google index CSS background images?<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p class=\"wp-block-paragraph\">No. Google&#8217;s documentation states it doesn&#8217;t index CSS images and finds images only in the\u00a0<code>src<\/code>\u00a0attribute of\u00a0<code>&lt;img><\/code>\u00a0elements, including those inside\u00a0<code>&lt;picture><\/code>. Images placed as CSS backgrounds are effectively invisible to Google Images, Discover, and Lens.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-2 kt-pane291_3453ae-73\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">How should I write alt text for SEO?<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p class=\"wp-block-paragraph\">Describe the specific subject and what&#8217;s happening, in a natural phrase. Google&#8217;s own example grades &#8220;Dalmatian puppy playing fetch&#8221; as best, plain &#8220;puppy&#8221; as merely better, and a keyword list as a spam policy violation. Use empty\u00a0<code>alt=\"\"<\/code>\u00a0for purely decorative images.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-3 kt-pane291_c9a86b-ca\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Do image filenames affect rankings?<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p class=\"wp-block-paragraph\">Only slightly. Google describes filenames as giving &#8220;very light clues&#8221; about subject matter, and recommends short descriptive names over generic ones like IMG00023.JPG. Rename files because it&#8217;s cheap, but expect far more from alt text and page context.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-4 kt-pane291_336f5e-4c\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Which image formats does Google Search support?<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p class=\"wp-block-paragraph\">BMP, GIF, JPEG, PNG, WebP, SVG, and AVIF. Google also advises that the file extension match the actual file type. WebP is the practical default for photos on the web, being smaller than JPEG at comparable quality.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-9 kt-pane291_8949b4-e2\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Can I control which image Google shows as the preview?<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p class=\"wp-block-paragraph\">You can influence it. Google selects previews automatically but reads the schema.org\u00a0<code>primaryImageOfPage<\/code>\u00a0property and the\u00a0<code>og:image<\/code>\u00a0meta tag. Choose a relevant, high-resolution image without text and without an extreme aspect ratio, and avoid using your logo.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-10 kt-pane291_5e5f54-c5\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Do I need an image sitemap?<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p class=\"wp-block-paragraph\">Only if Google might otherwise miss your images, which is common with JavaScript-heavy galleries or CDN hosting. Image sitemaps can include URLs on other domains, making them the supported way to declare CDN-hosted images.<\/p>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Most image SEO advice is a game of telephone. Here&#8217;s what Google&#8217;s documentation actually says, including the markup habit that makes images invisible to search.<\/p>\n","protected":false},"author":1,"featured_media":294,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-291","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"_links":{"self":[{"href":"https:\/\/artsflick.com\/blog\/wp-json\/wp\/v2\/posts\/291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/artsflick.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/artsflick.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/artsflick.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/artsflick.com\/blog\/wp-json\/wp\/v2\/comments?post=291"}],"version-history":[{"count":1,"href":"https:\/\/artsflick.com\/blog\/wp-json\/wp\/v2\/posts\/291\/revisions"}],"predecessor-version":[{"id":295,"href":"https:\/\/artsflick.com\/blog\/wp-json\/wp\/v2\/posts\/291\/revisions\/295"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/artsflick.com\/blog\/wp-json\/wp\/v2\/media\/294"}],"wp:attachment":[{"href":"https:\/\/artsflick.com\/blog\/wp-json\/wp\/v2\/media?parent=291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artsflick.com\/blog\/wp-json\/wp\/v2\/categories?post=291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artsflick.com\/blog\/wp-json\/wp\/v2\/tags?post=291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}