<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Benjamin Oats</title>
    <description>The latest articles on DEV Community by Benjamin Oats (@benoats).</description>
    <link>https://dev.to/benoats</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4000805%2F22a4d6be-daa1-4ebe-af7e-1d1b6f861c78.jpg</url>
      <title>DEV Community: Benjamin Oats</title>
      <link>https://dev.to/benoats</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/benoats"/>
    <language>en</language>
    <item>
      <title>Why You Should Review AI Alt Text Before Publishing It</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Wed, 05 Aug 2026 07:17:59 +0000</pubDate>
      <link>https://dev.to/benoats/why-you-should-review-ai-alt-text-before-publishing-it-54cd</link>
      <guid>https://dev.to/benoats/why-you-should-review-ai-alt-text-before-publishing-it-54cd</guid>
      <description>&lt;h1&gt;
  
  
  Why You Should Review AI Alt Text Before Publishing It
&lt;/h1&gt;

&lt;p&gt;An AI model can look at an image and draft a description in seconds — far faster than writing it yourself. That speed is exactly why skipping the review step is tempting, and exactly why it's a mistake. A fast wrong answer costs you more time to catch later than a few extra seconds of checking would have cost up front.&lt;/p&gt;

&lt;p&gt;Here's a short video on what to actually look for before saving AI-drafted alt text back to WordPress.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/_rzpcYvv75I"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What AI actually gets wrong in alt text
&lt;/h2&gt;

&lt;p&gt;AI image description isn't unreliable in a random way — it tends to fail in specific, predictable patterns, which makes them easy to check for once you know what they are.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Missing context the image alone doesn't contain.&lt;/strong&gt; An AI model sees pixels, not your business. It can describe a photo of a chair accurately without knowing that chair is your bestselling product, the one thing that should actually be named in the alt text rather than described generically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wrong specifics that look plausible.&lt;/strong&gt; A model might describe a "blue jumper" when the product is actually navy, or count three people in a photo that has four. These errors are the hardest to catch because the sentence reads perfectly naturally — nothing about it looks wrong until you compare it to the actual image.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Genuinely misreading the image.&lt;/strong&gt; Less common, but it happens — a reflection interpreted as a separate object, text in an image transcribed incorrectly, or a product mistaken for a similar-looking one nearby in the same photo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Right description, wrong page.&lt;/strong&gt; The text might be accurate for the image itself but miss the context of how it's being used — describing a lifestyle photo purely visually when the surrounding copy needs the description to reinforce a specific product name for SEO purposes.&lt;/p&gt;

&lt;p&gt;None of these are reasons to avoid AI drafting. They're reasons to treat the draft as a first pass, not a final answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  A review pass that doesn't take as long as writing from scratch
&lt;/h2&gt;

&lt;p&gt;The point of reviewing is to be much faster than writing, so it needs to be a quick, structured check rather than a full rewrite exercise.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Read the draft next to the actual image, not from memory.&lt;/strong&gt; Errors in specifics are easy to miss if you're skimming text without the picture in view.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check anything with a number, colour, or count.&lt;/strong&gt; These are the most common concrete errors — "three" when there are four, "red" when it's maroon.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confirm product names are used where they should be.&lt;/strong&gt; If the image is of a specific named product, a generic AI description ("a pair of shoes") is technically accurate but weaker than the identifiable name your business actually uses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scan for anything that reads as a guess.&lt;/strong&gt; Phrases like "appears to be" or overly hedged language sometimes leak through from the model's own uncertainty — a signal to look more closely at that particular image.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approve, edit, or reject — don't just accept in bulk without spot-checking.&lt;/strong&gt; Bulk-approving hundreds of drafts without opening any of them defeats the purpose of having a review step at all. Spot-check a meaningful sample, especially on your highest-traffic images.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Building review into the workflow, not bolting it on after
&lt;/h2&gt;

&lt;p&gt;The reason review gets skipped in practice is that it's treated as an extra step tacked onto the end of an AI drafting process, rather than a built-in part of it. The &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text plugin&lt;/a&gt; generates alt text drafts for your WordPress media library but doesn't save them automatically — you see the suggestion next to the image and approve, edit, or reject it, so the review step is the normal path rather than something you have to remember to do separately.&lt;/p&gt;

&lt;p&gt;If you want to check what's currently live on your site before introducing any AI drafting into the process, a &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; shows you the alt text search engines can already see on your public pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can I trust AI-generated alt text without checking it?
&lt;/h3&gt;

&lt;p&gt;For low-stakes, purely decorative images, a quick glance is usually enough. For meaningful content images — product photos, diagrams, anything tied to a specific fact or number — no, a quick review is worth the time. AI models produce specific, plausible-sounding errors (wrong colours, wrong counts, missing product names) that read naturally and are easy to miss unless you're actively comparing the text to the image.&lt;/p&gt;

&lt;h3&gt;
  
  
  What should I check first when reviewing AI-generated alt text?
&lt;/h3&gt;

&lt;p&gt;Start with anything containing a number, colour, or count — these are the most common places AI gets a specific detail wrong while the sentence still reads smoothly. Then check whether a named product or subject is identified specifically rather than described generically, since that's both an accuracy issue and a missed SEO opportunity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does reviewing AI alt text defeat the point of using AI to generate it?
&lt;/h3&gt;

&lt;p&gt;No — the time saved is in the drafting, not the review. Writing a description from scratch for hundreds of images takes far longer than reading and approving, editing, or rejecting an already-drafted description for each one. AI removes the blank-page problem; review makes sure what fills the page is actually correct.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>alttext</category>
      <category>wordpress</category>
      <category>a11y</category>
    </item>
    <item>
      <title>How to Measure Alt Text Quality Across Your Whole WordPress Site</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Wed, 05 Aug 2026 07:17:36 +0000</pubDate>
      <link>https://dev.to/benoats/how-to-measure-alt-text-quality-across-your-whole-wordpress-site-3cbk</link>
      <guid>https://dev.to/benoats/how-to-measure-alt-text-quality-across-your-whole-wordpress-site-3cbk</guid>
      <description>&lt;h1&gt;
  
  
  How to Measure Alt Text Quality Across Your Whole WordPress Site
&lt;/h1&gt;

&lt;p&gt;Checking one image's alt text tells you about one image. It doesn't tell you whether your site has a systemic problem or a handful of stragglers. That distinction matters, because the fix for each is completely different — and you can only tell them apart by measuring at the site level, not the image level.&lt;/p&gt;

&lt;p&gt;Here's a short video on treating alt text quality as a metric for the whole site rather than a per-image checkbox.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/nD3xpIkyGzM"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "I checked a few images" isn't a real answer
&lt;/h2&gt;

&lt;p&gt;If someone asks how good your site's alt text is, "I looked at a few and they seemed fine" isn't a measurement — it's a sample size of a handful out of what might be thousands of images. Sites accumulate images from years of different contributors, themes, plugins, and import processes, and quality is rarely uniform across all of that. A spot check tells you about the pages you happened to look at, which are usually the ones you already care about and therefore already keep tidy.&lt;/p&gt;

&lt;p&gt;The images you haven't looked at — old product listings, a migrated blog archive, images added by a plugin that manages its own uploads — are exactly where the real gaps tend to hide, because nobody's spot check ever lands there by chance.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a site-wide quality metric actually looks like
&lt;/h2&gt;

&lt;p&gt;A useful site-wide number isn't a single score — it's a distribution across a few buckets that together account for every image in your library:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Missing&lt;/strong&gt; — no alt text at all. &lt;strong&gt;Weak&lt;/strong&gt; — something's there, but it's a filename, a single generic word, or keyword-stuffed text. &lt;strong&gt;Optimised&lt;/strong&gt; — specific, accurate, natural-language descriptions.&lt;/p&gt;

