---
title: "<html lang> missing or not a valid BCP 47 tag (seo/html-lang)"
description: "seo/html-lang: Screen readers, Bing, translation and agents use lang to process the text; an invalid tag is ignored."
canonical: https://void-design.vercel.app/rules/seo/html-lang
lastModified: 2026-09-16
---

# <html lang> missing or not a valid BCP 47 tag

`seo/html-lang` · severity **error** · category SEO · detected by `void seo` and `void audit`

## Why it matters

Screen readers, Bing, translation and agents use lang to process the text; an invalid tag is ignored.

## How to fix it

Set a valid BCP 47 tag on the root element (en, en-GB, pt-BR).

## Example

```tsx
// app/layout.tsx
export default function RootLayout({ children }: { children: React.ReactNode }) {
  return <html lang="en"><body>{children}</body></html>
}
```

## References

- https://www.w3.org/International/questions/qa-html-language-declarations

## More seo rules

`void seo` reports 60 rules in this category. What search engines need from the raw response: status codes, titles and descriptions in <head>, self-referencing canonicals, one h1, crawlable links, Open Graph, icons, robots.txt and a sitemap with real dates.

- `html-too-large` Uncompressed HTML is over Googlebot's 2 MB fetch limit — [seo/html-too-large](https://void-design.vercel.app/rules/seo/html-too-large)
- `rsc-payload-ratio` Inline RSC flight payload dominates the HTML — [seo/rsc-payload-ratio](https://void-design.vercel.app/rules/seo/rsc-payload-ratio)
- `not-https` Page served over plain HTTP — [seo/not-https](https://void-design.vercel.app/rules/seo/not-https)
- `origin-redirects` http:// or www/apex variant doesn't redirect to the canonical origin in one hop — [seo/origin-redirects](https://void-design.vercel.app/rules/seo/origin-redirects)
- `viewport` Viewport meta missing, not device-width, or blocks zoom — [seo/viewport](https://void-design.vercel.app/rules/seo/viewport)
- `charset` Character encoding not declared early — [seo/charset](https://void-design.vercel.app/rules/seo/charset)
- `title-missing` No single non-empty <title> in <head> — [seo/title-missing](https://void-design.vercel.app/rules/seo/title-missing)
- `title-length` Title length outside 10–60 characters, or keyword-stuffed — [seo/title-length](https://void-design.vercel.app/rules/seo/title-length)

Detected by `void seo` and `void audit`. Explain it in a terminal: `void rules seo/html-lang`
