Code
Properly defines charset
Verifies the presence and validity of the charset declaration, as it is crucial for ensuring proper text encoding and display across various browsers and devices.
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 audit works
Sitefig flags pages that do not specify their character encoding:
Lighthouse considers the character encoding to be declared if it finds any of the following:
-
A
<meta charset>
element in the<head>
of the document that is completely contained in the first 1024 bytes of the document -
A
Content-Type
HTTP response header with acharset
directive that matches a valid IANA name - A byte-order mark (BOM)
Fixing the problem
Add a <meta charset>
element to your HTML
Add a <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.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
…
Add a Content-Type
HTTP response header
Configure your server to add a
Content-Type
HTTP response header that includes a charset
directive.
Content-Type: text/html; charset=UTF-8