&lt;p&gt;Reporting these three as percentages of your total image count gives you something you can actually track and compare over time, unlike a vague sense that "alt text is mostly fine." A site sitting at 60% optimised, 25% weak, 15% missing has a clearly different problem than one sitting at 90% optimised, 5% weak, 5% missing — even though both might "look fine" if you only spot-checked a few pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Turning the metric into a benchmark you track
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Get your starting distribution.&lt;/strong&gt; Run a full scan of your media library and record the missing/weak/optimised split as percentages, not just raw counts, so the number stays meaningful as your library grows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set a realistic target, not a perfect one.&lt;/strong&gt; 100% optimised is rarely worth chasing to the last percent — a handful of edge cases (icons, decorative graphics correctly left empty) will always sit outside the "optimised" bucket. Aim for a target like 85%+ optimised on content images.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-measure on a schedule, not just after a cleanup.&lt;/strong&gt; Monthly or quarterly, depending on how fast your site adds new images. The point is catching drift, not just confirming a one-time fix worked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Segment by content type if your site is large.&lt;/strong&gt; A single sitewide number can hide the fact that your blog images are in great shape while your product catalogue is a mess, or vice versa. Splitting the metric by section tells you where to focus next.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watch the trend line, not just the snapshot.&lt;/strong&gt; A single measurement tells you where you stand. Three measurements over three months tell you whether you're actually improving or just maintaining.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Getting a number without building a spreadsheet by hand
&lt;/h2&gt;

&lt;p&gt;Manually tallying missing/weak/optimised across a media library with thousands of images isn't a realistic way to produce this metric — by the time you finished counting, new uploads would already have changed the answer. The &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text plugin&lt;/a&gt; keeps this distribution live for your WordPress media library, so the site-wide number is something you check rather than something you calculate. For an independent read on what's actually rendering on your public pages, a &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; gives you a comparable snapshot from outside the WordPress admin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What's a good target percentage for optimised alt text on a WordPress site?
&lt;/h3&gt;

&lt;p&gt;Aim for roughly 85% or higher of content images in the "optimised" bucket, with the remainder split between correctly-empty decorative images and a small tail of edge cases. Chasing literally 100% often means fighting classification issues on ambiguous images rather than fixing real gaps — diminishing returns set in well before you hit the top.&lt;/p&gt;

&lt;h3&gt;
  
  
  How is a site-wide alt text quality metric different from a single page's SEO score?
&lt;/h3&gt;

&lt;p&gt;A page-level SEO score typically weighs many factors at once — headings, word count, internal links, alt text among them — for one page. A site-wide alt text metric isolates just this one factor and measures it across your entire media library, which is what tells you whether missing or weak alt text is a widespread pattern versus an issue confined to a few pages. You need both views: the page score for individual page health, the site-wide metric for the scale of the alt text problem specifically.&lt;/p&gt;

&lt;h3&gt;
  
  
  How often should I re-measure alt text quality across my WordPress site?
&lt;/h3&gt;

&lt;p&gt;Monthly if you publish frequently or run an active WooCommerce store with regular new products; quarterly is usually enough for a slower-moving site. The right cadence depends on how quickly new, unfixed images accumulate — measure often enough that the trend line has more than one or two points to show real movement.&lt;/p&gt;

</description>
      <category>imageseo</category>
      <category>alttext</category>
      <category>wordpress</category>
      <category>seo</category>
    </item>
    <item>
      <title>What a WordPress Alt Text Quality Score Actually Measures</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Wed, 05 Aug 2026 07:17:15 +0000</pubDate>
      <link>https://dev.to/benoats/what-a-wordpress-alt-text-quality-score-actually-measures-40kn</link>
      <guid>https://dev.to/benoats/what-a-wordpress-alt-text-quality-score-actually-measures-40kn</guid>
      <description>&lt;h1&gt;
  
  
  What a WordPress Alt Text Quality Score Actually Measures
&lt;/h1&gt;

&lt;p&gt;"Present or missing" is a coarse way to judge alt text. An image with &lt;code&gt;alt="image"&lt;/code&gt; technically has alt text — and it's nearly as useless as having none. A quality score is meant to catch that gap, but only if you know what it's actually checking. Otherwise it's just another number you glance at without understanding.&lt;/p&gt;

&lt;p&gt;Here's a short video walking through what goes into a real quality score, rather than a simple yes/no check.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/nyK5NJAG4wU"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Why present/missing isn't enough
&lt;/h2&gt;

&lt;p&gt;If your only check is "does this field have anything in it," you'll count &lt;code&gt;alt="IMG_4021"&lt;/code&gt; and &lt;code&gt;alt="A red leather armchair with brass studs, photographed against a white background"&lt;/code&gt; as equally fine. They're not remotely equivalent. The first tells a screen reader user and a search engine nothing they didn't already know from the filename. The second describes the actual product, in enough detail to be useful for both understanding and image search ranking.&lt;/p&gt;

&lt;p&gt;A quality score exists to separate those two cases without you having to read every single alt attribute yourself. Understanding what it's actually measuring tells you what to fix when a score comes back low, rather than just re-saving the same generic text and hoping the number goes up.&lt;/p&gt;

&lt;h2&gt;
  
  
  The factors that typically go into a quality score
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Specificity.&lt;/strong&gt; Does the text describe what's actually in the image, or is it generic enough to apply to almost any picture? "Product photo" fits every product on the site. "Grey wool overcoat with a notched lapel, buttoned, front view" fits one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Length and structure.&lt;/strong&gt; Too short (a single word) usually signals low information content. Too long, and it starts reading like an unnatural keyword list rather than a description a person would actually write.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keyword stuffing.&lt;/strong&gt; Alt text crammed with repeated search terms — "shoes running shoes best running shoes buy running shoes" — scores worse than natural language, both because it reads badly and because search engines are explicitly designed to discount this pattern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Redundancy with surrounding text.&lt;/strong&gt; If the alt text just repeats the image's caption or the page's title word for word, it's not adding independent information. Good alt text describes the image itself, which is often more specific than the page it sits on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filename leakage.&lt;/strong&gt; Alt text that's obviously just the uploaded filename with underscores swapped for spaces — "DSC 4021" or "product photo final v2" — reads as unedited, because it is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Language quality.&lt;/strong&gt; Alt text should read as a real sentence or phrase, not a fragment or a string of disconnected nouns.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a low score should tell you to do
&lt;/h2&gt;

&lt;p&gt;A low score isn't a verdict to accept — it's a diagnostic. The right response depends on which factor is driving it. If the score is low because the text is a filename, you need a description written from scratch. If it's low because of keyword stuffing, you need to cut the field back to plain, specific language. If it's low because of redundancy with the caption, you need to describe the image itself rather than restate context that's already visible elsewhere on the page.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pull the lowest-scoring images first&lt;/strong&gt;, not a random sample — they're the clearest wins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check which factor is failing&lt;/strong&gt;, rather than assuming every low score has the same cause.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rewrite with the specific factor in mind&lt;/strong&gt; — add detail for vagueness, cut repetition for stuffing, replace the filename entirely rather than editing around it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-score after the fix&lt;/strong&gt; to confirm the change actually moved the number, not just changed the text.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Using an AI-assisted score without losing the plot
&lt;/h2&gt;

&lt;p&gt;A quality score is only useful if you trust what it's counting, and you should still spot-check the images it flags rather than treating the number as gospel. The &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text plugin&lt;/a&gt; scores your existing alt text against factors like these and drafts replacements for the weakest entries, which you review before anything saves. The score tells you where to look; you still decide whether the suggested rewrite is actually right for that image.&lt;/p&gt;

&lt;p&gt;If you want to see how your own site's alt text holds up before touching the plugin at all, a &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; will show you what's currently live on your public pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What makes WordPress alt text score poorly even if the field isn't empty?
&lt;/h3&gt;

&lt;p&gt;The most common causes are generic text that could apply to any image ("product photo," "image"), filenames left unedited ("IMG_4021"), keyword stuffing (repeating the same search term multiple times), and text that just repeats the caption or page title instead of describing the image itself. All of these technically fill the field, but none of them give a screen reader user or a search engine useful information about what's actually shown.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is a higher alt text quality score always better for SEO?
&lt;/h3&gt;

&lt;p&gt;Generally yes, because the factors that raise a quality score — specificity, natural language, non-redundant description — are the same qualities that make an image more likely to surface in image search and more useful to accessibility tools. That said, chasing a numeric score for its own sake can backfire if it pushes you toward padding descriptions with extra detail that isn't actually there in the image. Accurate and specific beats long and score-optimised.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I trust an AI-generated alt text quality score without checking it myself?
&lt;/h3&gt;

&lt;p&gt;Use it to prioritise, not to skip review entirely. A quality score is good at flagging patterns — filenames, stuffing, generic phrasing — reliably and at scale, which is exactly the kind of thing manual review misses when you're looking at thousands of images. But the final judgement on whether a specific description is accurate for that specific image is still worth a human glance, especially for your highest-traffic pages.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>alttext</category>
      <category>wordpress</category>
      <category>imageseo</category>
    </item>
    <item>
      <title>Why You Shouldn't Fill Every WordPress Alt Text Field the Same Way</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Wed, 05 Aug 2026 07:16:55 +0000</pubDate>
      <link>https://dev.to/benoats/why-you-shouldnt-fill-every-wordpress-alt-text-field-the-same-way-3j5k</link>
      <guid>https://dev.to/benoats/why-you-shouldnt-fill-every-wordpress-alt-text-field-the-same-way-3j5k</guid>
      <description>&lt;h1&gt;
  
  
  Why You Shouldn't Fill Every WordPress Alt Text Field the Same Way
