<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Filikod</title>
	<atom:link href="https://filikod.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://filikod.com/</link>
	<description></description>
	<lastBuildDate>Tue, 31 Mar 2026 08:21:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>WooCommerce Image SEO: How to Write ALT Text That Sells (and Stays EAA-Compliant)</title>
		<link>https://filikod.com/woocommerce-image-seo-alt-text/</link>
		
		<dc:creator><![CDATA[adminLyode]]></dc:creator>
		<pubDate>Tue, 31 Mar 2026 08:13:02 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Woocommerce]]></category>
		<guid isPermaLink="false">https://filikod.com/?p=831</guid>

					<description><![CDATA[<p>Learn how to write ALT text for WooCommerce product images that ranks in Google Images and meets EAA requirements. Includes examples, a compliance checklist, and a free audit tool.</p>
<p>L’article <a href="https://filikod.com/woocommerce-image-seo-alt-text/">WooCommerce Image SEO: How to Write ALT Text That Sells (and Stays EAA-Compliant)</a> est apparu en premier sur <a href="https://filikod.com">Filikod</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div data-vc-full-width="true" data-vc-full-width-temp="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_custom_1770924734750 vc_row-has-fill"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_row wpb_row vc_inner vc_row-fluid vc_row-o-equal-height vc_row-o-content-middle vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<h1 class="txtH1" style="text-align: left;">WooCommerce Image SEO: How to Write ALT Text That Sells (and Stays EAA-Compliant)</h1>

		</div>
	</div>

	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<div>
<div class="standard-markdown grid-cols-1 grid &#091;&amp;_&gt;_*&#093;:min-w-0 gap-3">
<p class="font-claude-response-body break-words whitespace-normal leading-&#091;1.7&#093;">Most WooCommerce stores have the same invisible problem: hundreds of product images with missing, generic, or duplicated ALT text. It costs you rankings in Google Images, blocks screen reader users from understanding your products, and since June 2025 puts you at risk under the European Accessibility Act.</p>
</div>
</div>
<div>
<div class="standard-markdown grid-cols-1 grid &#091;&amp;_&gt;_*&#093;:min-w-0 gap-3">
<p class="font-claude-response-body break-words whitespace-normal leading-&#091;1.7&#093;">The good news: ALT text for WooCommerce is fixable. This guide shows you exactly what to write, what to avoid, and how to audit your entire store in under two minutes.</p>
</div>
</div>

		</div>
	</div>
<div class=" ubtn-ctn-inline anchor-link"><a class="ubtn-link ult-adjust-bottom-margin ubtn-inline ubtn-normal anchor-link" href="https://wordpress.org/plugins/filikod/" target="_blank" rel="noopener" ><button type="button" id="ubtn-1691"  class="ubtn ult-adjust-bottom-margin ult-responsive ubtn-normal ubtn-no-hover-bg  none  ubtn-inline   tooltip-69d99090240f3"  data-hover="" data-border-color="" data-bg="#2E00D5" data-hover-bg="" data-border-hover="" data-shadow-hover="" data-shadow-click="none" data-shadow="" data-shd-shadow=""  data-ultimate-target='#ubtn-1691'  data-responsive-json-new='{"font-size":"desktop:16px;","line-height":""}'  style="font-weight:normal;border-radius:50px;border-width:0px;border-color:;border-style:solid;background: #2E00D5;color: #FFFFFF;"><span class="ubtn-hover" style="background-color:"></span><span class="ubtn-data ubtn-text " >Download Filikod for free</span></button></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-offset-1 vc_col-lg-5 vc_col-md-offset-1 vc_col-md-5 vc_col-xs-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div  class="wpb_single_image wpb_content_element vc_align_center  wpb_animate_when_almost_visible wpb_zoomIn zoomIn vc_custom_1772411325511">
		
		<figure class="wpb_wrapper vc_figure">
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img fetchpriority="high" decoding="async" width="2560" height="2038" src="https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-scaled.png" class="vc_single_image-img attachment-full" alt="Edit missing alt text filikod" srcset="https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-scaled.png 2560w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-300x239.png 300w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-1024x815.png 1024w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-768x611.png 768w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-1536x1223.png 1536w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-2048x1630.png 2048w" sizes="(max-width: 2560px) 100vw, 2560px"  data-dt-location="https://filikod.com/home/edit-missing-alt-text-filikod/" /></div>
		</figure>
	</div>
</div></div></div></div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_raw_code wpb_raw_html wpb_content_element" >
		<div class="wpb_wrapper">
			
<style>
.fk-art { color: #2e3134; margin: 0 auto; }
.fk-art p { margin: 0 0 20px; color: #444; }
.fk-toc { background: #f5f4ff; border-left: 4px solid #4c3af7; border-radius: 4px; padding: 22px 28px; margin: 0 0 48px; }
.fk-toc-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: #4c3af7; margin-bottom: 12px; }
.fk-toc ol { padding-left: 20px; margin: 0; }
.fk-toc li { margin-bottom: 6px; font-size: 14px; }
.fk-toc a { color: #3b2fcf; text-decoration: none; }
.fk-toc a:hover { text-decoration: underline; }
.fk-art h2 { font-family: 'DM Sans', sans-serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 700; color: #0d0d0d; margin: 52px 0 14px; padding-top: 10px; border-top: 1px solid #e0e0e0; line-height: 1.25; }
.fk-art h3 { font-family: 'DM Sans', sans-serif; font-size: 18px; font-weight: 700; color: #1a1a1a; margin: 32px 0 10px; }
.fk-callout { border-radius: 6px; padding: 18px 22px; margin: 28px 0; font-size: 15px; line-height: 1.6; }
.fk-callout-warning { background: #fff8e1; border-left: 4px solid #f59e0b; }
.fk-callout-tip { background: #f0fdf4; border-left: 4px solid #22c55e; }
.fk-callout-info { background: #f0eeff; border-left: 4px solid #4c3af7; }
.fk-callout strong { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; display: block; margin-bottom: 6px; }
.fk-callout-warning strong { color: #92400e; }
.fk-callout-tip strong { color: #15803d; }
.fk-callout-info strong { color: #4c3af7; }
.fk-table-wrap { overflow-x: auto; margin: 28px 0; border-radius: 6px; }
.fk-table-wrap table { width: 100%; border-collapse: collapse; font-size: 14px; font-family: 'DM Sans', sans-serif; }
.fk-table-wrap th { background: #1a1a1a; color: #fff; padding: 11px 14px; text-align: left; font-weight: 600; font-size: 13px; }
.fk-table-wrap td { padding: 11px 14px; border-bottom: 1px solid #e8e8e8; vertical-align: top; color: #333; }
.fk-table-wrap tr:nth-child(even) td { background: #f8f8f6; }
.fk-pass { color: #16a34a; font-weight: 700; }
.fk-fail { color: #dc2626; font-weight: 700; }
.fk-art code { font-family: 'Courier New', monospace; font-size: 13px; background: #f0eeff; color: #3b2fcf; padding: 2px 6px; border-radius: 3px; }
.fk-checklist { list-style: none; padding: 0; margin: 16px 0 32px; }
.fk-checklist li { font-size: 15px; padding: 11px 0 11px 40px; position: relative; border-bottom: 1px solid #f0f0f0; color: #333; }
.fk-checklist li::before { content: "✓"; position: absolute; left: 0; top: 8px; width: 24px; height: 24px; background: #4c3af7; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; }
.fk-cta { background: linear-gradient(135deg, #1a0a5e 0%, #3b2fcf 100%); border-radius: 10px; padding: 40px 32px; text-align: center; margin: 48px 0; }
.fk-cta h3 { color: #fff !important; border: none !important; margin: 0 0 10px !important; font-size: 22px !important; }
.fk-cta p { color: rgba(255,255,255,.8) !important; font-size: 15px; margin-bottom: 22px; }
.fk-cta-btn { display: inline-block; background: #fff; color: #3b2fcf !important; font-weight: 700; font-size: 15px; padding: 13px 30px; border-radius: 40px; text-decoration: none !important; transition: transform .15s, box-shadow .15s; }
.fk-cta-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.fk-inline-cta { background: #f5f4ff; border: 1px solid #c7c2f8; border-radius: 6px; padding: 16px 20px; font-size: 15px; margin: 28px 0; color: #2e3134; }
.fk-inline-cta a { color: #4c3af7; font-weight: 600; }
.fk-author { display: flex; gap: 16px; align-items: center; background: #f7f7f5; border-radius: 8px; padding: 20px; margin-top: 48px; font-size: 14px; color: #555; font-family: 'DM Sans', sans-serif; }
.fk-author-avatar { width: 48px; height: 48px; min-width: 48px; background: #4c3af7; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; font-size: 18px; }
.fk-author strong { display: block; color: #0d0d0d; font-size: 15px; margin-bottom: 3px; }
</style>

<div class="fk-art">

  <nav class="fk-toc" aria-label="Table of contents">
    <div class="fk-toc-label">In this guide</div>
    <ol>
      <li><a href="#fk-woo-problem">Why WooCommerce stores have an ALT text problem</a></li>
      <li><a href="#fk-woo-types">The 3 types of product images and what each needs</a></li>
      <li><a href="#fk-woo-write">How to write ALT text that ranks in Google Images</a></li>
      <li><a href="#fk-woo-issues">The 4 ALT quality issues hiding in your store</a></li>
      <li><a href="#fk-woo-audit">How to audit and fix ALT text across hundreds of products</a></li>
      <li><a href="#fk-woo-eaa">EAA compliance for WooCommerce stores</a></li>
      <li><a href="#fk-woo-checklist">WooCommerce image ALT text checklist</a></li>
    </ol>
  </nav>

  <section id="fk-woo-problem">
    <h2>Why WooCommerce stores have an ALT text problem</h2>

    <p>A typical WooCommerce store contains hundreds, sometimes thousands, of product images. Main shots, gallery views, colour variants, lifestyle photos. Every single one needs a unique, descriptive ALT attribute to meet both SEO best practices and the European Accessibility Act.</p>

    <p>In practice, almost none of them do.</p>

    <p>The reason is structural: WooCommerce, like WordPress, never blocks you from publishing a product without ALT text. Images accumulate silently in your media library with empty, generic, or duplicated attributes, and there is no native dashboard to surface the problem.</p>

    <div class="fk-callout fk-callout-warning">
      <strong>The double cost of missing ALT text</strong>
      Google cannot index images it cannot understand. Missing or generic ALT text means your products are invisible in Google Images, which drives over 20% of all web searches. At the same time, screen reader users receive no information about your products, creating a legal exposure under the EAA for any store selling to EU customers.
    </div>

    <p>The good news: once you know where the problems are, fixing them is fast. The first step is an audit.</p>
  </section>

  <section id="fk-woo-types">
    <h2>The 3 types of product images and what each needs</h2>

    <p>Not all WooCommerce images have the same ALT requirements. Getting the distinction right saves time and avoids over-optimising images that do not need descriptive text.</p>

    <div class="fk-table-wrap">
      <table>
        <thead>
          <tr>
            <th>Image type</th>
            <th>Examples</th>
            <th>ALT text rule</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td><strong>Main product image</strong></td>
            <td>Featured image on the product page</td>
            <td>Product name + key attribute + brand if relevant</td>
          </tr>
          <tr>
            <td><strong>Gallery images</strong></td>
            <td>Additional views, colour variants, detail shots</td>
            <td>Unique ALT per image. Describe the specific angle, colour, or detail shown.</td>
          </tr>
          <tr>
            <td><strong>Decorative images</strong></td>
            <td>Category banners, separator graphics, background textures</td>
            <td>Empty ALT: <code>alt=""</code>. Do not describe purely decorative visuals.</td>
          </tr>
        </tbody>
      </table>
    </div>

    <div class="fk-callout fk-callout-tip">
      <strong>Common mistake</strong>
      Many stores assign the same ALT text to every image of the same product regardless of the angle. A close-up of stitching and a front-facing full product shot are two different images. They need two different ALT attributes.
    </div>
  </section>

  <section id="fk-woo-write">
    <h2>How to write ALT text that ranks in Google Images</h2>

    <p>The formula for WooCommerce product ALT text is simple: describe what is actually in the image, include the product name, and add a relevant attribute when it helps.</p>

    <h3>The formula</h3>
    <p><strong>[Product name] + [key attribute] + [context if useful]</strong></p>

    <div class="fk-table-wrap">
      <table>
        <thead>
          <tr>
            <th>Product</th>
            <th>Bad ALT</th>
            <th>Good ALT</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Running shoes</td>
            <td class="fk-fail">product image</td>
            <td class="fk-pass">Nike Air Zoom Pegasus 40 men blue size 42</td>
          </tr>
          <tr>
            <td>Leather bag</td>
            <td class="fk-fail">bag</td>
            <td class="fk-pass">Tan leather tote bag with gold zipper front view</td>
          </tr>
          <tr>
            <td>Coffee maker</td>
            <td class="fk-fail">IMG_3847.jpg</td>
            <td class="fk-pass">De'Longhi Dedica espresso machine stainless steel side angle</td>
          </tr>
          <tr>
            <td>T-shirt variant</td>
            <td class="fk-fail">t-shirt</td>
            <td class="fk-pass">Organic cotton crew neck t-shirt forest green women M</td>
          </tr>
          <tr>
            <td>Skincare product</td>
            <td class="fk-fail">photo</td>
            <td class="fk-pass">CeraVe moisturising cream 340ml jar open lid flat lay</td>
          </tr>
        </tbody>
      </table>
    </div>

    <h3>Three rules to follow</h3>

    <p><strong>Be specific, not clever.</strong> ALT text is read by search engines and screen readers, not humans browsing the page. Clear, descriptive language outperforms creative copywriting every time.</p>

    <p><strong>Include the product name.</strong> Google uses ALT text as a primary signal to match product images to search queries. A product image without the product name in the ALT is a missed ranking opportunity.</p>

    <p><strong>Do not stuff keywords.</strong> Writing <code>running shoes nike air zoom pegasus running shoes men running shoes blue</code> will not help you rank and may trigger a spam signal. One natural mention of the product name is enough.</p>

    <div class="fk-callout fk-callout-info">
      <strong>Yoast and Rank Math integration</strong>
      If you use Yoast SEO or Rank Math, your focus keyword for a product page should appear naturally in the main product image ALT. You do not need to force it into every gallery image.
    </div>
  </section>

  <section id="fk-woo-issues">
    <h2>The 4 ALT quality issues hiding in your store</h2>

    <p>These four patterns account for the vast majority of ALT text violations on WooCommerce stores. All four are invisible to visual inspection and only revealed by a structured audit.</p>

    <h3>1. Missing ALT text</h3>
    <p>Images uploaded without any ALT attribute. This is common on stores that import products via CSV or third-party tools, where image metadata is rarely carried over. Screen readers announce the filename instead, which is meaningless to users.</p>

    <h3>2. Generic ALT text</h3>
    <p>ALT attributes filled with placeholder words like <code>"product image"</code>, <code>"photo"</code>, or <code>"banner"</code>. These pass a basic presence check but fail WCAG 1.1.1 because they convey no information about the actual content of the image.</p>

    <h3>3. Duplicated ALT text</h3>
    <p>Multiple images sharing the same ALT attribute. On WooCommerce stores this is extremely common: all gallery images for a product get the same ALT as the main image. Screen reader users navigating by image cannot distinguish between them, and search engines see duplicate signals.</p>

    <h3>4. ALT text that is too short</h3>
    <p>A one-word ALT like <code>"shoes"</code> or <code>"jacket"</code> technically exists but communicates nothing useful. WCAG requires the text alternative to serve the same purpose as the image for users who cannot see it.</p>

    <div class="fk-callout fk-callout-tip">
      <strong>What the data shows</strong>
      On stores with large product catalogues, duplicated ALTs are typically the biggest category of issues, not missing ALTs. A store that imported 800 products via CSV often has 800 images all sharing the same auto-generated ALT from the import tool.
    </div>
  </section>

  <div class="fk-cta">
    <h3>See exactly what is wrong in your store</h3>
    <p>Filikod scans your entire WordPress media library, classifies every issue by type, and gives you an ALT Quality Score in under two minutes. Free to install.</p>
    <a href="https://wordpress.org/plugins/filikod/" class="fk-cta-btn" target="_blank" rel="noopener">
      Audit my store for free
    </a>
  </div>

  <section id="fk-woo-audit">
    <h2>How to audit and fix ALT text across hundreds of products</h2>

    <p>The native WordPress media library lets you edit ALT text one image at a time. For a store with 500 products, that is not a workflow. You need a tool that shows you the full picture first, then lets you fix issues in bulk.</p>

    <h3>Step 1. Run the audit</h3>
    <p>Install Filikod and open the ALT Audit tab in your WordPress dashboard. The plugin scans your entire media library and classifies every image as missing, generic, too short, or duplicated. You get an ALT Quality Score and a breakdown by issue type in under two minutes.</p>

    <h3>Step 2. Prioritise by impact</h3>
    <p>Fix missing ALTs first. These are the highest-risk images for both accessibility compliance and SEO. Move to generic ALTs second, then duplicated ALTs on gallery images. Too-short ALTs can be addressed last as they typically affect fewer images.</p>

    <h3>Step 3. Edit in bulk from the dashboard</h3>
    <p>Work through each category directly from the Filikod interface. Each image is shown with its filename, current ALT, issue type, and an inline edit field. No need to open individual media library entries. No need to visit each product page.</p>

    <h3>Step 4. Set a workflow for new products</h3>
    <p>The audit fixes the backlog. To prevent it from rebuilding, enable Filikod's automatic ALT generation setting. When a new image is uploaded without an ALT attribute, Filikod generates a baseline value from the filename. It is not perfect, but it eliminates empty ALTs at upload time.</p>

    <div class="fk-inline-cta">
      Already have Filikod installed? Open the <a href="/alt-text-checker/">ALT text checker</a> to run a quick audit on any URL before you start the full library scan.
    </div>
  </section>

  <section id="fk-woo-eaa">
    <h2>EAA compliance for WooCommerce stores</h2>

    <p>The European Accessibility Act entered into force in June 2025. It applies to any business selling products or providing services to EU users, regardless of where the business is based. A WooCommerce store shipping to France, Germany, or Spain is in scope.</p>

    <div class="fk-table-wrap">
      <table>
        <thead>
          <tr>
            <th>Timeline</th>
            <th>What it means for your store</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td><strong>June 2025</strong></td>
            <td>EAA in force. All new product images published must be compliant.</td>
          </tr>
          <tr>
            <td><strong>Now to June 2030</strong></td>
            <td>Transition period. Existing product images must be remediated before the deadline.</td>
          </tr>
          <tr>
            <td><strong>June 2030</strong></td>
            <td>Hard deadline. Full compliance required. Fines apply from this date.</td>
          </tr>
        </tbody>
      </table>
    </div>

    <p>Product images carry the highest compliance risk on a WooCommerce store because they are the most numerous and the most likely to be missing or generic. Addressing ALT text across your product catalogue is both the highest-impact accessibility action and the most directly tied to potential fine exposure.</p>

    <div class="fk-callout fk-callout-warning">
      <strong>Fine exposure</strong>
      EAA non-compliance fines vary by EU member state and can reach up to 500,000 euros. Stores selling across multiple EU markets face potential parallel enforcement from multiple regulators.
    </div>

    <p>For more detail on WCAG 2.1 requirements and the full EAA timeline, see our <a href="/wordpress-accessibility-plugin-wcag-2-1-eaa/">WordPress accessibility and WCAG 2.1 guide</a>.</p>
  </section>

  <section id="fk-woo-checklist">
    <h2>WooCommerce image ALT text checklist</h2>

    <p>Use this checklist to verify your store before the EAA June 2030 deadline.</p>

    <ul class="fk-checklist" role="list">
      <li>Every main product image has a descriptive ALT including the product name</li>
      <li>Every gallery image has a unique ALT describing its specific angle, colour, or detail</li>
      <li>No product image uses a generic ALT such as "product image", "photo", or a filename</li>
      <li>No two different images share the same ALT attribute</li>
      <li>Category banner and purely decorative images use an empty ALT attribute</li>
      <li>Products imported via CSV have had their image ALTs reviewed and updated</li>
      <li>New products published after June 2025 have compliant ALT text at time of upload</li>
      <li>A full media library audit has been run, not just a check of the most recent uploads</li>
      <li>The ALT Quality Score in Filikod is above 90% across the entire media library</li>
      <li>A workflow is in place to maintain ALT compliance as new products are added</li>
    </ul>
  </section>

  <div class="fk-cta">
    <h3>Start your free WooCommerce ALT text audit</h3>
    <p>Filikod is a free WordPress plugin. Install it in 60 seconds, get your ALT Quality Score immediately, and know exactly where your store stands before the EAA deadline.</p>
    <a href="https://wordpress.org/plugins/filikod/" class="fk-cta-btn" target="_blank" rel="noopener">
      Download Filikod for free
    </a>
  </div>

  <div class="fk-author">
    <div class="fk-author-avatar" aria-hidden="true">F</div>
    <div>
      <strong>Filikod Team</strong>
      WordPress plugin for ALT text audit and image accessibility. Built by a developer with dual expertise in WordPress and SEO.
    </div>
  </div>

</div>
```
		</div>
	</div>
</div></div></div></div><div class="vc_row wpb_row vc_row-fluid vc_custom_1771021855192"><div class="wpb_column vc_column_container vc_col-sm-4"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<h2>Frequently Asked Questions: WooCommerce Image ALT Text</h2>

		</div>
	</div>
</div></div></div><div class="wpb_column vc_column_container vc_col-sm-8"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="faq-container"><div class="faq-list"><div class="faq-item" id="how-do-i-add-alt-text-to-a-woocommerce-product-image"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="how-do-i-add-alt-text-to-a-woocommerce-product-image-reponse"><h3 class="faq-question-text">How do I add ALT text to a WooCommerce product image?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="how-do-i-add-alt-text-to-a-woocommerce-product-image-reponse" aria-hidden="true"><div class="faq-answer-content"><p>Go to your WordPress Media Library, click on the product image, and fill in the Alternative Text field on the right panel. You can also add ALT text directly from the product edit page by clicking on the product image. For stores with large catalogues, editing images one by one is not practical. A plugin like Filikod lets you audit and edit ALT text in bulk from a single dashboard without opening each image individually.</p>
</div></div></div><div class="faq-item" id="do-woocommerce-product-images-need-alt-text"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="do-woocommerce-product-images-need-alt-text-reponse"><h3 class="faq-question-text">Do WooCommerce product images need ALT text?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="do-woocommerce-product-images-need-alt-text-reponse" aria-hidden="true"><div class="faq-answer-content"><p>Yes. Every product image that conveys information about the product needs descriptive ALT text. This includes the main product image, gallery images, and variant shots. ALT text is required by WCAG 2.1 Success Criterion 1.1.1, which is the standard referenced by the European Accessibility Act. The only exception is purely decorative images such as background textures or separators, which should use an empty ALT attribute (&lt;code&gt;alt=&#8221;&#8221;&lt;/code&gt;).</p>
</div></div></div><div class="faq-item" id="what-is-the-difference-between-alt-text-and-image-description-in-woocommerce"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="what-is-the-difference-between-alt-text-and-image-description-in-woocommerce-reponse"><h3 class="faq-question-text">What is the difference between ALT text and image description in WooCommerce?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="what-is-the-difference-between-alt-text-and-image-description-in-woocommerce-reponse" aria-hidden="true"><div class="faq-answer-content"><p>ALT text is the &lt;code&gt;alt&lt;/code&gt; attribute on the HTML image tag. It is read by screen readers and indexed by search engines. It should be concise, typically under 125 characters, and describe the content or function of the image. The image description is a longer optional field in the WordPress Media Library that appears on the image attachment page. For SEO and accessibility, ALT text is what matters. The description field has no direct impact on either.</p>
</div></div></div><div class="faq-item" id="how-many-characters-should-alt-text-be-for-product-images"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="how-many-characters-should-alt-text-be-for-product-images-reponse"><h3 class="faq-question-text">How many characters should ALT text be for product images?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="how-many-characters-should-alt-text-be-for-product-images-reponse" aria-hidden="true"><div class="faq-answer-content"><p>Keep ALT text under 125 characters. Screen readers typically cut off after this length. For WooCommerce product images, a good ALT text is usually between 50 and 100 characters: enough to include the product name and one or two key attributes without padding. Avoid padding with keywords just to reach a length target.</p>
</div></div></div><div class="faq-item" id="do-logos-need-alt-text"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="do-logos-need-alt-text-reponse"><h3 class="faq-question-text">Do logos need ALT text?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="do-logos-need-alt-text-reponse" aria-hidden="true"><div class="faq-answer-content"><p>Yes. A logo is a functional image that conveys brand identity. It should have ALT text that includes the brand name, for example &lt;code&gt;Filikod logo&lt;/code&gt;. If the logo is also a link to the homepage, the ALT text should describe the destination: &lt;code&gt;Filikod &#8211; back to homepage&lt;/code&gt;. An empty ALT on a linked logo forces screen readers to announce the URL instead, which is a poor experience.</p>
</div></div></div><div class="faq-item" id="can-chatgpt-or-ai-write-alt-text-for-woocommerce-product-images"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="can-chatgpt-or-ai-write-alt-text-for-woocommerce-product-images-reponse"><h3 class="faq-question-text">Can ChatGPT or AI write ALT text for WooCommerce product images?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="can-chatgpt-or-ai-write-alt-text-for-woocommerce-product-images-reponse" aria-hidden="true"><div class="faq-answer-content"><p>AI tools can generate a useful baseline for ALT text, especially on large catalogues where manual writing is not feasible. The quality depends heavily on whether the AI can actually see the image and whether it has context about the product name, category, and brand. Auto-generated ALT text from filenames alone is rarely sufficient. The best results come from a workflow that combines AI generation with a quick human review, particularly for hero images and product variants where accuracy matters most.</p>
</div></div></div><div class="faq-item" id="why-is-alt-text-showing-instead-of-my-image-in-woocommerce"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="why-is-alt-text-showing-instead-of-my-image-in-woocommerce-reponse"><h3 class="faq-question-text">Why is ALT text showing instead of my image in WooCommerce?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="why-is-alt-text-showing-instead-of-my-image-in-woocommerce-reponse" aria-hidden="true"><div class="faq-answer-content"><p>This happens when an image fails to load. The browser displays the ALT attribute as fallback text so users still understand what the image was meant to show. It is not an ALT text problem. Check that the image file exists at the correct path, that your media library URLs are correct, and that there are no broken attachments after a migration or domain change.</p>
</div></div></div><div class="faq-item" id="do-you-need-alt-text-for-decorative-images"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="do-you-need-alt-text-for-decorative-images-reponse"><h3 class="faq-question-text">Do you need ALT text for decorative images?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="do-you-need-alt-text-for-decorative-images-reponse" aria-hidden="true"><div class="faq-answer-content"><p>No, but you need to explicitly mark them as decorative using an empty ALT attribute: &lt;code&gt;alt=&#8221;&#8221;&lt;/code&gt;. This tells screen readers to skip the image entirely. If you leave the ALT attribute out completely, screen readers may announce the filename instead. The distinction matters: a missing ALT is a WCAG failure, while an intentionally empty ALT is compliant for decorative images.</p>
</div></div></div></div></div></div></div></div></div>
</div><p>L’article <a href="https://filikod.com/woocommerce-image-seo-alt-text/">WooCommerce Image SEO: How to Write ALT Text That Sells (and Stays EAA-Compliant)</a> est apparu en premier sur <a href="https://filikod.com">Filikod</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WordPress Accessibility Plugin: How to Meet WCAG 2.1 (and Prepare for the EAA)</title>
		<link>https://filikod.com/wordpress-accessibility-plugin-wcag-2-1-eaa/</link>
		
		<dc:creator><![CDATA[adminLyode]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 23:02:16 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://filikod.com/?p=814</guid>

					<description><![CDATA[<p>Make your WordPress site WCAG 2.1 compliant before the EAA deadline. Audit missing ALT text, fix image accessibility issues, and avoid fines up to €500,000.</p>
<p>L’article <a href="https://filikod.com/wordpress-accessibility-plugin-wcag-2-1-eaa/">WordPress Accessibility Plugin: How to Meet WCAG 2.1 (and Prepare for the EAA)</a> est apparu en premier sur <a href="https://filikod.com">Filikod</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div data-vc-full-width="true" data-vc-full-width-temp="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_custom_1770924734750 vc_row-has-fill"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_row wpb_row vc_inner vc_row-fluid vc_row-o-equal-height vc_row-o-content-middle vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<h1 class="txtH1" style="text-align: left;">WordPress Accessibility Plugin: How to Meet WCAG 2.1 (and Prepare for the European Accessibility Act)</h1>

		</div>
	</div>

	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<p>Most WordPress sites are failing a basic WCAG 2.1 requirement they don&#8217;t even know about: image ALT text. Here&#8217;s how to audit your site, fix it, and stay compliant before the EAA deadline.</p>

		</div>
	</div>
<div class=" ubtn-ctn-inline anchor-link"><a class="ubtn-link ult-adjust-bottom-margin ubtn-inline ubtn-normal anchor-link" href="https://wordpress.org/plugins/filikod/" target="_blank" rel="noopener" ><button type="button" id="ubtn-4158"  class="ubtn ult-adjust-bottom-margin ult-responsive ubtn-normal ubtn-no-hover-bg  none  ubtn-inline   tooltip-69d990902a282"  data-hover="" data-border-color="" data-bg="#2E00D5" data-hover-bg="" data-border-hover="" data-shadow-hover="" data-shadow-click="none" data-shadow="" data-shd-shadow=""  data-ultimate-target='#ubtn-4158'  data-responsive-json-new='{"font-size":"desktop:16px;","line-height":""}'  style="font-weight:normal;border-radius:50px;border-width:0px;border-color:;border-style:solid;background: #2E00D5;color: #FFFFFF;"><span class="ubtn-hover" style="background-color:"></span><span class="ubtn-data ubtn-text " >Download Filikod for free</span></button></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-offset-1 vc_col-lg-5 vc_col-md-offset-1 vc_col-md-5 vc_col-xs-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div  class="wpb_single_image wpb_content_element vc_align_center  wpb_animate_when_almost_visible wpb_zoomIn zoomIn vc_custom_1772411325511">
		
		<figure class="wpb_wrapper vc_figure">
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img decoding="async" width="2560" height="2038" src="https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-scaled.png" class="vc_single_image-img attachment-full" alt="Edit missing alt text filikod" srcset="https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-scaled.png 2560w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-300x239.png 300w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-1024x815.png 1024w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-768x611.png 768w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-1536x1223.png 1536w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-2048x1630.png 2048w" sizes="(max-width: 2560px) 100vw, 2560px"  data-dt-location="https://filikod.com/home/edit-missing-alt-text-filikod/" /></div>
		</figure>
	</div>
</div></div></div></div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_raw_code wpb_raw_html wpb_content_element" >
		<div class="wpb_wrapper">
			<!-- ═══════════════════════════════════════════════════════════
     FILIKOD — BLOC 2 : CORPS DE L'ARTICLE
     À coller dans le bloc Raw HTML de WPBakery
═══════════════════════════════════════════════════════════ -->
 
<style>
/* ── Scope : tout préfixé .fk-art pour ne pas polluer le thème ── */
.fk-art {
  color: #2e3134;
  margin: 0 auto;
}
 
.fk-art p {
  margin: 0 0 20px;
  color: #444;
}
 
/* ── Table of contents ── */
.fk-toc {
  background: #f5f4ff;
  border-left: 4px solid #4c3af7;
  border-radius: 4px;
  padding: 22px 28px;
  margin: 0 0 48px;
}
.fk-toc-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #4c3af7;
  margin-bottom: 12px;
}
.fk-toc ol {
  padding-left: 20px;
  margin: 0;
}
.fk-toc li {
  margin-bottom: 6px;
  font-size: 14px;
}
.fk-toc a {
  color: #3b2fcf;
  text-decoration: none;
}
.fk-toc a:hover { text-decoration: underline; }
 
/* ── Headings ── */
.fk-art h2 {
  font-family: 'DM Sans', sans-serif;
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 700;
  color: #0d0d0d;
  margin: 52px 0 14px;
  padding-top: 10px;
  border-top: 1px solid #e0e0e0;
  line-height: 1.25;
}
.fk-art h3 {
  font-family: 'DM Sans', sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 32px 0 10px;
}
 
/* ── Callout boxes ── */
.fk-callout {
  border-radius: 6px;
  padding: 18px 22px;
  margin: 28px 0;
  font-size: 15px;
  line-height: 1.6;
}
.fk-callout-warning { background: #fff8e1; border-left: 4px solid #f59e0b; }
.fk-callout-tip     { background: #f0fdf4; border-left: 4px solid #22c55e; }
.fk-callout-info    { background: #f0eeff; border-left: 4px solid #4c3af7; }
.fk-callout strong {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  display: block;
  margin-bottom: 6px;
}
.fk-callout-warning strong { color: #92400e; }
.fk-callout-tip strong     { color: #15803d; }
.fk-callout-info strong    { color: #4c3af7; }
 
/* ── Tables ── */
.fk-table-wrap { overflow-x: auto; margin: 28px 0; border-radius: 6px; }
.fk-table-wrap table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  font-family: 'DM Sans', sans-serif;
}
.fk-table-wrap th {
  background: #1a1a1a;
  color: #fff;
  padding: 11px 14px;
  text-align: left;
  font-weight: 600;
  font-size: 13px;
}
.fk-table-wrap td {
  padding: 11px 14px;
  border-bottom: 1px solid #e8e8e8;
  vertical-align: top;
  color: #333;
}
.fk-table-wrap tr:nth-child(even) td { background: #f8f8f6; }
.fk-pass { color: #16a34a; font-weight: 700; }
.fk-fail { color: #dc2626; font-weight: 700; }
 
/* ── Inline code ── */
.fk-art code {
  font-family: 'Courier New', monospace;
  font-size: 13px;
  background: #f0eeff;
  color: #3b2fcf;
  padding: 2px 6px;
  border-radius: 3px;
}
 
/* ── Checklist ── */
.fk-checklist {
  list-style: none;
  padding: 0;
  margin: 16px 0 32px;
}
.fk-checklist li {
  font-size: 15px;
  padding: 11px 0 11px 40px;
  position: relative;
  border-bottom: 1px solid #f0f0f0;
  color: #333;
}
.fk-checklist li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 8px;
  width: 24px;
  height: 24px;
  background: #4c3af7;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
}
 
/* ── CTA block ── */
.fk-cta {
  background: linear-gradient(135deg, #1a0a5e 0%, #3b2fcf 100%);
  border-radius: 10px;
  padding: 40px 32px;
  text-align: center;
  margin: 48px 0;
}
.fk-cta h3 {
  color: #fff !important;
  border: none !important;
  margin: 0 0 10px !important;
  font-size: 22px !important;
}
.fk-cta p {
  color: rgba(255,255,255,.8) !important;
  font-size: 15px;
  margin-bottom: 22px;
}
.fk-cta-btn {
  display: inline-block;
  background: #fff;
  color: #3b2fcf !important;
  font-weight: 700;
  font-size: 15px;
  padding: 13px 30px;
  border-radius: 40px;
  text-decoration: none !important;
  transition: transform .15s, box-shadow .15s;
}
.fk-cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,.25);
}
 
/* ── Inline CTA (mid-text) ── */
.fk-inline-cta {
  background: #f5f4ff;
  border: 1px solid #c7c2f8;
  border-radius: 6px;
  padding: 16px 20px;
  font-size: 15px;
  margin: 28px 0;
  color: #2e3134;
}
.fk-inline-cta a { color: #4c3af7; font-weight: 600; }
 
/* ── Author card ── */
.fk-author {
  display: flex;
  gap: 16px;
  align-items: center;
  background: #f7f7f5;
  border-radius: 8px;
  padding: 20px;
  margin-top: 48px;
  font-size: 14px;
  color: #555;
  font-family: 'DM Sans', sans-serif;
}
.fk-author-avatar {
  width: 48px;
  height: 48px;
  min-width: 48px;
  background: #4c3af7;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: 18px;
}
.fk-author strong {
  display: block;
  color: #0d0d0d;
  font-size: 15px;
  margin-bottom: 3px;
}
</style>
 
<!-- ══════════════════════════════════════════
     ARTICLE BODY
══════════════════════════════════════════ -->
<div class="fk-art">
 
  <!-- TABLE OF CONTENTS -->
  <nav class="fk-toc" aria-label="Table of contents">
    <div class="fk-toc-label">In this guide</div>
    <ol>
      <li><a href="#fk-wcag">What is WCAG 2.1 and why does it apply to WordPress?</a></li>
      <li><a href="#fk-eaa">The European Accessibility Act: deadlines and fines</a></li>
      <li><a href="#fk-requirements">WCAG 2.1 ALT text requirements for images</a></li>
      <li><a href="#fk-mistakes">The 4 ALT text mistakes WordPress sites make</a></li>
      <li><a href="#fk-audit">How to audit image accessibility in WordPress</a></li>
      <li><a href="#fk-fix">How to fix ALT text at scale</a></li>
      <li><a href="#fk-checklist">WCAG 2.1 image accessibility checklist</a></li>
    </ol>
  </nav>
 
  <!-- ─── SECTION 1 ─── -->
  <section id="fk-wcag">
    <h2>What is WCAG 2.1 and why does it apply to WordPress?</h2>
 
    <p>The <strong>Web Content Accessibility Guidelines (WCAG) 2.1</strong>, published by the W3C, are the international standard for web accessibility. They define how to make digital content accessible to people with disabilities — including users who rely on screen readers, keyboard navigation, or assistive technologies.</p>
 
    <p>WCAG 2.1 is organized into three conformance levels: <strong>A</strong> (minimum), <strong>AA</strong> (standard), and <strong>AAA</strong> (enhanced). Most regulations, including the European Accessibility Act, require <strong>Level AA compliance</strong> at minimum.</p>
 
    <p>WordPress itself does not enforce WCAG compliance. The platform generates accessible markup where possible, but every theme, plugin, and piece of content you add can introduce accessibility issues — and <strong>image ALT text is the most common failure</strong> on WordPress sites, according to the <a href="https://webaim.org/projects/million/" target="_blank" rel="noopener">WebAIM Million report</a>.</p>
 
    <div class="fk-callout fk-callout-info">
      <strong>Key point</strong>
      WCAG 2.1 is not just a technical recommendation — it is the legal benchmark used by the EAA, the UK Equality Act, the US ADA, and most national accessibility laws. If you sell or provide services in the EU, compliance is mandatory.
    </div>
  </section>
 
  <!-- ─── SECTION 2 ─── -->
  <section id="fk-eaa">
    <h2>The European Accessibility Act: deadlines and fines</h2>
 
    <p>The <strong>European Accessibility Act (EAA)</strong> — Directive 2019/882 — entered into force in June 2025. It requires all digital products and services offered in the EU to meet accessibility standards aligned with WCAG 2.1 Level AA. This is not a voluntary guideline. It is a binding regulation.</p>
 
    <div class="fk-table-wrap">
      <table>
        <thead>
          <tr>
            <th>Timeline</th>
            <th>What it means for your WordPress site</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td><strong>June 2025</strong></td>
            <td>EAA entered into force. All new content published must be compliant.</td>
          </tr>
          <tr>
            <td><strong>Now → June 2030</strong></td>
            <td>Transition period. Existing content must be remediated before the deadline.</td>
          </tr>
          <tr>
            <td><strong>June 2030</strong></td>
            <td>Hard deadline. All content must be fully compliant. Fines apply from this date.</td>
          </tr>
        </tbody>
      </table>
    </div>
 
    <div class="fk-callout fk-callout-warning">
      <strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Fine exposure</strong>
      Fines for EAA non-compliance can reach up to <strong>€500,000</strong> depending on the EU member state. Non-compliant businesses also risk exclusion from public procurement.
    </div>
 
    <p><strong>Who is affected?</strong> Any business that sells products or provides services to EU users — including WooCommerce stores, service websites, SaaS platforms, and media sites. If your WordPress site is accessible to EU users, the EAA applies to you.</p>
  </section>
 
  <!-- ─── SECTION 3 ─── -->
  <section id="fk-requirements">
    <h2>WCAG 2.1 ALT text requirements for images</h2>
 
    <p>The core accessibility requirement for images is defined in <strong>WCAG 2.1 Success Criterion 1.1.1 — Non-text Content (Level A)</strong>: every non-decorative image must have a text alternative that conveys the same information or function.</p>
 
    <div class="fk-table-wrap">
      <table>
        <thead>
          <tr>
            <th>Image type</th>
            <th>Required ALT text</th>
            <th>WCAG status</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Informative image (product, diagram)</td>
            <td>Descriptive text explaining what the image shows</td>
            <td class="fk-pass">✓ Compliant</td>
          </tr>
          <tr>
            <td>Functional image (button, link icon)</td>
            <td>Text describing the action (e.g., "Search", "Go to homepage")</td>
            <td class="fk-pass">✓ Compliant</td>
          </tr>
          <tr>
            <td>Decorative image (background, separator)</td>
            <td>Empty ALT: <code>alt=""</code></td>
            <td class="fk-pass">✓ Compliant</td>
          </tr>
          <tr>
            <td>Image with no ALT attribute</td>
            <td>—</td>
            <td class="fk-fail">✗ Non-compliant</td>
          </tr>
          <tr>
            <td>Generic ALT ("image", "photo", "logo")</td>
            <td>—</td>
            <td class="fk-fail">✗ Non-compliant</td>
          </tr>
          <tr>
            <td>Filename as ALT (e.g., "IMG_4827.jpg")</td>
            <td>—</td>
            <td class="fk-fail">✗ Non-compliant</td>
          </tr>
        </tbody>
      </table>
    </div>
  </section>
 
  <!-- ─── SECTION 4 ─── -->
  <section id="fk-mistakes">
    <h2>The 4 ALT text mistakes WordPress sites make</h2>
 
    <p>Four patterns account for the vast majority of ALT text violations on WordPress. All four are undetectable without a dedicated audit — they are invisible to visual inspection.</p>
 
    <h3>1. Missing ALT text</h3>
    <p>Images uploaded without any ALT attribute. WordPress does not require ALT text before publication, so many media libraries accumulate hundreds of images with no text alternative. Screen readers will typically announce the filename — which is meaningless to users.</p>
 
    <h3>2. Generic ALT text</h3>
    <p>ALT attributes that use placeholder words: <code>"image"</code>, <code>"photo"</code>, <code>"banner"</code>, <code>"logo"</code>. These pass a basic presence check but fail WCAG 1.1.1 because they convey no meaningful information about the image content.</p>
 
    <h3>3. ALT text that is too short</h3>
    <p>A one-word ALT like <code>"cat"</code> or <code>"team"</code> technically exists but rarely conveys equivalent information. WCAG requires the text alternative to serve the same purpose as the image — a meaningful description is necessary for informative images.</p>
 
    <h3>4. Duplicated ALT text</h3>
    <p>Multiple images sharing the same ALT attribute — a common result of bulk uploads or template-based sites. Duplicated ALTs create confusion for screen reader users navigating by image, and signal low-quality content to search engines.</p>
 
    <div class="fk-callout fk-callout-tip">
      <strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Insight</strong>
      In a typical WordPress site with 100+ images, <strong>duplicated ALTs are often the largest category of issues</strong> — larger than missing ALTs. They are invisible to visual inspection and only revealed by a structured audit.
    </div>
  </section>
 
  <!-- MID-ARTICLE CTA -->
  <div class="fk-cta">
    <h3>How many images on your site are non-compliant?</h3>
    <p>Filikod scans your entire WordPress media library and gives you an ALT Quality Score in seconds — for free.</p>
    <a href="https://wordpress.org/plugins/filikod/" class="fk-cta-btn" target="_blank" rel="noopener">
      Audit my site for free →
    </a>
  </div>
 
  <!-- ─── SECTION 5 ─── -->
  <section id="fk-audit">
    <h2>How to audit image accessibility in WordPress</h2>
 
    <p>WordPress's native media library provides a way to edit individual ALT attributes, but <strong>no built-in audit tool</strong>. There is no way to see, at a glance, how many images are missing ALTs, which ones use generic text, or whether you have duplicates across your library.</p>
 
    <p>A dedicated <strong>WordPress accessibility plugin</strong> scans your entire media library and surfaces issues by category. A structured audit should classify every image across four dimensions:</p>
 
    <div class="fk-table-wrap">
      <table>
        <thead>
          <tr>
            <th>Issue type</th>
            <th>WCAG criterion</th>
            <th>Impact</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td><strong>Missing</strong> — no ALT attribute</td>
            <td>1.1.1 (Level A)</td>
            <td>Critical — screen reader announces filename</td>
          </tr>
          <tr>
            <td><strong>Generic</strong> — "image", "photo", etc.</td>
            <td>1.1.1 (Level A)</td>
            <td>High — no meaningful information conveyed</td>
          </tr>
          <tr>
            <td><strong>Too short</strong> — fewer than 4 characters</td>
            <td>1.1.1 (Level A)</td>
            <td>Medium — likely insufficient description</td>
          </tr>
          <tr>
            <td><strong>Duplicated</strong> — same ALT on multiple images</td>
            <td>1.1.1 (Level A)</td>
            <td>Medium — navigation confusion for assistive tech</td>
          </tr>
        </tbody>
      </table>
    </div>
 
    <div class="fk-inline-cta">
      Filikod is free to install. <a href="/alt-text-checker/">Start your audit now</a> — most WordPress sites complete their first audit in under two minutes.
    </div>
  </section>
 
  <!-- ─── SECTION 6 ─── -->
  <section id="fk-fix">
    <h2>How to fix ALT text at scale</h2>
 
    <p>Once you have identified which images are non-compliant, the challenge is remediation — especially on sites with hundreds or thousands of images. Manual correction is time-consuming and error-prone without the right workflow.</p>
 
    <h3>Option 1: Bulk inline editing</h3>
    <p>The most controlled approach: work through the audit results category by category — missing first, then generic, then duplicated — and write descriptive ALT text for each image. This produces the highest-quality results and is recommended for product photos, diagrams, and images of people.</p>
 
    <h3>Option 2: Automatic generation from filename</h3>
    <p>For sites with consistent file naming conventions, generating ALT text from the filename is a fast starting point. Filikod's <em>Automatic ALT Text Generation</em> setting strips file extensions and special characters to produce a basic ALT. Better than nothing — but review for accuracy before relying on it.</p>
 
    <h3>Option 3: AI-assisted generation</h3>
    <p>The most powerful approach: AI vision models analyze each image and generate a descriptive ALT text based on actual visual content. This is especially valuable for large media libraries where manual review is not feasible. <strong>Filikod's premium tier will offer AI-powered ALT generation</strong> as a key feature in the coming months.</p>
 
    <div class="fk-callout fk-callout-info">
      <strong>Best practice for WooCommerce</strong>
      Product images are among the most SEO-critical and accessibility-critical images on any WordPress site. Every product image should have a specific, descriptive ALT that includes the product name and a key characteristic — not just <code>"product image"</code> or the SKU.
    </div>
  </section>
 
  <!-- ─── SECTION 7 ─── -->
  <section id="fk-checklist">
    <h2>WCAG 2.1 image accessibility checklist for WordPress</h2>
 
    <p>Use this checklist to verify your WordPress site meets WCAG 2.1 Level AA for images before the EAA June 2030 deadline.</p>
 
    <ul class="fk-checklist" role="list">
      <li>All non-decorative images have an ALT attribute with meaningful descriptive text</li>
      <li>Decorative images use an empty ALT attribute (<code>alt=""</code>)</li>
      <li>No image uses a generic ALT value ("image", "photo", "banner", "icon")</li>
      <li>No image uses its filename as ALT text</li>
      <li>No two meaningful images share the same ALT attribute</li>
      <li>Functional images (buttons, links) have ALT text describing the action or destination</li>
      <li>Product images on WooCommerce include product name and key attribute in ALT text</li>
      <li>Infographics and charts have a text alternative that conveys the same data</li>
      <li>New images uploaded after June 2025 are compliant at the time of upload</li>
      <li>A structured audit has been run on the full media library — not just recent uploads</li>
    </ul>
  </section>
 
  <!-- FINAL CTA -->
  <div class="fk-cta">
    <h3>Start your free ALT text audit today</h3>
    <p>Filikod is a free WordPress plugin. Install it in 60 seconds, get your ALT Quality Score immediately, and know exactly where you stand before the EAA deadline.</p>
    <a href="https://wordpress.org/plugins/filikod/" class="fk-cta-btn" target="_blank" rel="noopener">
      Download Filikod for free →
    </a>
  </div>
 
  <!-- AUTHOR -->
  <div class="fk-author">
    <div class="fk-author-avatar" aria-hidden="true">F</div>
    <div>
      <strong>Filikod Team</strong>
      WordPress plugin for ALT text audit and image accessibility. Built by a developer with dual expertise in WordPress and SEO.
    </div>
  </div>
 
</div>
<!-- end .fk-art -->
		</div>
	</div>
</div></div></div></div><div class="vc_row wpb_row vc_row-fluid vc_custom_1771021855192"><div class="wpb_column vc_column_container vc_col-sm-4"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<h2>Frequently Asked Questions wcag 2.1 &amp; EAA alt text</h2>

		</div>
	</div>
</div></div></div><div class="wpb_column vc_column_container vc_col-sm-8"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="faq-container"><div class="faq-list"><div class="faq-item" id="what-does-wcag-2-1-say-about-alt-text-for-images"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="what-does-wcag-2-1-say-about-alt-text-for-images-reponse"><h3 class="faq-question-text">What does WCAG 2.1 say about ALT text for images?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="what-does-wcag-2-1-say-about-alt-text-for-images-reponse" aria-hidden="true"><div class="faq-answer-content"><p>WCAG 2.1 Success Criterion 1.1.1 (Non-text Content, Level A) requires that all non-decorative images have a text alternative that serves the equivalent purpose. Missing, generic (&#8220;image&#8221;, &#8220;photo&#8221;), or duplicated ALT attributes are all non-compliant even if the ALT attribute technically exists.</p>
</div></div></div><div class="faq-item" id="how-do-i-audit-alt-text-across-my-entire-wordpress-media-library"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="how-do-i-audit-alt-text-across-my-entire-wordpress-media-library-reponse"><h3 class="faq-question-text">How do I audit ALT text across my entire WordPress media library?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="how-do-i-audit-alt-text-across-my-entire-wordpress-media-library-reponse" aria-hidden="true"><div class="faq-answer-content"><p>WordPress&#8217;s native media library has no audit functionality. You need a dedicated WordPress accessibility plugin like Filikod, which scans your full media library, classifies issues by type (missing, generic, too short, duplicated), and gives you an ALT Quality Score you can act on directly from your WordPress admin.</p>
</div></div></div><div class="faq-item" id="what-are-the-fines-for-eaa-non-compliance"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="what-are-the-fines-for-eaa-non-compliance-reponse"><h3 class="faq-question-text">What are the fines for EAA non-compliance?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="what-are-the-fines-for-eaa-non-compliance-reponse" aria-hidden="true"><div class="faq-answer-content"><p>Fines vary by EU member state and can reach up to €500,000 depending on the severity of non-compliance. Beyond financial penalties, non-compliant businesses may also be excluded from public procurement contracts.</p>
</div></div></div><div class="faq-item" id="does-fixing-alt-text-also-improve-my-seo"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="does-fixing-alt-text-also-improve-my-seo-reponse"><h3 class="faq-question-text">Does fixing ALT text also improve my SEO?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="does-fixing-alt-text-also-improve-my-seo-reponse" aria-hidden="true"><div class="faq-answer-content"><p>Yes. Google uses ALT text to understand image content and index images in Google Images, which accounts for over 20% of all web searches. Well-written ALT text improves your visibility in image search results while simultaneously improving accessibility a dual benefit from a single action.</p>
</div></div></div><div class="faq-item" id="does-the-european-accessibility-act-apply-to-my-wordpress-site"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="does-the-european-accessibility-act-apply-to-my-wordpress-site-reponse"><h3 class="faq-question-text">Does the European Accessibility Act apply to my WordPress site?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="does-the-european-accessibility-act-apply-to-my-wordpress-site-reponse" aria-hidden="true"><div class="faq-answer-content"><p>Yes, if your site provides services or sells products accessible to EU users. This includes WooCommerce stores, service websites, SaaS platforms, and media sites. New content published after June 2025 must already comply. Existing content has until June 2030 to be remediated.</p>
</div></div></div></div></div></div></div></div></div>
</div><p>L’article <a href="https://filikod.com/wordpress-accessibility-plugin-wcag-2-1-eaa/">WordPress Accessibility Plugin: How to Meet WCAG 2.1 (and Prepare for the EAA)</a> est apparu en premier sur <a href="https://filikod.com">Filikod</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Is Alt Text Important for SEO? What WordPress Users Need to Know (2026)</title>
		<link>https://filikod.com/is-alt-text-important-for-seo/</link>
		
		<dc:creator><![CDATA[adminLyode]]></dc:creator>
		<pubDate>Fri, 13 Mar 2026 15:40:29 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://filikod.com/?p=800</guid>

					<description><![CDATA[<p>Yes, alt text affects SEO but not the way most WordPress users think. Here is what Google actually uses alt text for, and how to audit yours in minutes.</p>
<p>L’article <a href="https://filikod.com/is-alt-text-important-for-seo/">Is Alt Text Important for SEO? What WordPress Users Need to Know (2026)</a> est apparu en premier sur <a href="https://filikod.com">Filikod</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div data-vc-full-width="true" data-vc-full-width-temp="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_custom_1770924734750 vc_row-has-fill"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_row wpb_row vc_inner vc_row-fluid vc_row-o-equal-height vc_row-o-content-middle vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<h1 class="txtH1" style="text-align: left;">Is Alt Text Important for SEO? What WordPress Users Need to Know</h1>

		</div>
	</div>

	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<p>Yes! alt text matters for SEO. But most WordPress users either ignore it completely or optimize it the wrong way. Alt text is not just a checkbox for accessibility. It is one of the few on-page SEO signals you can improve in bulk, directly inside WordPress, without touching a single line of code. This guide covers exactly what Google does with alt text, where the real SEO impact lies, and how to audit your entire media library in minutes.</p>

		</div>
	</div>
<div class=" ubtn-ctn-inline anchor-link"><a class="ubtn-link ult-adjust-bottom-margin ubtn-inline ubtn-normal anchor-link" href="https://wordpress.org/plugins/filikod/" target="_blank" rel="noopener" ><button type="button" id="ubtn-8796"  class="ubtn ult-adjust-bottom-margin ult-responsive ubtn-normal ubtn-no-hover-bg  none  ubtn-inline   tooltip-69d9909036185"  data-hover="" data-border-color="" data-bg="#2E00D5" data-hover-bg="" data-border-hover="" data-shadow-hover="" data-shadow-click="none" data-shadow="" data-shd-shadow=""  data-ultimate-target='#ubtn-8796'  data-responsive-json-new='{"font-size":"desktop:16px;","line-height":""}'  style="font-weight:normal;border-radius:50px;border-width:0px;border-color:;border-style:solid;background: #2E00D5;color: #FFFFFF;"><span class="ubtn-hover" style="background-color:"></span><span class="ubtn-data ubtn-text " >Download Filikod for free</span></button></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-offset-1 vc_col-lg-5 vc_col-md-offset-1 vc_col-md-5 vc_col-xs-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div  class="wpb_single_image wpb_content_element vc_align_center  wpb_animate_when_almost_visible wpb_zoomIn zoomIn vc_custom_1772411325511">
		
		<figure class="wpb_wrapper vc_figure">
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img decoding="async" width="2560" height="2038" src="https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-scaled.png" class="vc_single_image-img attachment-full" alt="Edit missing alt text filikod" srcset="https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-scaled.png 2560w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-300x239.png 300w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-1024x815.png 1024w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-768x611.png 768w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-1536x1223.png 1536w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-2048x1630.png 2048w" sizes="(max-width: 2560px) 100vw, 2560px"  data-dt-location="https://filikod.com/home/edit-missing-alt-text-filikod/" /></div>
		</figure>
	</div>
</div></div></div></div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_raw_code wpb_raw_html wpb_content_element" >
		<div class="wpb_wrapper">
			  <style>
    /* ===== COMPOSANTS UNIQUEMENT - pas de h2/h3/max-width ===== */
 
    .fk-art {
      font-family: 'DM Sans', sans-serif;
      color: #2e3134;
      line-height: 1.75;
      font-size: 17px;
    }
 
    .fk-art p {
      margin: 0 0 20px;
      color: #444;
    }
 
    .fk-art strong { color: #2e3134; font-weight: 600; }
 
    /* INTRO */
    .fk-art-intro {
      font-size: 19px;
      line-height: 1.7;
      color: #555;
      margin-bottom: 52px;
      padding-bottom: 52px;
      border-bottom: 1px solid #E8E4DC;
    }
 
    /* DIVIDER */
    .fk-divider {
      border: none;
      border-top: 1px solid #E8E4DC;
      margin: 52px 0;
    }
 
    /* TYPE LABEL */
    .fk-type-label {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: #2E00D5;
      display: block;
      margin: 52px 0 14px;
    }
 
    .fk-type-intro {
      font-size: 15px;
      color: #777;
      font-style: italic;
      margin: 0 0 16px;
    }
 
    /* GOOD / BAD COLS */
    .fk-two-cols {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin: 24px 0 36px;
    }
    .fk-col {
      padding: 24px 24px 20px;
      border-radius: 12px;
    }
    .fk-col-good {
      background: #F5F3FF;
      border: 1px solid #D6CEFF;
    }
    .fk-col-bad {
      background: #FFF8F5;
      border: 1px solid #F0D4C4;
    }
    .fk-col-title {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      margin-bottom: 14px;
    }
    .fk-col-good .fk-col-title { color: #2E00D5; }
    .fk-col-bad .fk-col-title { color: #B84A00; }
    .fk-col ul {
      margin: 0;
      padding: 0 0 0 16px;
      font-size: 15px;
      color: #444;
    }
    .fk-col ul li { margin-bottom: 7px; }
 
    /* CTA INLINE */
    .fk-inline-cta {
      background: #F5F3FF;
      border-radius: 10px;
      padding: 16px 22px;
      font-size: 15px;
      color: #2e3134;
      margin: 0 0 40px;
      line-height: 1.5;
    }
    .fk-inline-cta a {
      color: #2E00D5;
      font-weight: 600;
      text-decoration: none;
      border-bottom: 1px solid #C3B8F4;
      transition: border-color 0.2s;
    }
    .fk-inline-cta a:hover { border-color: #2E00D5; }
 
    /* COMPARE ROWS */
    .fk-compare {
      border: 1px solid #E8E4DC;
      border-radius: 12px;
      overflow: hidden;
      margin: 16px 0 24px;
    }
    .fk-compare-row {
      display: grid;
      grid-template-columns: 140px 1fr;
      border-bottom: 1px solid #E8E4DC;
    }
    .fk-compare-row:last-child { border-bottom: none; }
    .fk-compare-label {
      padding: 13px 16px;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.5px;
      display: flex;
      align-items: center;
      gap: 7px;
      background: #FAFAFA;
      border-right: 1px solid #E8E4DC;
    }
    .fk-compare-value {
      padding: 13px 18px;
      font-size: 15px;
      color: #444;
      display: flex;
      align-items: center;
      line-height: 1.4;
      background: #fff;
    }
    .fk-compare-row.is-good .fk-compare-label { background: #F5F3FF; color: #2E00D5; }
    .fk-compare-row.is-good .fk-compare-value { background: #F9F8FF; color: #2e3134; font-weight: 500; }
    .fk-compare-row.is-bad .fk-compare-label { color: #B84A00; }
    .fk-compare-row.is-best .fk-compare-label { background: #2E00D5; color: #fff; }
    .fk-compare-row.is-best .fk-compare-value { background: #F0EDFF; color: #2e3134; font-weight: 600; }
    .fk-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
    .is-good .fk-dot { background: #2E00D5; }
    .is-bad .fk-dot { background: #D08060; }
    .is-best .fk-dot { background: #fff; }
 
    /* NOTE */
    .fk-note {
      background: #FFFBF0;
      border-left: 3px solid #F0C040;
      border-radius: 0 8px 8px 0;
      padding: 14px 18px;
      font-size: 14px;
      color: #555;
      margin: 12px 0 20px;
      line-height: 1.6;
    }
 
    /* MISTAKES */
    .fk-mistake {
      padding: 28px 0;
      border-bottom: 1px solid #E8E4DC;
    }
    .fk-mistake:last-child { border-bottom: none; }
    .fk-mistake-head {
      display: flex;
      align-items: flex-start;
      gap: 14px;
      margin-bottom: 14px;
    }
    .fk-mistake-num {
      font-family: 'DM Serif Text', serif;
      font-size: 32px;
      line-height: 1;
      color: #E8E4DC;
      flex-shrink: 0;
      margin-top: -4px;
    }
    .fk-mistake-title {
      font-size: 18px;
      font-weight: 600;
      color: #2e3134;
      line-height: 1.3;
      padding-top: 4px;
    }
 
    /* QUICK REF TABLE */
    .fk-reftable {
      width: 100%;
      border-collapse: collapse;
      margin: 20px 0 40px;
      font-size: 15px;
    }
    .fk-reftable thead tr { border-bottom: 2px solid #2e3134; }
    .fk-reftable thead th {
      padding: 10px 0;
      text-align: left;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: #999;
    }
    .fk-reftable thead th:last-child { padding-left: 20px; }
    .fk-reftable tbody td {
      padding: 12px 0;
      border-bottom: 1px solid #E8E4DC;
      vertical-align: middle;
      color: #444;
    }
    .fk-reftable tbody td:last-child {
      padding-left: 20px;
    }
    .fk-reftable tbody tr:last-child td { border-bottom: none; }
 
    /* STEPS */
    .fk-steps {
      list-style: none;
      margin: 24px 0 32px;
      padding: 0;
      counter-reset: fk-step;
    }
    .fk-steps li {
      counter-increment: fk-step;
      display: flex;
      gap: 18px;
      margin-bottom: 18px;
      font-size: 16px;
      color: #444;
      line-height: 1.5;
      align-items: flex-start;
    }
    .fk-steps li::before {
      content: counter(fk-step);
      font-family: 'DM Serif Text', serif;
      font-size: 22px;
      color: #2E00D5;
      line-height: 1;
      flex-shrink: 0;
      min-width: 22px;
      margin-top: 1px;
    }
 
    /* STAT BLOCK */
    .fk-stat-block {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 12px;
      margin: 28px 0 36px;
    }
    .fk-stat {
      background: #F5F3FF;
      border: 1px solid #D6CEFF;
      border-radius: 12px;
      padding: 22px 20px 18px;
      text-align: center;
    }
    .fk-stat-number {
      font-family: 'DM Serif Text', serif;
      font-size: 36px;
      color: #2E00D5;
      line-height: 1;
      display: block;
      margin-bottom: 8px;
    }
    .fk-stat-label {
      font-size: 13px;
      color: #666;
      line-height: 1.4;
    }
 
    /* INTERNAL LINKS */
    .fk-links {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin: 28px 0;
    }
    .fk-links a {
      font-size: 14px;
      font-weight: 600;
      color: #2E00D5;
      text-decoration: none;
      border: 1.5px solid #D6CEFF;
      border-radius: 50px;
      padding: 8px 18px;
      transition: background 0.2s, border-color 0.2s;
    }
    .fk-links a:hover { background: #F5F3FF; border-color: #2E00D5; }
 
    /* FOOTER CTA */
    .fk-art-cta {
      background: #2E00D5;
      border-radius: 20px;
      padding: 44px 48px;
      margin-top: 64px;
      text-align: center;
    }
    .fk-art-cta .fk-cta-eyebrow {
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: #C3B8F4;
      margin: 0 0 12px;
    }
    .fk-art-cta .fk-cta-title {
      font-family: 'DM Serif Text', serif;
      font-size: 30px;
      font-weight: 400;
      color: #fff;
      margin: 0 0 10px;
      display: block;
    }
    .fk-art-cta .fk-cta-sub {
      font-size: 15px;
      color: rgba(255,255,255,0.65);
      margin: 0 0 28px;
    }
    .fk-art-cta a {
      display: inline-block;
      background: #fff;
      color: #2E00D5;
      font-family: 'DM Sans', sans-serif;
      font-weight: 700;
      font-size: 15px;
      text-decoration: none;
      padding: 13px 30px;
      border-radius: 50px;
      transition: background 0.2s;
    }
    .fk-art-cta a:hover { background: #FFE4CB; color: #2e3134; }
 
    @media (max-width: 600px) {
      .fk-two-cols { grid-template-columns: 1fr; }
      .fk-stat-block { grid-template-columns: 1fr; }
      .fk-compare-row { grid-template-columns: 110px 1fr; }
      .fk-art-cta { padding: 32px 24px; }
      .fk-links { flex-direction: column; }
    }
  </style>
</head>
<body>
 
<div class="fk-art">
 
  <p class="fk-art-intro">
    Yes — alt text matters for SEO. But most WordPress users either ignore it completely or optimize it the wrong way. Alt text is not just a checkbox for accessibility. It is one of the few on-page SEO signals you can improve in bulk, directly inside WordPress, without touching a single line of code. This guide covers exactly what Google does with alt text, where the real SEO impact lies, and how to audit your entire media library in minutes.
  </p>
 
  <h2>The Short Answer</h2>
  <p>Alt text — the <code>alt</code> attribute on your image tags — does three things that directly affect your site's performance in search:</p>
 
  <div class="fk-two-cols">
    <div class="fk-col fk-col-good">
      <div class="fk-col-title">What alt text does for SEO</div>
      <ul>
        <li>Helps Google understand what an image shows</li>
        <li>Enables your images to rank in Google Images</li>
        <li>Reinforces the topical relevance of your page</li>
        <li>Satisfies WCAG 2.1 accessibility requirements</li>
      </ul>
    </div>
    <div class="fk-col fk-col-bad">
      <div class="fk-col-title">What alt text does NOT do</div>
      <ul>
        <li>It does not directly boost your page's Google ranking</li>
        <li>It is not a replacement for quality content</li>
        <li>Stuffing keywords in alt text can trigger a penalty</li>
        <li>It does not compensate for slow loading images</li>
      </ul>
    </div>
  </div>
 
  <p>The nuance matters. Alt text is a signal, not a lever. Used correctly, it unlocks image search traffic and strengthens topical clarity. Used incorrectly, it creates accessibility failures and signals keyword stuffing to Google.</p>
 
  <hr class="fk-divider">
 
  <h2>Why Google Actually Cares About Alt Text</h2>
 
  <p>Google's crawlers cannot interpret images the way a human can. They rely on surrounding text, the page context, the filename, and especially the <code>alt</code> attribute to understand what an image represents. In Google's own documentation on image SEO, alt text is listed as a primary signal for image indexing.</p>
 
  <p>This matters more than most site owners realize because image search is not a niche channel.</p>
 
  <div class="fk-stat-block">
    <div class="fk-stat">
      <span class="fk-stat-number">20%+</span>
      <span class="fk-stat-label">of all Google searches happen in Google Images</span>
    </div>
    <div class="fk-stat">
      <span class="fk-stat-number">4.6M</span>
      <span class="fk-stat-label">WooCommerce stores with product images competing for image search visibility</span>
    </div>
    <div class="fk-stat">
      <span class="fk-stat-number">~60%</span>
      <span class="fk-stat-label">of WordPress images have missing, generic, or duplicated alt text (WebAIM 2024)</span>
    </div>
  </div>
 
  <p>For a WordPress site with hundreds of images, poor alt text is not just an accessibility gap. It is a measurable loss of image search traffic that your competitors may already be capturing.</p>
 
  <div class="fk-inline-cta">
    Not sure where your site stands? <a href="/alt-text-checker/">Run a free ALT audit with Filikod</a> no account required, results in seconds.
  </div>
 
  <hr class="fk-divider">
 
  <h2>The 4 Alt Text Issues That Actually Hurt SEO</h2>
 
  <p>Not all alt text problems have the same impact. Here is how each issue affects your search visibility.</p>
 
  <div class="fk-mistake">
    <div class="fk-mistake-head">
      <span class="fk-mistake-num">01</span>
      <span class="fk-mistake-title">Missing alt text — your images are invisible to Google</span>
    </div>
    <p>When the <code>alt</code> attribute is absent, Google has no textual signal to associate with the image. The image may still appear in search results based on filename and surrounding content but it will rank far below images with proper alt text. Missing alt text is also a WCAG 2.1 Level A failure, which means your site does not meet the baseline accessibility standard required by the European Accessibility Act (June 2025).</p>
    <div class="fk-compare">
      <div class="fk-compare-row is-bad">
        <div class="fk-compare-label"><span class="fk-dot"></span> Missing</div>
        <div class="fk-compare-value"><em style="color:#aaa">(no alt attribute at all Google gets no signal)</em></div>
      </div>
      <div class="fk-compare-row is-best">
        <div class="fk-compare-label"><span class="fk-dot"></span> Correct</div>
        <div class="fk-compare-value">Navy blue ceramic coffee mug, 350ml</div>
      </div>
    </div>
  </div>
 
  <div class="fk-mistake">
    <div class="fk-mistake-head">
      <span class="fk-mistake-num">02</span>
      <span class="fk-mistake-title">Generic alt text — worse than it looks</span>
    </div>
    <p>Generic alt text ("image", "photo", "logo", "icon") provides a signal — but a useless one. It tells Google the file type, not the content. More importantly, generic alt text is technically present, which means your site will not flag it as "missing." It hides the problem while leaving the SEO value on the table. Filikod specifically detects generic alt text in a dedicated audit tab, separate from missing alt text.</p>
    <div class="fk-compare">
      <div class="fk-compare-row is-bad">
        <div class="fk-compare-label"><span class="fk-dot"></span> Generic</div>
        <div class="fk-compare-value">image</div>
      </div>
      <div class="fk-compare-row is-bad">
        <div class="fk-compare-label"><span class="fk-dot"></span> Generic</div>
        <div class="fk-compare-value">photo</div>
      </div>
      <div class="fk-compare-row is-best">
        <div class="fk-compare-label"><span class="fk-dot"></span> Descriptive</div>
        <div class="fk-compare-value">WordPress dashboard showing ALT Quality Score in Filikod plugin</div>
      </div>
    </div>
  </div>
 
  <div class="fk-mistake">
    <div class="fk-mistake-head">
      <span class="fk-mistake-num">03</span>
      <span class="fk-mistake-title">Duplicated alt text — a silent SEO penalty</span>
    </div>
    <p>Duplicated alt text is the most underrated issue. It happens when multiple images share the same description common on e-commerce sites with product variants, or when alt text is auto-generated from a template without customization. From Google's perspective, duplicate alt text signals that your images are interchangeable and provides no additional information about any individual image.</p>
    <div class="fk-compare">
      <div class="fk-compare-row is-bad">
        <div class="fk-compare-label"><span class="fk-dot"></span> Duplicated</div>
        <div class="fk-compare-value">Men's running shoe — used on 12 different product images</div>
      </div>
      <div class="fk-compare-row is-good">
        <div class="fk-compare-label"><span class="fk-dot"></span> Distinct</div>
        <div class="fk-compare-value">Men's running shoe in black, side view</div>
      </div>
      <div class="fk-compare-row is-best">
        <div class="fk-compare-label"><span class="fk-dot"></span> Distinct</div>
        <div class="fk-compare-value">Men's running shoe in white, top view</div>
      </div>
    </div>
    <div class="fk-note">On a WooCommerce store with 500+ products and multiple images per product, duplicated alt text can affect hundreds of images simultaneously. Filikod's Duplicated tab shows all affected images grouped by identical alt text, so you can fix them systematically.</div>
  </div>
 
  <div class="fk-mistake">
    <div class="fk-mistake-head">
      <span class="fk-mistake-num">04</span>
      <span class="fk-mistake-title">Keyword stuffing — a direct Google signal violation</span>
    </div>
    <p>Alt text written for search engines instead of users is not a gray area. Google's image SEO guidelines explicitly state that alt text should describe the image for users, not list keywords. Stuffed alt text can suppress your image rankings and flag your page for over-optimization.</p>
    <div class="fk-compare">
      <div class="fk-compare-row is-bad">
        <div class="fk-compare-label"><span class="fk-dot"></span> Stuffed</div>
        <div class="fk-compare-value">WordPress SEO plugin alt text image SEO WordPress plugin audit</div>
      </div>
      <div class="fk-compare-row is-best">
        <div class="fk-compare-label"><span class="fk-dot"></span> Correct</div>
        <div class="fk-compare-value">Filikod plugin dashboard showing ALT Quality Score overview</div>
      </div>
    </div>
  </div>
 
  <hr class="fk-divider">
 
  <h2>Alt Text and the European Accessibility Act (2026)</h2>
 
  <p>Since June 2025, the European Accessibility Act requires digital content published in the EU to meet WCAG 2.1 Level AA. Alt text on images is an explicit requirement under Success Criterion 1.1.1.</p>
 
  <p>This changes the risk profile of alt text from an SEO optimization to a compliance obligation. Sites that fail to provide meaningful alt text for informational images are technically non-compliant, with fines that can reach €500,000 depending on jurisdiction. The deadline for existing content is June 2030.</p>
 
  <div class="fk-note">Even if your site is not based in the EU, your visitors may be. And search engines increasingly factor accessibility signals into their quality assessment. Fixing alt text in 2026 serves both purposes simultaneously.</div>
 
  <hr class="fk-divider">
 
  <h2>How to Write Alt Text That Helps SEO</h2>
 
  <p>The rule is simple: write for a person who cannot see the image, then check that it naturally includes the relevant context. If it reads like it was written for a search engine, rewrite it.</p>
 
  <table class="fk-reftable">
    <thead>
      <tr>
        <th>Image type</th>
        <th>SEO-optimized alt text pattern</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><strong>Product image</strong></td>
        <td>[Color] [Material] [Product name] [Key variant or size]</td>
      </tr>
      <tr>
        <td><strong>Blog post image</strong></td>
        <td>[What is shown] in context of [article topic]</td>
      </tr>
      <tr>
        <td><strong>Screenshot</strong></td>
        <td>[Software name] [screen/section] showing [key element]</td>
      </tr>
      <tr>
        <td><strong>Chart or graph</strong></td>
        <td>[Chart type] showing [metric] and [key result]</td>
      </tr>
      <tr>
        <td><strong>Logo (standalone)</strong></td>
        <td>[Brand name] logo</td>
      </tr>
      <tr>
        <td><strong>Logo (as link)</strong></td>
        <td>[Brand name] homepage</td>
      </tr>
      <tr>
        <td><strong>Decorative image</strong></td>
        <td>alt="" (empty, intentional — screen reader skips it)</td>
      </tr>
    </tbody>
  </table>
 
  <p>One practical rule: keep alt text under 125 characters. Screen readers often truncate longer strings, and search engines do not give additional weight to lengthy alt text.</p>
 
  <hr class="fk-divider">
 
  <h2>How to Audit Your WordPress Alt Text</h2>
 
  <p>Knowing the rules is step one. The harder part is identifying which of your existing images already have problems — and fixing them at scale. WordPress does not provide a native alt text audit. Most plugins that generate alt text automatically do not flag issues with existing alt text.</p>
 
  <p>Filikod was built specifically to solve this. It scans your entire media library and assigns an ALT Quality Score from 0 to 100, categorizing every image by issue type: missing, generic, duplicated, or too short.</p>
 
  <ol class="fk-steps">
    <li><strong>Install Filikod</strong> from the WordPress plugin directory it works on your existing media library without any setup.</li>
    <li><strong>Open the ALT Audit tab.</strong> You will see your images sorted by issue type. The score gives you an immediate benchmark.</li>
    <li><strong>Fix by priority.</strong> Start with Missing (hardest SEO impact), then Generic, then Duplicated. Edit directly inline no external tool or spreadsheet required.</li>
    <li><strong>Re-run the audit</strong> after fixing to confirm your score improved and no new issues were introduced.</li>
  </ol>
 
  <div class="fk-inline-cta">
    Filikod is free to install. <a href="/alt-text-checker/">Start your audit now</a> most WordPress sites complete their first audit in under two minutes.
  </div>
 
</div>
		</div>
	</div>
</div></div></div></div><div class="vc_row wpb_row vc_row-fluid vc_custom_1771021855192"><div class="wpb_column vc_column_container vc_col-sm-4"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<h2>Frequently Asked Questions Alt text SEO</h2>

		</div>
	</div>
</div></div></div><div class="wpb_column vc_column_container vc_col-sm-8"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="faq-container"><div class="faq-list"><div class="faq-item" id="does-missing-alt-text-directly-hurt-my-google-ranking"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="does-missing-alt-text-directly-hurt-my-google-ranking-reponse"><h3 class="faq-question-text">Does missing alt text directly hurt my Google ranking?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="does-missing-alt-text-directly-hurt-my-google-ranking-reponse" aria-hidden="true"><div class="faq-answer-content"><p>Not as a direct ranking penalty but missing alt text means your images are effectively invisible to search engines. You lose potential image search traffic, and the page loses an opportunity to reinforce its topical relevance. For image-heavy sites like e-commerce, the cumulative impact is significant.</p>
</div></div></div><div class="faq-item" id="is-alt-text-the-same-as-the-image-title-in-wordpress"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="is-alt-text-the-same-as-the-image-title-in-wordpress-reponse"><h3 class="faq-question-text">Is alt text the same as the image title in WordPress?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="is-alt-text-the-same-as-the-image-title-in-wordpress-reponse" aria-hidden="true"><div class="faq-answer-content"><p>No. WordPress has four image fields: alt text, title, caption, and description. Only the alt text is read by screen readers and used by Google as a primary image signal. The title attribute has minimal SEO value and is often recommended to be removed to avoid redundancy.</p>
</div></div></div><div class="faq-item" id="how-often-should-i-audit-my-alt-text"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="how-often-should-i-audit-my-alt-text-reponse"><h3 class="faq-question-text">How often should I audit my alt text?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="how-often-should-i-audit-my-alt-text-reponse" aria-hidden="true"><div class="faq-answer-content"><p>Run an audit when you first install Filikod to establish a baseline, then check again after any major content upload. If you run a WooCommerce store with regular product additions, a monthly audit cadence is practical.</p>
</div></div></div><div class="faq-item" id="can-i-use-the-same-alt-text-on-two-different-pages-if-the-image-is-the-same"><button class="faq-toggle" type="button" aria-expanded="false" aria-controls="can-i-use-the-same-alt-text-on-two-different-pages-if-the-image-is-the-same-reponse"><h3 class="faq-question-text">Can I use the same alt text on two different pages if the image is the same?</h3><span class="faq-icon" aria-hidden="true"><svg class="faq-chevron" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button><div class="faq-answer" id="can-i-use-the-same-alt-text-on-two-different-pages-if-the-image-is-the-same-reponse" aria-hidden="true"><div class="faq-answer-content"><p>Yes! if the same image appears in the same context. But if the image serves a different purpose on a different page, the alt text should reflect that context. The goal is always to describe what the image means in its specific context, not just what it shows in isolation.</p>
</div></div></div></div></div></div></div></div></div>
</div><p>L’article <a href="https://filikod.com/is-alt-text-important-for-seo/">Is Alt Text Important for SEO? What WordPress Users Need to Know (2026)</a> est apparu en premier sur <a href="https://filikod.com">Filikod</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Alt Text Examples: Good vs Bad (Templates for Every Image Type)</title>
		<link>https://filikod.com/alt-text-examples/</link>
		
		<dc:creator><![CDATA[adminLyode]]></dc:creator>
		<pubDate>Mon, 02 Mar 2026 00:27:36 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://filikod.com/?p=777</guid>

					<description><![CDATA[<p>See real alt text examples for every image type products, infographics, logos, decorative images and more. Copy the templates and stop guessing.</p>
<p>L’article <a href="https://filikod.com/alt-text-examples/">Alt Text Examples: Good vs Bad (Templates for Every Image Type)</a> est apparu en premier sur <a href="https://filikod.com">Filikod</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div data-vc-full-width="true" data-vc-full-width-temp="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_custom_1770924734750 vc_row-has-fill"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_row wpb_row vc_inner vc_row-fluid vc_row-o-equal-height vc_row-o-content-middle vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<h1 class="txtH1" style="text-align: left;">Alt Text Examples: Good vs Bad (Templates for Every Image Type)</h1>

		</div>
	</div>

	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<p>Managing alt text one image at a time works when your media library is small.<br />
Once your site has been running for a year or two, that approach stops being practical. A bulk alt text editor solves the problem at the scale where it actually exists.</p>

		</div>
	</div>
<div class=" ubtn-ctn-inline anchor-link"><a class="ubtn-link ult-adjust-bottom-margin ubtn-inline ubtn-normal anchor-link" href="https://wordpress.org/plugins/filikod/" target="_blank" rel="noopener" ><button type="button" id="ubtn-2857"  class="ubtn ult-adjust-bottom-margin ult-responsive ubtn-normal ubtn-no-hover-bg  none  ubtn-inline   tooltip-69d990903a6b5"  data-hover="" data-border-color="" data-bg="#2E00D5" data-hover-bg="" data-border-hover="" data-shadow-hover="" data-shadow-click="none" data-shadow="" data-shd-shadow=""  data-ultimate-target='#ubtn-2857'  data-responsive-json-new='{"font-size":"desktop:16px;","line-height":""}'  style="font-weight:normal;border-radius:50px;border-width:0px;border-color:;border-style:solid;background: #2E00D5;color: #FFFFFF;"><span class="ubtn-hover" style="background-color:"></span><span class="ubtn-data ubtn-text " >Download Filikod for free</span></button></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-offset-1 vc_col-lg-5 vc_col-md-offset-1 vc_col-md-5 vc_col-xs-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div  class="wpb_single_image wpb_content_element vc_align_center  wpb_animate_when_almost_visible wpb_zoomIn zoomIn vc_custom_1772411325511">
		
		<figure class="wpb_wrapper vc_figure">
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="2560" height="2038" src="https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-scaled.png" class="vc_single_image-img attachment-full" alt="Edit missing alt text filikod" srcset="https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-scaled.png 2560w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-300x239.png 300w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-1024x815.png 1024w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-768x611.png 768w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-1536x1223.png 1536w, https://filikod.com/wp-content/uploads/2026/02/edit-missing-alt-text-filikod-2048x1630.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px"  data-dt-location="https://filikod.com/home/edit-missing-alt-text-filikod/" /></div>
		</figure>
	</div>
</div></div></div></div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_raw_code wpb_raw_html wpb_content_element" >
		<div class="wpb_wrapper">
			<style>
/* ===== COMPOSANTS UNIQUEMENT - pas de h2/h3/max-width ===== */

.fk-art {
  font-family: 'DM Sans', sans-serif;
  color: #2e3134;
  line-height: 1.75;
  font-size: 17px;
}

.fk-art p {
  margin: 0 0 20px;
  color: #444;
}

.fk-art strong { color: #2e3134; font-weight: 600; }

/* INTRO */
.fk-art-intro {
  font-size: 19px;
  line-height: 1.7;
  color: #555;
  margin-bottom: 52px;
  padding-bottom: 52px;
  border-bottom: 1px solid #E8E4DC;
}

/* DIVIDER */
.fk-divider {
  border: none;
  border-top: 1px solid #E8E4DC;
  margin: 52px 0;
}

/* TYPE LABEL (remplace h3) */
.fk-type-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #2E00D5;
  display: block;
  margin: 52px 0 14px;
}

.fk-type-intro {
  font-size: 15px;
  color: #777;
  font-style: italic;
  margin: 0 0 16px;
}

/* GOOD / BAD COLS */
.fk-two-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 24px 0 36px;
}
.fk-col {
  padding: 24px 24px 20px;
  border-radius: 12px;
}
.fk-col-good {
  background: #F5F3FF;
  border: 1px solid #D6CEFF;
}
.fk-col-bad {
  background: #FFF8F5;
  border: 1px solid #F0D4C4;
}
.fk-col-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.fk-col-good .fk-col-title { color: #2E00D5; }
.fk-col-bad .fk-col-title { color: #B84A00; }
.fk-col ul {
  margin: 0;
  padding: 0 0 0 16px;
  font-size: 15px;
  color: #444;
}
.fk-col ul li { margin-bottom: 7px; }

/* CTA INLINE */
.fk-inline-cta {
  background: #F5F3FF;
  border-radius: 10px;
  padding: 16px 22px;
  font-size: 15px;
  color: #2e3134;
  margin: 0 0 40px;
  line-height: 1.5;
}
.fk-inline-cta a {
  color: #2E00D5;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid #C3B8F4;
  transition: border-color 0.2s;
}
.fk-inline-cta a:hover { border-color: #2E00D5; }

/* COMPARE ROWS */
.fk-compare {
  border: 1px solid #E8E4DC;
  border-radius: 12px;
  overflow: hidden;
  margin: 16px 0 24px;
}
.fk-compare-row {
  display: grid;
  grid-template-columns: 140px 1fr;
  border-bottom: 1px solid #E8E4DC;
}
.fk-compare-row:last-child { border-bottom: none; }
.fk-compare-label {
  padding: 13px 16px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  gap: 7px;
  background: #FAFAFA;
  border-right: 1px solid #E8E4DC;
}
.fk-compare-value {
  padding: 13px 18px;
  font-size: 15px;
  color: #444;
  display: flex;
  align-items: center;
  line-height: 1.4;
  background: #fff;
}
.fk-compare-row.is-good .fk-compare-label { background: #F5F3FF; color: #2E00D5; }
.fk-compare-row.is-good .fk-compare-value { background: #F9F8FF; color: #2e3134; font-weight: 500; }
.fk-compare-row.is-bad .fk-compare-label { color: #B84A00; }
.fk-compare-row.is-best .fk-compare-label { background: #2E00D5; color: #fff; }
.fk-compare-row.is-best .fk-compare-value { background: #F0EDFF; color: #2e3134; font-weight: 600; }
.fk-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.is-good .fk-dot { background: #2E00D5; }
.is-bad .fk-dot { background: #D08060; }
.is-best .fk-dot { background: #fff; }

/* TEMPLATE */
.fk-tpl {
  background: #F5F0E8;
  border-radius: 8px;
  padding: 13px 18px;
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.5;
}
.fk-tpl-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #999;
  display: block;
  margin-bottom: 5px;
}
.fk-tpl-content {
  font-family: 'Courier New', monospace;
  font-size: 14px;
  color: #2E00D5;
}

/* NOTE */
.fk-note {
  background: #FFFBF0;
  border-left: 3px solid #F0C040;
  border-radius: 0 8px 8px 0;
  padding: 14px 18px;
  font-size: 14px;
  color: #555;
  margin: 12px 0 20px;
  line-height: 1.6;
}

/* CODE */
.fk-code {
  background: #F5F0E8;
  border-radius: 8px;
  padding: 14px 18px;
  font-family: 'Courier New', monospace;
  font-size: 13px;
  color: #2E00D5;
  margin: 12px 0 24px;
  line-height: 1.7;
  overflow-x: auto;
}

/* MISTAKES */
.fk-mistake {
  padding: 28px 0;
  border-bottom: 1px solid #E8E4DC;
}
.fk-mistake:last-child { border-bottom: none; }
.fk-mistake-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 14px;
}
.fk-mistake-num {
  font-family: 'DM Serif Text', serif;
  font-size: 32px;
  line-height: 1;
  color: #E8E4DC;
  flex-shrink: 0;
  margin-top: -4px;
}
.fk-mistake-title {
  font-size: 18px;
  font-weight: 600;
  color: #2e3134;
  line-height: 1.3;
  padding-top: 4px;
}

/* QUICK REF TABLE */
.fk-reftable {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0 40px;
  font-size: 15px;
}
.fk-reftable thead tr { border-bottom: 2px solid #2e3134; }
.fk-reftable thead th {
  padding: 10px 0;
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #999;
}
.fk-reftable thead th:last-child { padding-left: 20px; }
.fk-reftable tbody td {
  padding: 12px 0;
  border-bottom: 1px solid #E8E4DC;
  vertical-align: middle;
  color: #444;
}
.fk-reftable tbody td:last-child {
  font-family: 'Courier New', monospace;
  font-size: 13px;
  color: #2E00D5;
  padding-left: 20px;
}
.fk-reftable tbody tr:last-child td { border-bottom: none; }

/* STEPS */
.fk-steps {
  list-style: none;
  margin: 24px 0 32px;
  padding: 0;
  counter-reset: fk-step;
}
.fk-steps li {
  counter-increment: fk-step;
  display: flex;
  gap: 18px;
  margin-bottom: 18px;
  font-size: 16px;
  color: #444;
  line-height: 1.5;
  align-items: flex-start;
}
.fk-steps li::before {
  content: counter(fk-step);
  font-family: 'DM Serif Text', serif;
  font-size: 22px;
  color: #2E00D5;
  line-height: 1;
  flex-shrink: 0;
  min-width: 22px;
  margin-top: 1px;
}

/* INTERNAL LINKS */
.fk-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 28px 0;
}
.fk-links a {
  font-size: 14px;
  font-weight: 600;
  color: #2E00D5;
  text-decoration: none;
  border: 1.5px solid #D6CEFF;
  border-radius: 50px;
  padding: 8px 18px;
  transition: background 0.2s, border-color 0.2s;
}
.fk-links a:hover { background: #F5F3FF; border-color: #2E00D5; }

/* FOOTER CTA */
.fk-art-cta {
  background: #2E00D5;
  border-radius: 20px;
  padding: 44px 48px;
  margin-top: 64px;
  text-align: center;
}
.fk-art-cta .fk-cta-eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #C3B8F4;
  margin: 0 0 12px;
}
.fk-art-cta .fk-cta-title {
  font-family: 'DM Serif Text', serif;
  font-size: 30px;
  font-weight: 400;
  color: #fff;
  margin: 0 0 10px;
  display: block;
}
.fk-art-cta .fk-cta-sub {
  font-size: 15px;
  color: rgba(255,255,255,0.65);
  margin: 0 0 28px;
}
.fk-art-cta a {
  display: inline-block;
  background: #fff;
  color: #2E00D5;
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  padding: 13px 30px;
  border-radius: 50px;
  transition: background 0.2s;
}
.fk-art-cta a:hover { background: #FFE4CB; color: #2e3134; }

@media (max-width: 600px) {
  .fk-two-cols { grid-template-columns: 1fr; }
  .fk-compare-row { grid-template-columns: 110px 1fr; }
  .fk-art-cta { padding: 32px 24px; }
  .fk-links { flex-direction: column; }
}
</style>

<div class="fk-art">

  <p class="fk-art-intro">
    Writing alt text sounds simple until you are staring at your 300th product image wondering what to type. Most guides tell you to "describe the image." That is not enough. The difference between good and bad alt text is specific, and it matters for both accessibility and SEO. This guide gives you concrete examples for every image type you will encounter, plus templates to copy directly into WordPress.
  </p>

  <h2>What Makes Alt Text Good or Bad?</h2>
  <p>Before the examples, here is the framework that applies to every image type on your site.</p>

  <div class="fk-two-cols">
    <div class="fk-col fk-col-good">
      <div class="fk-col-title">Good alt text</div>
      <ul>
        <li>Specific and descriptive</li>
        <li>Concise (under 125 characters)</li>
        <li>Contextual, relevant to the surrounding content</li>
        <li>Free of keyword stuffing</li>
        <li>Written for someone who cannot see the image</li>
      </ul>
    </div>
    <div class="fk-col fk-col-bad">
      <div class="fk-col-title">Bad alt text</div>
      <ul>
        <li>Generic ("image", "photo", "picture")</li>
        <li>Missing entirely</li>
        <li>Duplicated across multiple images</li>
        <li>Stuffed with keywords</li>
        <li>A copy of the image filename</li>
      </ul>
    </div>
  </div>

  <p>The most common mistakes are not about writing badly. They are about not writing at all, or writing the same thing for every image.</p>

  <h2>Alt Text Examples by Image Type</h2>

  <div class="fk-inline-cta">
    Want to see how many of these issues exist in your WordPress library? <a href="/alt-text-checker/">Run a free ALT audit with Filikod.</a>
  </div>

  <!-- TYPE 1 -->
  <h3>01. Product Images</h3>
  <p>Product images are the highest-stakes alt text in e-commerce. They directly affect image search rankings and accessibility for visually impaired shoppers.</p>
  <p class="fk-type-intro">Example image: a navy blue ceramic coffee mug with a handle, sitting on a wooden table.</p>

  <div class="fk-compare">
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Missing</div>
      <div class="fk-compare-value"><em style="color:#aaa">(empty)</em></div>
    </div>
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Generic</div>
      <div class="fk-compare-value">mug</div>
    </div>
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Filename</div>
      <div class="fk-compare-value">product-image-0034.jpg</div>
    </div>
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Stuffed</div>
      <div class="fk-compare-value">coffee mug ceramic buy cheap coffee mug online blue mug</div>
    </div>
    <div class="fk-compare-row is-good">
      <div class="fk-compare-label"><span class="fk-dot"></span> Good</div>
      <div class="fk-compare-value">Navy blue ceramic coffee mug with handle</div>
    </div>
    <div class="fk-compare-row is-best">
      <div class="fk-compare-label"><span class="fk-dot"></span> Best</div>
      <div class="fk-compare-value">Navy blue ceramic coffee mug with handle, 350ml</div>
    </div>
  </div>

  <div class="fk-tpl">
    <span class="fk-tpl-label">Template</span>
    <span class="fk-tpl-content">[Color] [Material] [Product name] [Key feature or variant]</span>
  </div>

  <!-- TYPE 2 -->
  <h3>02. Charts and Graphs</h3>
  <p>Images inside articles should reinforce the surrounding text. Include the key result or finding, not just what type of chart it is.</p>
  <p class="fk-type-intro">Example image: a bar chart comparing page load times before and after image optimization, dropping from 4.2s to 1.8s.</p>

  <div class="fk-compare">
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Generic</div>
      <div class="fk-compare-value">chart</div>
    </div>
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Too vague</div>
      <div class="fk-compare-value">page speed comparison</div>
    </div>
    <div class="fk-compare-row is-best">
      <div class="fk-compare-label"><span class="fk-dot"></span> Best</div>
      <div class="fk-compare-value">Bar chart showing page load time reduced from 4.2s to 1.8s after image optimization</div>
    </div>
  </div>

  <div class="fk-tpl">
    <span class="fk-tpl-label">Template</span>
    <span class="fk-tpl-content">[Chart type] showing [what is measured] [key result]</span>
  </div>

  <!-- TYPE 3 -->
  <h3>03. Infographics</h3>
  <p>Infographics are complex. You cannot describe every element. Summarize the core message in one sentence instead.</p>

  <div class="fk-compare">
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Generic</div>
      <div class="fk-compare-value">infographic</div>
    </div>
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Too long</div>
      <div class="fk-compare-value">Infographic showing step 1 describe the image step 2 be concise step 3 add context step 4 skip image of step 5 review</div>
    </div>
    <div class="fk-compare-row is-best">
      <div class="fk-compare-label"><span class="fk-dot"></span> Best</div>
      <div class="fk-compare-value">Infographic: 5 steps to write good alt text for images</div>
    </div>
  </div>

  <div class="fk-note">For complex infographics, add a full text version below the image. The alt text can then say: <em>"Infographic summarizing alt text best practices, full description below."</em></div>

  <!-- TYPE 4 -->
  <h3>04. People and Portraits</h3>
  <p>Describe who the person is and what they are doing, not their physical appearance unless it is directly relevant to the content.</p>
  <p class="fk-type-intro">Example image: a woman presenting slides at a conference on stage.</p>

  <div class="fk-compare">
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Generic</div>
      <div class="fk-compare-value">woman</div>
    </div>
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Off-topic</div>
      <div class="fk-compare-value">woman with brown hair in a blue blazer</div>
    </div>
    <div class="fk-compare-row is-good">
      <div class="fk-compare-label"><span class="fk-dot"></span> Good</div>
      <div class="fk-compare-value">Speaker presenting at a WordPress conference</div>
    </div>
    <div class="fk-compare-row is-best">
      <div class="fk-compare-label"><span class="fk-dot"></span> Best</div>
      <div class="fk-compare-value">Jane Smith presenting at WordCamp Paris 2025</div>
    </div>
  </div>

  <div class="fk-tpl">
    <span class="fk-tpl-label">Template</span>
    <span class="fk-tpl-content">[Person or role] [action] at [context or location]</span>
  </div>

  <!-- TYPE 5 -->
  <h3>05. Logos</h3>
  <p>Logos should identify the brand and nothing more. If the logo is inside a link, the alt text should describe the destination rather than the image itself.</p>

  <div class="fk-compare">
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Generic</div>
      <div class="fk-compare-value">logo</div>
    </div>
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Descriptive</div>
      <div class="fk-compare-value">blue circle with white W letter</div>
    </div>
    <div class="fk-compare-row is-good">
      <div class="fk-compare-label"><span class="fk-dot"></span> Standalone</div>
      <div class="fk-compare-value">WordPress logo</div>
    </div>
    <div class="fk-compare-row is-best">
      <div class="fk-compare-label"><span class="fk-dot"></span> As a link</div>
      <div class="fk-compare-value">Filikod homepage</div>
    </div>
  </div>

  <!-- TYPE 6 -->
  <h3>06. Decorative Images</h3>
  <p>Not every image needs alt text. Decorative images (backgrounds, dividers, aesthetic shapes) should have an <strong>empty alt attribute</strong> (<code>alt=""</code>), not missing alt text. The difference matters.</p>

  <div class="fk-two-cols">
    <div class="fk-col fk-col-bad">
      <div class="fk-col-title">Missing alt (wrong)</div>
      <ul>
        <li>Screen reader announces the filename</li>
        <li>Counted as an accessibility failure</li>
        <li>Flagged in Filikod's audit</li>
      </ul>
    </div>
    <div class="fk-col fk-col-good">
      <div class="fk-col-title">Empty alt="" (correct)</div>
      <ul>
        <li>Screen reader skips the image</li>
        <li>Intentional and fully valid</li>
        <li>Not flagged as an issue</li>
      </ul>
    </div>
  </div>

  <div class="fk-code">&lt;img src="background-wave.svg" alt=""&gt;</div>

  <!-- TYPE 7 -->
  <h3>07. Screenshots</h3>
  <p>Describe what the interface shows, not just that it is a screenshot. Include the software name and the key element visible.</p>

  <div class="fk-compare">
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Generic</div>
      <div class="fk-compare-value">screenshot</div>
    </div>
    <div class="fk-compare-row is-bad">
      <div class="fk-compare-label"><span class="fk-dot"></span> Too vague</div>
      <div class="fk-compare-value">WordPress settings</div>
    </div>
    <div class="fk-compare-row is-best">
      <div class="fk-compare-label"><span class="fk-dot"></span> Best</div>
      <div class="fk-compare-value">WordPress media library with the Alt Text field highlighted</div>
    </div>
  </div>

  <div class="fk-tpl">
    <span class="fk-tpl-label">Template</span>
    <span class="fk-tpl-content">[Software] [screen or section] showing [key element or action]</span>
  </div>

  <!-- TYPE 8 -->
  <h3>08. Icons</h3>
  <p>Icons with a visible text label: use <code>alt=""</code>. The label already provides the information. Icons used without any visible label need a descriptive alt.</p>

  <div class="fk-code">
&lt;!-- Icon next to a visible label --&gt;<br>
&lt;img src="search-icon.svg" alt=""&gt; &lt;span&gt;Search&lt;/span&gt;<br><br>
&lt;!-- Standalone icon, no label --&gt;<br>
&lt;img src="search-icon.svg" alt="Search"&gt;
  </div>

  <hr class="fk-divider">

  <h2>The Most Common Mistakes (And How to Fix Them)</h2>
  <div class="fk-mistake">
    <div class="fk-mistake-head">
      <span class="fk-mistake-num">01</span>
      <span class="fk-mistake-title">Starting with "Image of" or "Photo of"</span>
    </div>
    <p>Screen readers already announce that it is an image. Starting with "Image of" is redundant and wastes characters.</p>
    <div class="fk-compare">
      <div class="fk-compare-row is-bad">
        <div class="fk-compare-label"><span class="fk-dot"></span> Before</div>
        <div class="fk-compare-value">Image of a red apple</div>
      </div>
      <div class="fk-compare-row is-best">
        <div class="fk-compare-label"><span class="fk-dot"></span> After</div>
        <div class="fk-compare-value">Red apple on white background</div>
      </div>
    </div>
  </div>

  <div class="fk-mistake">
    <div class="fk-mistake-head">
      <span class="fk-mistake-num">02</span>
      <span class="fk-mistake-title">Using the image filename as alt text</span>
    </div>
    <p>This happens when alt text is auto-generated from the filename without cleanup. Filikod detects this automatically in the Generic issues tab.</p>
    <div class="fk-compare">
      <div class="fk-compare-row is-bad">
        <div class="fk-compare-label"><span class="fk-dot"></span> Before</div>
        <div class="fk-compare-value">product-photo-v2-final.png</div>
      </div>
      <div class="fk-compare-row is-best">
        <div class="fk-compare-label"><span class="fk-dot"></span> After</div>
        <div class="fk-compare-value">White ceramic vase with geometric pattern</div>
      </div>
    </div>
  </div>

  <div class="fk-mistake">
    <div class="fk-mistake-head">
      <span class="fk-mistake-num">03</span>
      <span class="fk-mistake-title">Duplicated alt text across multiple images</span>
    </div>
    <p>Very common on e-commerce sites with product variants. Each image needs a distinct description even if the product is the same.</p>
    <div class="fk-compare">
      <div class="fk-compare-row is-bad">
        <div class="fk-compare-label"><span class="fk-dot"></span> Front view</div>
        <div class="fk-compare-value">Men's shirt</div>
      </div>
      <div class="fk-compare-row is-bad">
        <div class="fk-compare-label"><span class="fk-dot"></span> Back view</div>
        <div class="fk-compare-value">Men's shirt</div>
      </div>
      <div class="fk-compare-row is-good">
        <div class="fk-compare-label"><span class="fk-dot"></span> Front view</div>
        <div class="fk-compare-value">Navy blue men's shirt, front view</div>
      </div>
      <div class="fk-compare-row is-best">
        <div class="fk-compare-label"><span class="fk-dot"></span> Back view</div>
        <div class="fk-compare-value">Navy blue men's shirt, back view</div>
      </div>
    </div>
  </div>

  <div class="fk-mistake">
    <div class="fk-mistake-head">
      <span class="fk-mistake-num">04</span>
      <span class="fk-mistake-title">Keyword stuffing</span>
    </div>
    <p>Alt text written for search engines instead of users creates an accessibility failure and can negatively impact SEO rankings.</p>
    <div class="fk-compare">
      <div class="fk-compare-row is-bad">
        <div class="fk-compare-label"><span class="fk-dot"></span> Before</div>
        <div class="fk-compare-value">WordPress plugin SEO alt text image optimization WordPress</div>
      </div>
      <div class="fk-compare-row is-best">
        <div class="fk-compare-label"><span class="fk-dot"></span> After</div>
        <div class="fk-compare-value">Filikod plugin dashboard showing ALT Quality Score</div>
      </div>
    </div>
  </div>

  <hr class="fk-divider">

  <h2>Quick Reference by Image Type</h2>
  <table class="fk-reftable">
    <thead>
      <tr>
        <th>Image type</th>
        <th>Template</th>
      </tr>
    </thead>
    <tbody>
      <tr><td><strong>Product</strong></td><td>[Color] [Material] [Product] [Key variant]</td></tr>
      <tr><td><strong>Chart</strong></td><td>[Chart type] showing [metric] [key result]</td></tr>
      <tr><td><strong>Infographic</strong></td><td>Infographic: [main topic in one sentence]</td></tr>
      <tr><td><strong>Person</strong></td><td>[Name or role] [action] at [context]</td></tr>
      <tr><td><strong>Logo</strong></td><td>[Brand name] logo</td></tr>
      <tr><td><strong>Screenshot</strong></td><td>[Software] [screen] showing [key element]</td></tr>
      <tr><td><strong>Decorative</strong></td><td>alt="" (empty, intentional)</td></tr>
      <tr><td><strong>Icon with label</strong></td><td>alt="" (label is already visible)</td></tr>
      <tr><td><strong>Icon without label</strong></td><td>[Action the icon represents]</td></tr>
    </tbody>
  </table>

  <h2>How to Audit Your Existing Alt Text</h2>
  <p>Writing good alt text going forward is only half the problem. Most WordPress sites already have hundreds of images with missing, generic, or duplicated alt text. Fixing them one by one is not realistic.</p>
  <p>The efficient approach:</p>

  <ol class="fk-steps">
    <li>Run an audit to identify which images have issues and what type (missing, generic, duplicated, too short)</li>
    <li>Prioritize by issue type: missing alt text first, then generic, then duplicated</li>
    <li>Use bulk editing to fix multiple images at once, filtered by issue type</li>
  </ol>

  <p>Filikod handles all of this directly inside WordPress. No export, no spreadsheet, no external tool required.</p>

  <div class="fk-links">
    <a href="/alt-text-checker/">Run your free ALT audit</a>
    <a href="/how-to-add-alt-text-to-images-in-wordpress/">How to add alt text in WordPress</a>
    <a href="/bulk-alt-text-in-wordpress/">Fix alt text in bulk</a>
  </div>

  <!-- FOOTER CTA -->
  <div class="fk-art-cta">
    <p class="fk-cta-eyebrow">Free WordPress plugin</p>
    <span class="fk-cta-title">Fix your alt text at scale</span>
    <p class="fk-cta-sub">Filikod gives you a free ALT Quality Score and bulk editing tools, directly inside WordPress.</p>
    <a href="/alt-text-checker/">Audit your media library for free</a>
  </div>

</div>
		</div>
	</div>
</div></div></div></div>
</div><p>L’article <a href="https://filikod.com/alt-text-examples/">Alt Text Examples: Good vs Bad (Templates for Every Image Type)</a> est apparu en premier sur <a href="https://filikod.com">Filikod</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
