Servers and browsers communicate with each other by sending bytes of data over the internet. If the server doesn't specify which character encoding format it's using when it sends an HTML file, the browser won't know what character each byte represents. The character encoding declaration specification solves this problem.
Theoretically, a late
<meta charset> element (one that is not fully contained in
the first 1024 bytes of the document) can also significantly affect load performance.
See Issue #10023.
How the Lighthouse
charset audit fails
Lighthouse flags pages that do not specify their character encoding:
Lighthouse considers the character encoding to be declared if it finds any of the following:
<meta charset>element in the
<head>of the document that is completely contained in the first 1024 bytes of the document
Content-TypeHTTP response header with a
charsetdirective that matches a valid IANA name
- A byte-order mark (BOM)
Each Best Practices audit is weighted equally in the Lighthouse Best Practices Score. Learn more in The Best Practices score.
How to pass the
<meta chartset> element to your HTML
<meta charset> element within the first 1024 bytes of your HTML document.
The element must be fully contained within the first 1024 bytes.
The best practice is to make the
<meta charset> element the first element in the
<head> of your document.
Content-Type HTTP response header
Configure your server to add a
HTTP response header that includes a
Content-Type: text/html; charset=UTF-8
- Charset declaration is missing or occurs too late in the HTML
- Example page that fails the audit (source)
- Character encoding
- IANA character set names