&lt;/h1&gt;

&lt;p&gt;The instinct after a missing alt text scan is to fix everything, top to bottom, until the list is empty. That instinct produces worse results than a bit of triage first. Some of those "missing" fields shouldn't be filled at all — and treating them the same as your product photos and hero images wastes time and, in a few cases, actively hurts accessibility.&lt;/p&gt;

&lt;p&gt;Here's a short video on why the fix order matters as much as the fix itself.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/nSnMApvBIY4"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Not every missing field is a mistake
&lt;/h2&gt;

&lt;p&gt;WordPress accessibility guidance is clear on one point that a lot of "fix all your alt text" advice skips over: purely decorative images — a background texture, a divider graphic, a repeated icon that doesn't add information — are supposed to have empty alt text (&lt;code&gt;alt=""&lt;/code&gt;), not a written description. A screen reader sees an empty alt attribute and skips the image silently, which is correct. Fill it with something like "decorative border" and you've added noise to every page that uses it, read aloud to every visitor using assistive technology.&lt;/p&gt;

&lt;p&gt;This means a raw "missing alt text" count from a scan isn't the same as "images that need writing." Some portion of it is images that are correctly empty and shouldn't be touched. Knowing roughly what share of your missing count falls into that bucket changes how big the actual job is.&lt;/p&gt;

&lt;h2&gt;
  
  
  A simple way to separate the two groups
&lt;/h2&gt;

&lt;p&gt;Ask one question per image: if this picture were removed entirely, would the page lose information? A product photo, a screenshot in a tutorial, an infographic, a photo of a person mentioned in the text — remove any of those and the reader loses something. A decorative divider, a repeated background pattern, an icon that's purely visual flourish next to text that already says the same thing — remove those and nothing is lost.&lt;/p&gt;

