Bulk Image Alt Text in WordPress: Fix the Backlog in an Afternoon
Hundreds of WordPress images with no alt text? Audit the media library, separate decorative from informative, generate alt text in bulk, then spot-check. Here is how.
To fix image alt text in bulk on a WordPress site: audit the media library so you know how many images have no alt text and which pages they sit on; decide which images are decorative (they get an empty alt attribute) and which are informative (they need a real description); write or generate descriptions for the informative ones in bulk rather than one at a time; then spot-check the results on your most-visited pages. With an AI bulk tool and a short review pass, a backlog of several hundred images is genuinely an afternoon's work rather than the task that never leaves the to-do list.
Disclosure: Sheesh Labs builds Hydrogen SEO, the plugin used as the worked example for bulk generation below, and is building RankWave AI. Read the tool section as a builder's view, not a neutral review. The audit method and the writing rules apply whatever software you use.
What does alt text do for readers and for SEO?
Alt text is the written description stored in an image's alt attribute. It exists first for accessibility. When a screen reader reaches an image it speaks the alt text aloud, and for a blind or low-vision visitor that sentence is the image. When the alt attribute is missing altogether, many screen readers fall back to reading the filename, so the listener hears something like "IMG underscore 4 7 3 2 dot jpeg" where a sighted reader sees the chart that carries the argument of the whole section. Browsers also show alt text in place of an image that fails to load. Web accessibility guidelines (WCAG) require text alternatives for meaningful images, and in a growing number of jurisdictions that is a compliance obligation for many organisations rather than a courtesy.
The SEO case is real and should be stated without inflation. Alt text is the clearest signal a search engine has about what an image depicts, which makes it close to a prerequisite for ranking in image search. For sites whose content is visual (products, recipes, tutorials, portfolios) image search is a genuine traffic source. On the page itself, alt text is on-page copy that reinforces the topic and keeps the page comprehensible when images do not load. What it does not do is rescue thin content, substitute for real page copy, or reward keyword repetition. It is one signal among many, which is exactly why it belongs on a checklist rather than a pedestal; it has a line in our 25-point WordPress SEO checklist for that reason.
The useful consequence of this ordering is that writing for the listener produces the right text for the crawler for free. Alt text written for search engines first tends to become a keyword list that fails both audiences. Hydrogen SEO's post on what missing alt text costs a media library makes the same argument in more depth.
How do you find every image missing alt text?
Almost every WordPress site more than a year old has an alt text debt: hundreds or thousands of images uploaded in a hurry with the field left blank and filenames like final-final-v3.png. Fixing it starts with sizing it. Three levels of audit, from quickest to most complete:
One page at a time
Open the page, open your browser's developer console, and run document.querySelectorAll('img:not([alt])').length. That counts images with no alt attribute at all. Do not count alt="" as a failure; an empty attribute is the correct markup for decorative images. Lighthouse's accessibility audit flags the same problem and is built into Chrome.
The whole media library
WordPress stores an attachment's alt text as post meta under the key _wp_attachment_image_alt. Every image attachment without that row, or with an empty one, is missing alt text. A query like the following gives you the full list (adjust the wp_ prefix to match your install, and run it against a backup or with WP-CLI's wp db query rather than in a production phpMyAdmin tab):
SELECT p.ID, p.post_title
FROM wp_posts p
LEFT JOIN wp_postmeta m
ON m.post_id = p.ID AND m.meta_key = '_wp_attachment_image_alt'
WHERE p.post_type = 'attachment'
AND p.post_mime_type LIKE 'image/%'
AND (m.meta_value IS NULL OR m.meta_value = '');
Write the count down. It is the number you will compare against at the end of the afternoon.
Inside your SEO plugin
Hydrogen SEO's on-page SEO analysis checks the images in the post you are editing, so new content stops adding to the debt, and missing alt text rolls up into the content structure area of the plugin's site health score. Its site-wide audits run from the dashboard and give you the whole-site view of structural problems alongside duplicate titles, orphan pages and broken internal links. On the hydrogenseo.com side, a single-URL audit (one credit) returns findings ranked by estimated traffic impact with the fix written out, including alt text ready to paste, which is a fast way to check a money page before and after.
What makes good alt text?
Good alt text describes what the image shows or does, in one specific sentence, in the context of the page it is on. A soft guide is around 125 characters, because some screen readers historically chunk longer descriptions awkwardly, but specificity matters more than length. The rules that hold up:
- Describe content or function, whichever the image is doing. A chart gets a description of what it shows. An image that is a link or a button gets its function: a magnifying-glass icon that submits a search is "Search", not "magnifying glass".
- Skip "image of" and "picture of". Screen readers already announce the element as an image. Start with the subject.
- Let context decide. The same product photo needs different alt text on a product page and in a tutorial step. Alt text is page copy, not image metadata.
- Use a keyword only when it is the honest description. If the photo genuinely shows a standing desk setup, say so. Never list variants of the phrase.
- Give decorative images an empty alt. Dividers, background flourishes and abstract shapes that carry no information get
alt="". Never write "decorative border graphic"; that forces every screen-reader user to listen to your decoration.
| Image | Bad alt text | Good alt text | Why |
|---|---|---|---|
| Product photo on a shop page | coffee dripper best coffee dripper buy | Blue ceramic pour-over coffee dripper, size 02 | Identifies product and variant; no stuffing |
| Same photo in a brewing tutorial | Blue ceramic pour-over coffee dripper, size 02 | Pouring water in slow circles over the coffee grounds | Describes the step the reader is on |
| Traffic chart in a case study | chart | Line chart of organic traffic rising steadily from January to June after the site migration | Conveys the information the chart carries |
| Magnifying-glass icon that submits search | magnifying glass icon | Search | Functional image; describe the action |
| Photo of a dog in a pet-care post | image of dog | Golden retriever catching a frisbee mid-jump on a beach | Specific; no "image of" |
| Decorative section divider | decorative swirl divider graphic | alt="" (empty) | Nothing to convey; let screen readers skip it |
How do you fix hundreds of images at once?
Writing a thousand descriptions by hand is the job that never gets done, which is what bulk generation is for. Two routes exist in Hydrogen SEO; both need a free hydrogenseo.com account, because AI generation is the one part of the plugin that does. Everything non-AI works with no account at all.
Route 1: the bulk alt text tool
From the image alt text documentation, the flow is:
- Go to Hydrogen SEO → Dashboard and open the image alt tools.
- Start a bulk run across the media library. The plugin works through images that are missing alt text and drafts a description of what each one visibly shows.
- Review the generated text before it is saved: approve, edit or skip each suggestion.
Alt text costs one AI credit per image. A free account includes 1,000 credits on signup, so a thousand-image backlog fits inside the free tier; Pro ($99 a year) includes 20,000 credits and Max ($179 a year) includes 50,000. Our sister site walks through what is free and what credits buy in Hydrogen SEO. If credits run out mid-run, generation simply pauses and nothing else in the plugin is affected. The same design principle runs through all of the plugin's AI content and image tools: AI drafts, you decide, nothing is saved until you have seen it.
Route 2: hand the job to Hydrogen AI
If you prefer to delegate, the Hydrogen AI agent in the plugin dashboard takes plain-language jobs such as "write alt text for every image in the media library that is missing it". It works only through the plugin's registered abilities, shows every change, asks before anything it cannot undo, and can be stopped mid-job. You choose the policy: confirm destructive changes only, confirm every write, or read-only. It cannot act until AI Abilities is switched on and connected, and it runs on a revocable WordPress application password. We compare this job-level delegation with button-level AI in our guide to what actually works in AI SEO for WordPress.
The review workflow that keeps quality honest
Bulk AI drafts are strong on literal content and blind to your context. Review with three questions: is it accurate (no misidentified objects, people or text), is it in context (does it reflect why the image is on this page), and would it help someone who cannot see the image? In practice that means:
- Accept the bulk drafts for the long tail of archive images. A literal description is a vast upgrade over silence.
- Correct the drafts on your money pages and most-trafficked posts by hand. Ten to twenty images, ten minutes.
- Handle functional images yourself. AI describing pixels cannot know an image is a link whose alt should say where it goes.
- Mark decorative images as decorative rather than accepting a generated description of your divider swirl.
Beta caveat. Hydrogen SEO is Beta software (v0.0.20 at the time of writing). Run the bulk tool on staging or on a site with a fresh backup first, and keep the review step; it is the difference between "technically has alt text" and genuinely accessible images.
The same afternoon-sized approach works for the other classic backlog, missing meta descriptions; we cover that in how to write meta descriptions for 500 posts without losing a week.
What about images inserted in old posts vs the media library?
This is the part most bulk guides skip, and it explains why a site can show zero missing alt text in the media library and still fail an accessibility check on its most popular post.
WordPress keeps two copies of alt text. The first is the attachment's own alt, stored as post meta and edited in the Media Library. Anything rendered from that meta at request time reads the current value: featured images, dynamic galleries, product images built with wp_get_attachment_image(), most theme and page-builder image widgets. Fix the library and those all update.
The second copy lives inside post content. When you insert an image into a post, whether through the block editor's Image block or the classic editor, the alt attribute is copied into the post's HTML at that moment. Changing the attachment's alt later does not rewrite that HTML. So an image inserted into a 2022 post with an empty alt stays empty on that post until the post itself is edited, no matter what the media library says.
The practical order, then:
- Fix the media library first. It is where the bulk tools work, and it covers every dynamically rendered image in one pass.
- List your posts by traffic and work down. For inline images, open the post, select the image, and fill the alt field in the block settings. Hydrogen SEO's single-image AI button works beside the alt field where the image is placed in a post as well as in the Media Library, so each fix is two clicks and a glance.
- Accept that the deep archive may keep some inline gaps for a while. Prioritise by visitors, not by completeness.
How do you keep alt text fixed going forward?
A backlog you clear once and rebuild for two years is not fixed. The habits that prevent the rebuild cost almost nothing:
- Write alt text at upload. The media modal shows the alt field the moment an image lands. Filling it then takes ten seconds; filling it two years later takes an audit.
- Make it an editorial rule. No post is published with an informative image that has empty alt. Decorative images get
alt=""deliberately, not by omission. - Let the on-page analysis catch misses. Hydrogen SEO's per-post checks flag images without alt while you are still in the editor, before the post joins the backlog.
- Use the single-image AI button when you are stuck. A draft to edit beats a blank field you promise to return to.
- Re-run the database query quarterly. If the number is climbing, the process broke somewhere, usually a new contributor or a new import.
Alt text is one of the few SEO tasks where doing right by people and doing right by search engines are the same act. Describe content, state function, empty-alt the decoration, skip "image of", and let honest descriptions do their modest, real work in image search. Size the backlog this afternoon, and you will find it is smaller than it feels.
Frequently asked questions
Does adding alt text to every image improve Google rankings?
Modestly and indirectly for the page, more directly for image search. Alt text is the clearest signal search engines have about what an image shows, so it is close to a prerequisite for appearing in image results. On the page itself it adds context and keeps content comprehensible when images fail to load. It will not rescue thin content, and repeating keywords in it can hurt.
Should decorative images have alt text?
They should have an empty alt attribute, written as alt="", which is different from a missing attribute. Empty alt tells screen readers to skip the image cleanly. A missing attribute often makes the screen reader announce the filename instead, which is noise. The test is simple: if the image vanished and no reader would lose information or function, it is decorative and gets empty alt.
How much does bulk AI alt text cost with Hydrogen SEO?
One AI credit per image, according to the Hydrogen SEO API documentation. A free hydrogenseo.com account includes 1,000 credits on signup, which covers a thousand images. Pro at $99 a year includes 20,000 credits and Max at $179 a year includes 50,000. When credits run out only AI generation pauses; the rest of the plugin keeps working. Plans differ in credits and sites, never in features.
If I fix alt text in the media library, do old posts update automatically?
Not always. WordPress stores an attachment's alt text as post meta, and outputs rendered from that meta at request time, such as featured images and dynamic galleries, pick up the change. But when you insert an image into post content, the alt attribute is copied into the post's HTML at that moment and does not update later. Images already inside old posts need their own pass.
Is AI-generated alt text good enough to publish without review?
It is a strong draft, not a finished product. AI describes what is visually apparent and cannot know your context: that the person is your founder, that the screenshot shows a specific settings screen, or that an image is a link whose alt should say where it goes. Skim every draft, correct the ones on important pages and handle functional images yourself. Ten minutes of review is what makes bulk generation trustworthy.
How do I find images missing alt text without a plugin?
On a single page, open the browser console and run document.querySelectorAll('img:not([alt])').length. Across the whole library, query the database: attachments with an image MIME type that have no _wp_attachment_image_alt row in wp_postmeta, or an empty one. WP-CLI can run that query on a live site. Lighthouse's accessibility audit also flags images without alt on any page it tests.