How to fix valid lang on WooCommerce

Add a valid BCP 47 language code to every `lang` attribute on your pages so assistive technologies can read content in the correct language.

Steps for WooCommerce

  1. The `lang` attribute on `<html>` is set by WordPress core, not WooCommerce itself — it reads from the site language setting.
  2. Go to WordPress admin → Settings → General → Site Language. Choose the correct language from the dropdown; WordPress will output the proper BCP 47 code automatically.
  3. If the `<html>` tag still shows an invalid value, open your active theme's `header.php` (or the root template file in a block theme: `templates/index.html`) and look for a hard-coded `lang=` attribute overriding the WordPress default. Replace it with `<?php language_attributes(); ?>` which outputs the correct value.
  4. For content in a second language, install the plugin 'Polylang' or 'WPML' and assign the correct language to each post/page — these plugins set `lang` on the `<html>` tag per page automatically.
  5. Save and verify with the axe browser extension.
Official WooCommerce documentation ↗
<html lang="en">
<!-- For a page in US English -->

<html lang="fr">
<!-- For a page primarily in French -->

<!-- Inline language switch for a passage in Spanish on an English page -->
<p lang="es">Bienvenido a nuestra tienda.</p>

<!-- Region-specific variant -->
<html lang="pt-BR">
<!-- Brazilian Portuguese -->

What is valid lang?

Every HTML page has a `lang` attribute on the `<html>` tag (e.g. `<html lang="en">`) that tells browsers and assistive technologies what language the page is written in. When a page contains a passage in a *different* language, that section should also carry its own `lang` attribute (e.g. `<p lang="fr">`). The value must be a valid BCP 47 language tag — a standardised code like `en`, `en-US`, `fr`, `de`, or `zh-Hans`. An empty, misspelled, or made-up value (such as `lang=""` or `lang="english"`) fails WCAG Success Criterion 3.1.2 (Language of Parts).

Screen readers like JAWS, NVDA, and VoiceOver automatically switch their text-to-speech voice and pronunciation rules based on the `lang` attribute. If the value is missing or invalid, the reader mispronounces words — sometimes so badly that the content becomes completely unintelligible to blind or low-vision shoppers. Beyond accessibility, WCAG 3.1.2 is a Level AA requirement, meaning failing it exposes your store to legal risk under laws such as the ADA in the US, the European Accessibility Act, and equivalent legislation elsewhere. Google also uses language signals to serve your pages to the right audiences, so correct `lang` values support your international SEO.

See the complete Valid lang guide for every platform and the full background.

Not sure if your WooCommerce store has this?

Run a free SEOLZ audit — we’ll find valid lang and every other issue across your whole site.

Scan my site free

Fix valid lang on another platform