&lt;p&gt;The first group needs real, specific alt text. The second group needs an empty alt attribute, deliberately set, not just left blank by accident (there's a difference between "never filled in" and "correctly set to empty" — the plugin or theme should be marking these as intentional, not just missing).&lt;/p&gt;

&lt;h2&gt;
  
  
  Ordering the fix once you've separated them
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Sort your missing list by page traffic first, image type second.&lt;/strong&gt; A meaningful image on your highest-traffic page is worth fixing before a meaningful image on a page nobody visits, even though both are technically the same kind of gap.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Batch the obvious decorative images and mark them empty, deliberately.&lt;/strong&gt; Theme graphics, dividers, and repeated icons are usually easy to spot in bulk once you're looking at the media library rather than one page at a time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write real descriptions for content images next&lt;/strong&gt;, starting with product photos and hero images on commercial pages, since those carry the most direct SEO and conversion value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leave ambiguous cases for a manual look.&lt;/strong&gt; A photo that's mostly aesthetic but does contain a product in the background, for example, deserves a human decision rather than a blanket rule.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-check periodically&lt;/strong&gt;, since new uploads will include a mix of both types again, and the triage step needs to happen every time, not just on the initial cleanup.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Where AI drafting helps and where it doesn't
&lt;/h2&gt;

&lt;p&gt;An AI description generator is genuinely useful for the "these need real text" pile — it can look at an image and draft something specific fast, which you then review. It's less useful, and arguably the wrong tool, for the "these should be empty" pile, because an AI given an image will nearly always try to describe what's in it rather than recognise that the description shouldn't exist at all. The &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text plugin&lt;/a&gt; separates these cases in its scan results, so you're not asking a description generator to make a judgement call it isn't well suited to.&lt;/p&gt;

&lt;p&gt;If you want a first look at how your own site splits between these two categories, a &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; will surface the images on your live pages so you can sort them yourself before deciding what needs writing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How do I know if a WordPress image should have empty alt text instead of a description?
&lt;/h3&gt;

&lt;p&gt;Ask whether removing the image would remove any information from the page. If the answer is no — it's a background pattern, a divider, a purely visual icon next to text that already conveys the same meaning — the correct alt text is an empty string, not a description. If removing it would leave the reader missing something (a product photo, a chart, a screenshot), it needs real, specific alt text.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does leaving alt text empty hurt my WordPress SEO?
&lt;/h3&gt;

&lt;p&gt;Not when it's the correct choice for a genuinely decorative image. Search engines and accessibility guidelines both treat a deliberately empty alt attribute on a decorative image as correct behaviour, not a gap. What hurts SEO is leaving meaningful, content-carrying images with no alt text at all, or with generic filler text that doesn't describe what's actually shown.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which WordPress images should I fix first if I have a large missing alt text backlog?
&lt;/h3&gt;

&lt;p&gt;Start with meaningful images on your highest-traffic pages — product photos, hero images, and content-carrying graphics on the pages that already get visitors. That's where the SEO and accessibility impact is concentrated. Decorative images can be batched and marked empty relatively quickly since they don't need individual descriptions; the time-consuming part is writing accurate text for genuinely meaningful images, so prioritise those by traffic rather than working through the list in upload order.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>alttext</category>
      <category>wordpress</category>
      <category>imageseo</category>
    </item>
    <item>
      <title>How to Verify Your WordPress Alt Text Fixes Actually Worked</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Wed, 05 Aug 2026 07:16:11 +0000</pubDate>
      <link>https://dev.to/benoats/how-to-verify-your-wordpress-alt-text-fixes-actually-worked-4l5e</link>
      <guid>https://dev.to/benoats/how-to-verify-your-wordpress-alt-text-fixes-actually-worked-4l5e</guid>
      <description>&lt;h1&gt;
  
  
  How to Verify Your WordPress Alt Text Fixes Actually Worked
&lt;/h1&gt;

&lt;p&gt;Fixing missing alt text feels finished the moment you save the last image. It isn't. Without a second pass, you have no actual confirmation that the fix stuck, that it covered what you thought it covered, or that nothing regenerated the gap while you weren't looking.&lt;/p&gt;

&lt;p&gt;Here's a short video on why the before-and-after comparison matters as much as the fix itself.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/731uRJGmkDQ"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "I fixed it" and "it's fixed" aren't the same thing
&lt;/h2&gt;

&lt;p&gt;When you run a bulk edit — whether by hand, through a plugin, or via an import script — you're trusting that the process did what it said it would. That trust is usually fine, but it's not verification. A few things commonly go wrong silently: an edit applies to the alt text field on the attachment but not the specific instance used on a page, a bulk tool skips images above a certain file size, or a save fails partway through a large batch without an obvious error message.&lt;/p&gt;

&lt;p&gt;None of those failures announce themselves. The only way to know your fix actually landed is to run the same check you ran before, and compare the numbers.&lt;/p&gt;

&lt;p&gt;This is also where a lot of people stop too early. They fix the ten images they noticed were obviously wrong, feel like the job is done, and never go back to see what the remaining count looks like. A before-and-after audit turns "I think I got most of them" into an actual figure you can act on.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a before-and-after comparison should actually track
&lt;/h2&gt;

&lt;p&gt;Three numbers matter more than any single audit snapshot:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The missing count.&lt;/strong&gt; How many images have no alt text at all. This should drop after a fix — if it doesn't, something in your process isn't reaching the images you think it is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The weak count.&lt;/strong&gt; Images with alt text present but low quality — filenames, single generic words, or placeholder text. A fix that only targets "missing" and ignores "weak" will show a clean missing-count while leaving genuinely unhelpful descriptions in place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New uploads since the last check.&lt;/strong&gt; If your site adds images regularly — new blog posts, new products — the missing count can creep back up between audits even without anyone doing anything wrong. Tracking this separately tells you whether your ongoing process (not just your one-time cleanup) is holding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running the comparison
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Record your starting numbers before you touch anything.&lt;/strong&gt; Missing count, weak count, and total image count. Write them down somewhere outside the tool itself, so you have a fixed reference point.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make your fixes in one batch where possible.&lt;/strong&gt; This makes the before-and-after comparison cleaner than fixing a handful, checking, fixing a few more, checking again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-run the exact same scan.&lt;/strong&gt; Same scope — same media library, same live-page audit if you used one — so the comparison is apples to apples.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check for images that moved backward, not just forward.&lt;/strong&gt; Occasionally a bulk process overwrites a genuinely good manual description with a generic one. Spot-check a sample of your best-performing pages to catch this.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set a re-check cadence.&lt;/strong&gt; A single before-and-after isn't a permanent state. New uploads, theme changes, and plugin updates can all reopen the gap, so schedule the same audit again — monthly or quarterly depending on how often your site's content changes.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Making the second pass worth running
&lt;/h2&gt;

&lt;p&gt;The reason most sites skip the re-audit is that running the same manual check twice feels like duplicate effort for no new information. That's a fair complaint if the check itself is tedious. The &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text plugin&lt;/a&gt; keeps a live quality score and missing/weak/optimised breakdown for your whole WordPress media library, so the "after" numbers are already sitting there whenever you want to look, rather than requiring you to redo a manual pass from scratch. You can also run a &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; against your public pages as an independent second check that isn't reading from the same source as your fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How soon after fixing WordPress alt text should I re-check it?
&lt;/h3&gt;

&lt;p&gt;Immediately, or within a day. Checking right after your fix confirms the edit actually saved and applied where you expected — catching a failed bulk save early is much easier than discovering it months later when you assumed the job was done.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does it mean if my missing alt text count didn't drop after a fix?
&lt;/h3&gt;

&lt;p&gt;It usually means the fix didn't reach every image you thought it did. Common causes: the edit targeted the media library attachment but the page displays a different image size or instance, the bulk tool has a file-size or file-type limit that silently skipped some images, or the save process was interrupted partway through a large batch. Re-running the fix on a smaller, isolated batch usually reveals which case applies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I track alt text quality over time, or just fix it once?
&lt;/h3&gt;

&lt;p&gt;Track it over time if your site adds images regularly. A one-time fix clears the existing backlog, but new uploads — new blog posts, new products, a theme change — reopen the gap continuously. A periodic re-check (monthly or quarterly) catches that drift before it accumulates into another large backlog.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>alttext</category>
      <category>wordpress</category>
      <category>imageseo</category>
    </item>
    <item>
      <title>Scan Your WordPress Media Library for Missing Alt Text</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Wed, 05 Aug 2026 07:16:07 +0000</pubDate>
      <link>https://dev.to/benoats/scan-your-wordpress-media-library-for-missing-alt-text-1o1i</link>
      <guid>https://dev.to/benoats/scan-your-wordpress-media-library-for-missing-alt-text-1o1i</guid>
      <description>&lt;h1&gt;
  
  
  Scan Your WordPress Media Library for Missing Alt Text
&lt;/h1&gt;

&lt;p&gt;If you're checking alt text by opening posts one at a time, you're auditing the wrong list. Your published pages only show the images that made it into content. Your media library holds every image you've ever uploaded — including the ones sitting in product galleries, page builders, widgets, and old drafts that never got a second look.&lt;/p&gt;

&lt;p&gt;I made a short video showing why starting from the media library, not the post editor, is the faster way to find the real scale of a missing alt text problem.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/Wj12mrsvP34"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Why page-by-page checking undercounts the problem
&lt;/h2&gt;

&lt;p&gt;Most people who go looking for missing alt text start where the content lives: they open a post, scroll through it, and check each image against the description in the editor. That works for a handful of pages. It falls apart the moment your site has any real history behind it.&lt;/p&gt;

&lt;p&gt;Here's the gap. A WordPress media library typically holds far more files than appear in your visible content. Images get uploaded for a page that was never published, attached to a product that was later deleted, embedded in a widget that doesn't render in the block editor's image list, or duplicated across sizes when a theme regenerates thumbnails. None of that shows up if you're reading posts top to bottom. You can check every published page on your site and still miss a large share of what's actually in your media library.&lt;/p&gt;

&lt;p&gt;There's a second reason page-by-page checking is slow: it's stateful in your head, not in a tool. You have to remember which posts you've already checked, which images you already fixed, and which ones you skipped because you weren't sure. That tracking overhead is where most manual audits quietly stop halfway through.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a media-library-first scan actually gives you
&lt;/h2&gt;

&lt;p&gt;Flip the starting point and the problem becomes countable. Instead of asking "does this page have good alt text?" one page at a time, you ask "how many of my images, across the entire library, have no alt text at all?" once.&lt;/p&gt;

&lt;p&gt;That single number changes how you plan the work. If a scan comes back with 40 missing images out of 600, that's a task you can finish this afternoon. If it comes back with 4,000 out of 12,000, that's a different kind of project, and it tells you not to bother fixing alt text by hand — you need a process that works at that scale, not a checklist.&lt;/p&gt;

&lt;p&gt;A library-first scan also naturally sorts images into groups that page-by-page checking can't: images with no alt text at all, images with generic or filename-style alt text (&lt;code&gt;IMG_4021.jpg&lt;/code&gt; copied straight into the field), and images that already have a real description. Seeing those three buckets separately tells you where to spend your first hour.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running the scan
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start from Media, not Posts.&lt;/strong&gt; Open your WordPress media library view rather than clicking into individual pages. This is the full inventory, not a filtered subset.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sort by alt text status, not upload date.&lt;/strong&gt; You want to see missing and weak alt text grouped together, not scattered across pages of chronological uploads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Note where the gaps cluster.&lt;/strong&gt; In most sites, missing alt text concentrates in one or two sources — a product import, a theme's demo content, or images added directly through a page builder that bypasses the standard media fields. Once you spot the cluster, you know where a bulk fix will have the most impact.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-reference against your live pages.&lt;/strong&gt; A &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; checks what's actually rendering on your public pages, which is a useful second pass after the library scan — it confirms the images search engines can see, not just the images sitting in your database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-run the scan after any bulk edit.&lt;/strong&gt; A number without a before-and-after comparison doesn't tell you whether the fix worked. Treat the missing-count as a metric you check again, not a one-time report.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Turning a scan into fixed images
&lt;/h2&gt;

&lt;p&gt;Finding the gap is the easy half. Writing hundreds or thousands of accurate descriptions by hand is where most audits stall — nobody has a free afternoon for that, so the spreadsheet of "images to fix" sits untouched. The &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text plugin&lt;/a&gt; is built for that second half: it scans the whole media library the same way, then drafts alt text for the images that need it, which you review before anything saves back to WordPress. The scan tells you the size of the job; the plugin is what makes clearing it realistic in one sitting rather than one image at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why does my WordPress media library have more images than my published pages show?
&lt;/h3&gt;

&lt;p&gt;Uploads accumulate from more places than your visible content: deleted drafts, unused product images, thumbnail regenerations from theme or plugin changes, and files added through page builders that don't always register in the standard content editor. Over years of site activity, this backlog can be substantially larger than what's currently live. A media-library scan counts all of it; reading through your posts only counts what made it to a published page.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's the difference between missing alt text and weak alt text?
&lt;/h3&gt;

&lt;p&gt;Missing alt text means the field is empty — nothing for a screen reader or search engine to read. Weak alt text means the field has something, but it's not useful: a filename like &lt;code&gt;IMG_2931&lt;/code&gt;, a single generic word like "image", or text copied from the page title regardless of what the picture shows. Both hurt image SEO and accessibility, but they need different fixes — missing alt text needs a description written from scratch, weak alt text needs a rewrite.&lt;/p&gt;

&lt;h3&gt;
  
  
  How often should I re-scan my WordPress media library for alt text gaps?
&lt;/h3&gt;

&lt;p&gt;Scan again after any bulk import (new products, a theme migration, a content migration from another platform) and periodically otherwise — quarterly is reasonable for an active site. New uploads reopen the gap even after you've cleared it once, so a scan is a check you repeat, not a task you complete permanently.&lt;/p&gt;

</description>
      <category>imageseo</category>
      <category>alttext</category>
      <category>wordpress</category>
      <category>medialibrary</category>
    </item>
    <item>
      <title>The Real Time Cost of Checking WordPress Alt Text by Hand</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Thu, 30 Jul 2026 22:03:15 +0000</pubDate>
      <link>https://dev.to/benoats/the-real-time-cost-of-checking-wordpress-alt-text-by-hand-gm2</link>
      <guid>https://dev.to/benoats/the-real-time-cost-of-checking-wordpress-alt-text-by-hand-gm2</guid>
      <description>&lt;h1&gt;
  
  
  The Real Time Cost of Checking WordPress Alt Text by Hand
&lt;/h1&gt;

&lt;p&gt;"I'll just go through and check the images" is a sentence that sounds reasonable right up until you count how many images your site actually has. WordPress will show you alt text one image at a time, in the attachment details panel, and that's genuinely fine for a handful of photos. It stops being fine well before you reach a hundred.&lt;/p&gt;

&lt;p&gt;I recorded a short video on what a full manual alt text check actually costs in time, and why that cost is the real reason this problem persists on so many sites.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/sN94e93yFS0"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What "checking manually" actually involves
&lt;/h2&gt;

&lt;p&gt;To check one image's alt text in WordPress, you open the Media Library, click the image, wait for the attachment details panel to load, read the Alternative Text field, decide if it's adequate, close the panel, and move to the next image. That's roughly ten to fifteen seconds per image if you're moving quickly and not stopping to actually write anything.&lt;/p&gt;

&lt;p&gt;For a site with 200 images, that's around half an hour to forty-five minutes just to identify the problem — before you've fixed a single one. For a WooCommerce store with 3,000 product and variation images, the identification step alone is somewhere north of twelve hours of clicking. Nobody blocks out twelve hours for this. So it doesn't happen, and the gap just sits there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the Media Library can't shortcut this for you
&lt;/h2&gt;

&lt;p&gt;WordPress's Media Library shows one alt text field at a time, inside each item's own detail view. There's no column in the grid or list view that shows alt text status, no filter for "show only images with empty alt text," and no bulk view that lets you scan fifty images' descriptions on one screen. Every check requires opening that item individually.&lt;/p&gt;

&lt;p&gt;This isn't a bug — WordPress's core Media Library was never built as an SEO or accessibility auditing tool, it's a file manager. The gap has to be filled by something else, and most sites simply never fill it, which is why missing alt text is one of the most common image SEO problems on WordPress despite being simple to understand.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a scan-based approach actually saves
&lt;/h2&gt;

&lt;p&gt;Instead of opening images one at a time, a scanning tool reads your entire media library — including WooCommerce products — in one pass and returns a report. The time cost drops from hours of clicking to the time it takes the scan to run, typically minutes, plus whatever time you choose to spend reviewing and applying the results.&lt;/p&gt;

&lt;p&gt;The saved time isn't just about the initial audit, either. Once you know exactly which images need attention, fixing them is also faster: you're working through a defined, filtered list instead of hunting for problems while doing something else.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Run a full scan instead of spot-checking.&lt;/strong&gt; The &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text plugin&lt;/a&gt; reads your whole media library in one pass, including WooCommerce galleries and variation images, and reports what's missing or weak.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Filter down to what needs work.&lt;/strong&gt; You don't need to review images that already have good alt text — filter the results and only look at what's actually flagged.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate descriptions for the flagged batch and review them.&lt;/strong&gt; This replaces writing every description individually with reviewing candidate text, which is a fraction of the time.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apply in bulk rather than one image at a time.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automate new uploads&lt;/strong&gt; so future images get described as they're added, and you're not repeating the full manual check again in six months.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you'd rather see the size of the problem on your public pages first, a &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; will crawl your site and send back a report without needing you to install anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How long does it really take to manually check alt text on a WordPress site?
&lt;/h3&gt;

&lt;p&gt;Roughly ten to fifteen seconds per image just to open it and read the field — before fixing anything. For a site with a few hundred images that's close to an hour of identification work alone; for a large WooCommerce catalogue with thousands of product images, it can run into many hours, which is why it rarely gets done thoroughly by hand.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is there a faster manual method, like exporting to a spreadsheet?
&lt;/h3&gt;

&lt;p&gt;You can export your media library to a CSV via a database query or export plugin and review alt text in a spreadsheet, which is faster than clicking through the UI but still requires manually deciding what's wrong with each entry and writing replacement text. It removes the clicking overhead but not the writing overhead.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does automating alt text checks replace the need for any manual review?
&lt;/h3&gt;

&lt;p&gt;No, and it shouldn't. A scanning tool finds and drafts alt text far faster than doing it by hand, but reviewing the generated descriptions before they go live is still worth the few seconds it takes per image — you're checking for accuracy, not writing from scratch.&lt;/p&gt;

</description>
      <category>imageseo</category>
      <category>alttext</category>
      <category>wordpress</category>
      <category>productivity</category>
    </item>
    <item>
      <title>When WordPress Images Don't Need Alt Text</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Thu, 30 Jul 2026 22:02:35 +0000</pubDate>
      <link>https://dev.to/benoats/when-wordpress-images-dont-need-alt-text-252k</link>
      <guid>https://dev.to/benoats/when-wordpress-images-dont-need-alt-text-252k</guid>
      <description>&lt;h1&gt;
  
  
  When WordPress Images Don't Need Alt Text
&lt;/h1&gt;

&lt;p&gt;The common advice is "every image needs alt text." That's close, but it's not quite right, and treating it as an absolute rule leads to a specific bad outcome: people writing descriptions for decorative dividers, background swirls, and repeated UI icons that add nothing for anyone, screen reader user or search engine.&lt;/p&gt;

&lt;p&gt;I put together a short clip on when it's actually correct to leave alt text empty, and why that's different from leaving it missing.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/hC0ZvmqeVv0"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  The difference between "empty" and "missing"
&lt;/h2&gt;

&lt;p&gt;This is the distinction that gets lost in most alt text advice. An image with &lt;code&gt;alt=""&lt;/code&gt; — an alt attribute that's deliberately set to nothing — tells a screen reader to skip the image entirely and move on to the next piece of content. That's the correct behaviour for an image that carries no information: a spacer graphic, a decorative border, a repeated bullet icon.&lt;/p&gt;

&lt;p&gt;An image with no alt attribute at all, or an empty field that was simply never filled in, is different. Screen readers often fall back to reading the filename aloud, which means a visually impaired visitor might hear "IMG-2847-final-dot-jpg" read out mid-sentence. That's worse than silence. So the goal isn't "every image has text in the alt field" — it's "every image has the correct alt attribute for what it is," and sometimes correct means intentionally empty.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to tell decorative from meaningful
&lt;/h2&gt;

&lt;p&gt;A simple test: if you removed the image entirely, would the page lose information? If nothing changes — the content still makes complete sense without it — the image is decorative and should get &lt;code&gt;alt=""&lt;/code&gt;. If removing it would leave a reader missing something the surrounding text doesn't already say, it's meaningful and needs a real description.&lt;/p&gt;

&lt;p&gt;Some concrete examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Decorative — use empty alt text:&lt;/strong&gt; background patterns, divider lines, a repeated icon that appears identically across every page (like a small arrow next to "read more"), purely stylistic photography with no informational content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meaningful — needs a real description:&lt;/strong&gt; product photos, screenshots referenced in a tutorial, charts and graphs, infographics, photos of people or events the article discusses, any image a caption refers to.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Genuinely borderline:&lt;/strong&gt; a hero image on a blog post that's purely mood-setting and not discussed anywhere in the text. Reasonable people differ here; when in doubt, a short factual description costs nothing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why getting this wrong in either direction is a problem
&lt;/h2&gt;

&lt;p&gt;Writing descriptions for every decorative icon isn't just wasted effort — it actively makes the page worse for screen reader users, who end up sitting through a description of a bullet point on every single list item. It also dilutes your alt text signal for search engines, which can't tell "this is deliberately thorough" from "this is keyword stuffing on unimportant images."&lt;/p&gt;

&lt;p&gt;Going the other way — leaving meaningful images with no alt text at all because "some images don't need it" — is the far more common mistake, and it's the one that actually costs you image search visibility and leaves real gaps for screen reader users.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical workflow for a whole site
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scan first.&lt;/strong&gt; The &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text plugin&lt;/a&gt; reads your WordPress media library and flags images with missing alt text, so you're working from a real list rather than guessing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sort flagged images into decorative and meaningful&lt;/strong&gt; using the removal test above before writing or generating anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set decorative images to &lt;code&gt;alt=""&lt;/code&gt; deliberately&lt;/strong&gt;, not just leave the field blank — the intent matters for anyone auditing the site later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate and review descriptions for the meaningful ones&lt;/strong&gt;, covering standard content images and WooCommerce product photos alike.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recheck new uploads periodically&lt;/strong&gt;, since the decorative/meaningful split needs to be applied to new images too, not just the backlog.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you want to see how your current mix looks before changing anything, a &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; will scan your public pages and flag missing and generic alt text.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is it ever correct to leave a WordPress image's alt text blank?
&lt;/h3&gt;

&lt;p&gt;Yes, for genuinely decorative images — background graphics, spacers, repeated stylistic icons — an empty &lt;code&gt;alt=""&lt;/code&gt; attribute is the correct, deliberate choice. It tells screen readers to skip the image rather than reading a filename or a pointless description aloud. The key word is deliberate: it should be a decision, not an oversight.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I know if an image is decorative or meaningful?
&lt;/h3&gt;

&lt;p&gt;Ask whether removing the image would remove information from the page. If the surrounding text already says everything the image shows, or the image is purely stylistic, it's decorative. If a reader would lose something by not seeing it — a product's appearance, data in a chart, a screenshot a tutorial refers to — it needs real alt text.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does WCAG require alt text on every single image?
&lt;/h3&gt;

&lt;p&gt;WCAG requires that every image have an alt attribute, but it explicitly allows that attribute to be empty for purely decorative images — that's what &lt;code&gt;alt=""&lt;/code&gt; is for. What it doesn't allow is simply omitting the attribute or leaving meaningful images undescribed. The requirement is about correctness, not maximum word count.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>alttext</category>
      <category>wordpress</category>
      <category>imageseo</category>
    </item>
    <item>
      <title>See Every Missing Alt Tag on Your WordPress Site at Once</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Thu, 30 Jul 2026 22:02:26 +0000</pubDate>
      <link>https://dev.to/benoats/see-every-missing-alt-tag-on-your-wordpress-site-at-once-177b</link>
      <guid>https://dev.to/benoats/see-every-missing-alt-tag-on-your-wordpress-site-at-once-177b</guid>
      <description>&lt;h1&gt;
  
  
  See Every Missing Alt Tag on Your WordPress Site at Once
&lt;/h1&gt;

&lt;p&gt;Ask most WordPress site owners how many images on their site are missing alt text, and you'll get a shrug. Not because they don't care, but because there's no single screen anywhere in WordPress that answers the question. You'd have to open every post, every product, every page, and check one image at a time.&lt;/p&gt;

&lt;p&gt;Here's a short look at what it takes to get a single, site-wide view instead of checking image by image.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/db6BP320jzA"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with checking alt text page by page
&lt;/h2&gt;

&lt;p&gt;WordPress splits your content into posts, pages, and — if you run WooCommerce — products, each with their own images. Alt text lives inside each individual image's attachment details, not in any list view. So even if you're diligent, "checking your alt text" in practice means opening the editor for every single piece of content, scrolling to each image, clicking it, and reading the Alternative Text field.&lt;/p&gt;

&lt;p&gt;That's a fine process for reviewing a page before you publish it. It's not a process for finding every missing alt tag across a site that might have hundreds of posts and thousands of product images. Nobody actually does this exhaustively, which is why alt text coverage tends to be inconsistent even on sites that are otherwise well maintained.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a single, site-wide view should show you
&lt;/h2&gt;

&lt;p&gt;A useful overview doesn't just say "you have images with missing alt text." It should let you see the shape of the problem at a glance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A total count&lt;/strong&gt;, so you know if you're dealing with twenty images or two thousand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A breakdown by content type&lt;/strong&gt; — posts, pages, WooCommerce products — so you know where the gaps are concentrated.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A distinction between missing and weak.&lt;/strong&gt; An image with no alt text and an image with alt text that's just the filename are both problems, but they're not identical, and lumping them together hides useful detail.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A way to filter down to what needs action&lt;/strong&gt;, rather than scrolling through everything including the images that are already fine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without that kind of overview, "fixing alt text" tends to mean fixing whatever you happen to notice while doing something else, which leaves the bulk of the problem untouched.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting from a page-by-page habit to a site-wide one
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start with a scan, not a manual check.&lt;/strong&gt; The &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text plugin&lt;/a&gt; reads your entire media library — including WooCommerce images — in one pass and gives you a single view of what's missing or weak, instead of requiring you to open items individually.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Filter to the images that actually need work.&lt;/strong&gt; Once you can see everything in one place, cut the list down to what's missing or generic and ignore what's already fine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Work through it as a queue, not a hunt.&lt;/strong&gt; Instead of stumbling across a bad alt tag while editing an unrelated post, you're working through a defined list, which is far more likely to actually get finished.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recheck periodically.&lt;/strong&gt; A site-wide view is only useful if you look at it again after a few weeks of new content, not just once.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you'd rather see the scope of the problem on your public pages before installing anything, a &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; will scan your live site and send back a report.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is there a built-in way to see all missing alt text in WordPress?
&lt;/h3&gt;

&lt;p&gt;No. WordPress's core Media Library doesn't include a filter or column for alt text status, so there's no native way to see it site-wide without opening each image. You need a plugin or a database export to get a consolidated view.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does a site-wide alt text view include WooCommerce products?
&lt;/h3&gt;

&lt;p&gt;It should, if you're running a store — but check before relying on any tool. Some alt text checkers only look at images placed inside post and page content and skip product and variation images entirely, which for a WooCommerce site is where most of the missing alt text actually is.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long does it take to get a full picture of missing alt text on a typical site?
&lt;/h3&gt;

&lt;p&gt;With a scanning tool, minutes — the scan runs against your whole media library and returns a report you can filter immediately. Doing the same thing manually, checking each image individually, can take hours or days depending on how many images your site has, which is the main reason most people never do it.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>alttext</category>
      <category>imageseo</category>
      <category>dashboard</category>
    </item>
    <item>
      <title>How to Find Every Missing Alt Tag in WordPress</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Thu, 30 Jul 2026 22:01:42 +0000</pubDate>
      <link>https://dev.to/benoats/how-to-find-every-missing-alt-tag-in-wordpress-5glc</link>
      <guid>https://dev.to/benoats/how-to-find-every-missing-alt-tag-in-wordpress-5glc</guid>
      <description>&lt;h1&gt;
  
  
  How to Find Every Missing Alt Tag in WordPress
&lt;/h1&gt;

&lt;p&gt;WordPress's Media Library lets you check alt text one image at a time. Click an image, look at the Alternative Text field, see if it's blank. That works for five images. It falls apart completely once you're past a few hundred, which is where most sites that have been live for more than a year or two actually sit.&lt;/p&gt;

&lt;p&gt;I recorded a full walkthrough of how to find every missing alt tag across a WordPress site in one pass, instead of clicking through the library image by image.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/LjKnj7JMaTg"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the default Media Library view doesn't scale
&lt;/h2&gt;

&lt;p&gt;Open Media &amp;gt; Library in WordPress and you get a grid or a list, sortable by date, file type, and a couple of other fields — but not by whether alt text exists. There's no built-in filter for "show me images with an empty Alternative Text field." You'd have to click into every single item, check the field, close it, and move to the next one.&lt;/p&gt;

&lt;p&gt;For a small brochure site with fifty images, that's tedious but doable in an afternoon. For a WooCommerce store with thousands of product photos, variation images, and category thumbnails, or a blog with a decade of posts, it's not realistic. Nobody does it, which is exactly why missing alt text is one of the most common — and most ignored — image SEO problems on WordPress.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "finding every missing alt tag" actually means
&lt;/h2&gt;

&lt;p&gt;A proper scan needs to do three things the default library doesn't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cover the whole library, not just recent uploads.&lt;/strong&gt; Old images from years ago are usually the worst offenders, because alt text discipline improves over time as people get more SEO-aware.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Distinguish empty from bad.&lt;/strong&gt; A blank alt attribute and an alt attribute that just contains the filename (&lt;code&gt;DSC_04521.jpg&lt;/code&gt;) are both effectively useless, but only one of them is technically "filled in." A real scan should catch both.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Include WooCommerce, not just post content.&lt;/strong&gt; Product images, gallery images, and variation images live in the same media library but are easy to overlook if you're only checking content you've written yourself.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step-by-step: scanning your library and prioritising fixes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Install a scanner that reads the whole library.&lt;/strong&gt; The &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text plugin&lt;/a&gt; scans every image in your WordPress media library, including WooCommerce product and variation images, and flags anything with missing, generic, or filename-style alt text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Filter to what actually needs attention.&lt;/strong&gt; Once the scan runs, filter the results down to images with no alt text or clearly weak alt text, so you're not wading through the images that are already fine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sort by where the image is used.&lt;/strong&gt; Prioritise images on pages that already get traffic — your best articles, top-selling products, key landing pages — over images buried on pages nobody visits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate descriptions in bulk, then review.&lt;/strong&gt; Rather than typing out a description for each image individually, generate candidate alt text for the flagged batch and review it before applying — you're checking quality, not writing from scratch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply and re-scan periodically.&lt;/strong&gt; Alt text coverage isn't a one-time project. Re-run the scan every month or two so new uploads that slipped through get caught.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set new uploads to get described automatically.&lt;/strong&gt; Once the backlog is cleared, the real win is not letting it build up again — new images should get alt text as they're added, not six months later during another audit.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What to do if you don't want to install anything yet
&lt;/h2&gt;

&lt;p&gt;If you'd rather see the scale of the problem before installing a plugin, a &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; will crawl your public pages and email you a report of which images are missing alt text or have weak, filename-style descriptions. It's a good way to size the problem before deciding how to fix it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can I find missing alt text in WordPress without a plugin?
&lt;/h3&gt;

&lt;p&gt;Technically yes, by exporting your media library via the database or a CSV export tool and checking the &lt;code&gt;_wp_attachment_image_alt&lt;/code&gt; field for each row, but that requires database access or developer time most site owners don't want to spend. A plugin that scans and reports for you is faster and doesn't require touching the database directly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does this include images added through WooCommerce products?
&lt;/h3&gt;

&lt;p&gt;It should. Product photos, gallery images, and variation images are stored in the same media library as any other upload, but a lot of alt text tools only look at images inserted into post and page content, missing product images entirely. Check that whatever tool you use explicitly covers WooCommerce before relying on it for a store.&lt;/p&gt;

&lt;h3&gt;
  
  
  How often should I re-scan my WordPress site for missing alt text?
&lt;/h3&gt;

&lt;p&gt;Monthly is reasonable for an actively updated site, quarterly for one that changes slowly. The point isn't to catch every single new image immediately — it's to stop small gaps from becoming a backlog of hundreds of undescribed images again, which is how most sites end up needing a full audit in the first place.&lt;/p&gt;

</description>
      <category>imageseo</category>
      <category>alttext</category>
      <category>wordpress</category>
      <category>medialibrary</category>
    </item>
    <item>
      <title>The Hidden WordPress SEO Problem: Missing Alt Text</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Thu, 30 Jul 2026 22:01:37 +0000</pubDate>
      <link>https://dev.to/benoats/the-hidden-wordpress-seo-problem-missing-alt-text-bdf</link>
      <guid>https://dev.to/benoats/the-hidden-wordpress-seo-problem-missing-alt-text-bdf</guid>
      <description>&lt;h1&gt;
  
  
  The Hidden WordPress SEO Problem: Missing Alt Text
&lt;/h1&gt;

&lt;p&gt;You've probably run a technical SEO checklist on your WordPress site: page speed, broken links, meta descriptions, sitemap, mobile rendering. Alt text usually isn't on that list, or it's a single line item you tick once and forget. That's the problem. It's not a one-time fix — it's a slow leak that reopens every time you upload a new image.&lt;/p&gt;

&lt;p&gt;I made a short video walking through why this particular gap is so easy to miss, even for people who are otherwise careful about SEO.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/CO0PlwbcPB8"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Why alt text stays hidden from most SEO audits
&lt;/h2&gt;

&lt;p&gt;Most SEO tools and checklists focus on things that are easy to measure at the page level: title tags, headings, word count, internal links. Alt text doesn't get the same attention for a simple reason — it lives inside the media library, not the post editor you're staring at when you write. You can publish a flawless 2,000-word article and never once see whether the six images inside it have real descriptions.&lt;/p&gt;

&lt;p&gt;Plugins that do check for alt text usually only flag it per-post, one page at a time. Nobody sits down and audits three years of uploads in one sitting, so the problem compounds quietly. New content gets slightly better attention because it's fresh in your mind; the back catalogue just sits there.&lt;/p&gt;

&lt;p&gt;There's also a framing issue. Alt text gets filed under "accessibility," which many site owners treat as a compliance checkbox rather than an SEO lever. That's a mistake. Accessibility and SEO overlap almost completely here: the same description that helps a screen reader user understand an image is the same signal Google uses to understand it and rank it in image search.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you actually lose when alt text is missing
&lt;/h2&gt;

&lt;p&gt;Three things happen when an image has no alt text, and none of them show up as an error message anywhere in WordPress.&lt;/p&gt;

&lt;p&gt;First, you lose image search visibility. Google Images is a real acquisition channel — for product photography, recipes, tutorials, and infographics it can rival regular web search traffic. An image with no alt text is far less likely to surface for a relevant query, because Google has almost nothing to go on beyond the filename.&lt;/p&gt;

&lt;p&gt;Second, you weaken the page's overall topical signal. Alt text is one more place to reinforce what a page is actually about, in the crawler's own terms rather than yours. A product page with a clear photo but a blank alt attribute is quietly less specific than a competitor's page that spells it out.&lt;/p&gt;

&lt;p&gt;Third, and increasingly relevant: AI-driven search and chat assistants that summarise or cite web pages also parse alt text as part of understanding a page. If your images are undescribed, you're less legible to that whole category of new discovery surfaces, not just classic search.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to check if this is happening on your site
&lt;/h2&gt;

&lt;p&gt;Before assuming the worst, get a real number rather than a guess.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Run a scan across your public pages.&lt;/strong&gt; A &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; crawls your live site the way a search engine does and reports back which images have no alt text, generic alt text, or filename-style alt text like &lt;code&gt;IMG_2931&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check your oldest content first.&lt;/strong&gt; Alt text discipline tends to improve over time as people get more SEO-aware, so the biggest gaps are usually in posts from years ago, not last month's.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Look at repeated theme elements separately.&lt;/strong&gt; Icons and background graphics that appear on every page shouldn't be treated the same as unique content photos — flag them, but don't spend fixing time there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rank by traffic, not by volume.&lt;/strong&gt; Fix the alt text on your ten best-performing pages before you touch a page nobody visits. The commercial impact is concentrated, even if the missing alt text is spread evenly.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Fixing the gap without redoing years of work by hand
&lt;/h2&gt;

&lt;p&gt;Once you know the scale of the problem, manually rewriting alt text for hundreds or thousands of images isn't realistic for most teams. This is what the &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text plugin&lt;/a&gt; exists to solve: it scans your entire WordPress media library, including WooCommerce product images, scores what it finds, and generates alt text you review before it goes live. You're not handing over control — you're removing the bottleneck of writing every description by hand.&lt;/p&gt;

&lt;p&gt;A sensible order of operations is: audit your public pages to see how big the problem actually is, clean up the highest-traffic content first, then let new uploads get described automatically so the gap doesn't reopen next month.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How do I know if my WordPress site has missing alt text?
&lt;/h3&gt;

&lt;p&gt;The Media Library doesn't surface this well — you'd need to open each image individually to check. The faster route is a site-wide scan. A &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;free image SEO audit&lt;/a&gt; checks your public pages and reports back which images are missing alt text or have generic, filename-style descriptions, without you touching each image manually.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does alt text really affect SEO rankings, or is it just accessibility?
&lt;/h3&gt;

&lt;p&gt;It does both. Screen readers use it for accessibility, and search engines use the same text to understand what an image shows, which affects whether it can rank in image search and contributes to how well the page as a whole is understood. Treating it purely as a compliance task misses half of what it does.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does missing alt text keep coming back even after I fix it?
&lt;/h3&gt;

&lt;p&gt;Because it's not a one-time fix — every new image you upload starts with no alt text unless something fills it in. Old content gets cleaned up, then a redesign, a bulk import, or a busy content month adds a fresh batch of undescribed images. Automating alt text on upload closes that loop so the fix actually holds.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>alttext</category>
      <category>wordpress</category>
      <category>imageseo</category>
    </item>
    <item>
      <title>Why Your WordPress Featured Images Have No Alt Text</title>
      <dc:creator>Benjamin Oats</dc:creator>
      <pubDate>Thu, 30 Jul 2026 21:59:22 +0000</pubDate>
      <link>https://dev.to/benoats/why-your-wordpress-featured-images-have-no-alt-text-48je</link>
      <guid>https://dev.to/benoats/why-your-wordpress-featured-images-have-no-alt-text-48je</guid>
      <description>&lt;h1&gt;
  
  
  Why Your WordPress Featured Images Have No Alt Text
&lt;/h1&gt;

&lt;p&gt;Your WordPress featured images almost certainly have no alt attribute at all — not a blank one, none, because most themes never write it into the markup in the first place. That's different from every other image on your site, where a missing alt text field in the media library at least produces an empty &lt;code&gt;alt=""&lt;/code&gt;. Featured images can skip the attribute entirely, and that gap sits on the single most visible image on every post and page: the one search engines and social platforms treat as the page's representative photo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why featured images behave differently
&lt;/h2&gt;

&lt;p&gt;A normal content image goes through the block editor or classic editor, gets inserted with &lt;code&gt;wp_get_attachment_image()&lt;/code&gt; or similar, and WordPress core pulls the alt text from the attachment's metadata automatically. If that metadata is empty, you get &lt;code&gt;alt=""&lt;/code&gt; — not ideal, but at least a valid, present attribute.&lt;/p&gt;

&lt;p&gt;Featured images work differently because they're not inserted into content at all. They're pulled by the theme, usually via &lt;code&gt;the_post_thumbnail()&lt;/code&gt;, and rendered wherever the theme template decides — a card on the blog index, a hero banner on the single post, an Open Graph image tag in the head. Whether that markup includes an alt attribute depends entirely on how the theme author wrote the template. Plenty of themes call &lt;code&gt;the_post_thumbnail()&lt;/code&gt; with no &lt;code&gt;alt&lt;/code&gt; argument passed through, and WordPress doesn't force one. The result: an &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag with no &lt;code&gt;alt&lt;/code&gt; attribute whatsoever, on every archive card, every hero image, every place that theme reuses the thumbnail.&lt;/p&gt;

&lt;p&gt;This is easy to miss because the Featured Image panel in the post editor doesn't nag you the way the block editor does for inline images. There's no warning icon, no accessibility check flagging it in the same way. You set a featured image, publish, and move on — the missing attribute never surfaces unless you go looking with dev tools or a crawler.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it actually hurts
&lt;/h2&gt;

&lt;p&gt;Three places compound quickly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Archive and blog index pages.&lt;/strong&gt; If your theme's card template omits alt text, every post preview on your homepage, category pages, and search results carries an unlabelled image. That's not one missing alt text — it's one per post, repeated across every listing page that shows thumbnails.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Social sharing and Open Graph.&lt;/strong&gt; Some themes reuse the featured image as the &lt;code&gt;og:image&lt;/code&gt; for link previews, and a few social platforms and accessibility-focused browser extensions read alt text from the source image when generating preview descriptions. An image with no alt attribute gives them nothing to work with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screen reader navigation.&lt;/strong&gt; A screen reader encountering an &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; with no alt attribute at all (as opposed to &lt;code&gt;alt=""&lt;/code&gt;) will often announce the filename — &lt;code&gt;photo-2847.jpg&lt;/code&gt; — because browsers fall back to something when the attribute is absent, whereas &lt;code&gt;alt=""&lt;/code&gt; is correctly treated as decorative and skipped. That's a worse experience than a decorative image done properly.&lt;/p&gt;

&lt;h2&gt;
  
  
  How WordPress image seo for featured images should actually work
&lt;/h2&gt;

&lt;p&gt;The fix isn't a plugin setting you flip once — it's making sure the attribute is written to markup and populated with real metadata every time. There are two layers to close:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The underlying image needs actual alt text in its attachment metadata, same as any other image in your library.&lt;/li&gt;
&lt;li&gt;The theme template needs to actually pass that alt text through to the &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag it renders.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can audit both without touching a line of PHP.&lt;/p&gt;

&lt;h3&gt;
  
  
  A five-step audit and fix
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pick five posts spanning different templates&lt;/strong&gt; — a blog post, a landing page, a product or service page, anything using a different featured-image treatment. Different templates in the same theme often handle this differently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;View source on each, not the rendered page.&lt;/strong&gt; Search for &lt;code&gt;the_post_thumbnail&lt;/code&gt; doesn't help from the frontend — instead, search the rendered HTML for the image filename you set as the featured image and check whether an &lt;code&gt;alt&lt;/code&gt; attribute exists next to it at all.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If the attribute is missing entirely&lt;/strong&gt;, that's a theme template issue, not a metadata issue — even attachments with alt text set will render without it. Note which template files render that page (usually visible in the theme's template hierarchy, or check &lt;code&gt;page.php&lt;/code&gt;, &lt;code&gt;single.php&lt;/code&gt;, &lt;code&gt;archive.php&lt;/code&gt;, &lt;code&gt;content.php&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If the attribute exists but is empty&lt;/strong&gt;, check the attachment's alt text field in the media library. This is the fixable-in-minutes case: open Media Library, find the file, add a real description.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For the template issue&lt;/strong&gt;, either raise it with your theme developer/support (most themes fix this fast once flagged, since it's a one-line change to pass &lt;code&gt;array('alt' =&amp;gt; get_the_title())&lt;/code&gt; or similar), or use a child theme override if you're comfortable editing &lt;code&gt;functions.php&lt;/code&gt;. As a stopgap, some themes accept an &lt;code&gt;alt&lt;/code&gt; argument directly in a shortcode or block settings panel — check the block's sidebar in the editor before assuming it's unsupported.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once the template writes the attribute properly, fixing the metadata for existing images is the same job as any bulk alt-text cleanup: go through the media library, prioritise images used as featured images on high-traffic posts first, and write descriptions specific enough that someone who can't see the image still knows what it shows.&lt;/p&gt;

&lt;h2&gt;
  
  
  What good featured image alt text looks like
&lt;/h2&gt;

&lt;p&gt;Avoid restating the post title — that's what a screen reader already announced from the page heading, so a duplicate alt text adds nothing. Describe the image itself: what's actually depicted, not the topic of the article. "A checklist on a laptop screen showing four completed accessibility audit items" tells a screen reader user something the title doesn't. "Blog post about accessibility audits" tells them nothing new and wastes the one description they get for that image.&lt;/p&gt;

&lt;p&gt;If the featured image is a stock photo or generic decorative graphic with no informational content — a plain gradient background, for instance — the honest fix is to mark it decorative (&lt;code&gt;alt=""&lt;/code&gt;) once your theme supports passing that through, rather than inventing a description for an image that isn't actually informative.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does my WordPress theme support featured image alt text at all?
&lt;/h3&gt;

&lt;p&gt;Most modern themes do, but "support" varies by whether they pass the attachment's &lt;code&gt;alt&lt;/code&gt; metadata into the rendered tag, and whether they allow overriding it per-instance. Check by viewing source on a live page and searching for the image filename — if there's no &lt;code&gt;alt=""&lt;/code&gt; or &lt;code&gt;alt="..."&lt;/code&gt; on that tag, your theme isn't passing it through, regardless of what you've set in the media library. Block themes (those built on the WordPress site editor) generally handle this correctly out of the box since the Post Featured Image block reads attachment metadata directly; classic PHP themes are the more common offenders.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should featured image alt text be different from the post title?
&lt;/h3&gt;

&lt;p&gt;Yes. The post title is already read by search engines and screen readers as the page heading — repeating it as alt text is redundant and wastes the opportunity to describe what the image actually shows. Write alt text that describes the visual content: composition, subject, and any text or data visible in the image, not a restatement of what the article is about.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I fix this without editing my theme's code?
&lt;/h3&gt;

&lt;p&gt;Sometimes. If your theme is missing the attribute entirely in its templates, a plugin that hooks into &lt;code&gt;the_post_thumbnail&lt;/code&gt; or filters image attributes site-wide can patch it without a child theme, since WordPress fires filterable hooks (&lt;code&gt;wp_get_attachment_image_attributes&lt;/code&gt;) that plugins can use to inject alt text even when the theme template doesn't ask for it directly. That's a reasonable stopgap while you wait on a theme fix, though it's worth confirming your theme fires that filter at all — a few tightly coded themes bypass core's image functions entirely and render &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tags by hand.&lt;/p&gt;

&lt;p&gt;If you want a second pair of eyes on where your alt text gaps actually sit — featured images included — run a free scan with &lt;a href="https://oppti.dev/image-seo-audit" rel="noopener noreferrer"&gt;OpptiAI's image SEO audit&lt;/a&gt;. For fixing the underlying media library metadata at scale once you've found the gaps, &lt;a href="https://oppti.dev/plugins/alt-text" rel="noopener noreferrer"&gt;OpptiAI Alt Text&lt;/a&gt; writes descriptions from the images themselves rather than generic templates.&lt;/p&gt;

</description>
      <category>imageseo</category>
      <category>alttext</category>
      <category>wordpress</category>
      <category>featuredimages</category>
    </item>
  </channel>
</rss>
