Đó Meta Charset Tag
Điều gì <meta charset="utf-8"> làm, vì sao đó HTML spec wants điều này trong đó đầu tiên 1024 bytes, cách một sai encoding gây ra mojibake, và vì sao đây là một kết xuất-correctness vấn đề thay vì một xếp hạng factor.
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này
- Công cụ trực tuyến liên quanHTTP Header Checker
Đó meta charset tag — <meta charset="utf-8"> — declares trang của bạn character encoding so các trình duyệt và các crawler turn thô bytes vào đó right characters. Đó HTML spec requires điều này trong đó đầu tiên 1024 bytes of đó document, và best practice là đó literal đầu tiên child of <head>. Nhận điều này sai (bị thiếu, muộn, hoặc một mismatched encoding) và bạn nhận mojibake: accented letters, curly quotes, em dashes, non-Latin scripts, và emoji render as garbage — mà có thể corrupt điều gì là displayed và được lập chỉ mục. Điều này không phải một trực tiếp xếp hạng factor; Google chỉ hướng dẫn là để 'dùng Unicode/UTF-8 nơi có thể.' UTF-8 là đó near-universal, spec-bắt buộc encoding cho HTML5 hôm nay. MỘT máy chủ-đã gửi Nội dung-Loại header charset overrides đó trong-trang tag, mà là một phổ biến nguồn of migration bugs. Này là một of đó trình duyệt-facing tags trong đó meta-tags cluster.
Tóm tắt — meta charset tag là một line của HTML —
Evidence for this claim For HTML documents, the charset declaration must identify UTF-8. Scope: Modern HTML conformance requirements. Confidence: high · Verified: WHATWG HTML: Character encoding declaration Evidence for this claim The complete character-encoding declaration must occur within the first 1024 bytes of the document. Scope: HTML serialization requirement intended to make encoding available early to parsers. Confidence: high · Verified: WHATWG HTML: Specifying the document's character encoding<meta charset="utf-8">— đó tells trình duyệt Cách đọc của bạn trang text. Nhận nó sai hoặc leave nó out và special characters (accents, curly quotes, emoji) có thể turn vào garbled nonsense. nó không help bạn xếp hạng, nhưng hỏng-looking text là bad cho mọi người, including Google. Put nó đầu tiên trong của bạn<head>và sử dụngutf-8. Đã xong.
Điều gì tag làm
mỗi trang web là stored as thô bytes. những điều đó bytes chỉ become letters bạn đọc sau khi điều gì đó decides mà character mỗi byte (hoặc group của bytes) represents. meta charset tag là Cách của bạn trang tells trình duyệt — và công cụ tìm kiếm các crawler — mà hệ thống để sử dụng:
<meta charset="utf-8">utf-8 là encoding bạn muốn trong gần như mỗi case. nó có thể represent essentially
mỗi character và script trong sử dụng hôm nay, plus emoji, all trong một hệ thống.
Điều gì goes sai không có nó
nếu bạn không declare encoding, trình duyệt có để guess. Khi nó guesses sai,
bạn nhận mojibake — garbled text nơi curly apostrophe becomes điều gì đó như
’, hoặc café hiển thị lên as café. Accented letters, em dashes, “smart” quotes,
non-Latin scripts (Arabic, Cyrillic, Chinese, Japanese), và emoji là thông thường
casualties. Đơn giản unaccented English có thể look fine ngay cả Khi encoding là sai,
mà là chính xác Vì sao bug sneaks qua.
nơi để put nó
Hai đơn giản rules:
- Put
<meta charset="utf-8">đầu tiên bên trong của bạn<head>, trước khi tiêu đề hoặc bất cứ điều gì khác. - sử dụng
utf-8, không some older encoding.
đó nó. phần lớn trang web templates và CMSs đã làm điều này cho bạn — nếu yours không, thêm nó.
Làm nó ảnh hưởng SEO?
không trực tiếp. charset tag là không xếp hạng factor. nhưng nếu sai encoding garbles của bạn text, đó hỏng nội dung là Điều gì người dùng see và Điều gì Google có thể end lên lập chỉ mục và cho thấy — so nó worth getting right mặc dù nó sẽ không move bạn lên kết quả by itself.
Muốn đó spec details — đó “first 1024 bytes” (bản dịch) «đầu tiên 1024 bytes» rule, vì sao đó old syntax vẫn hangs khoảng, và cách một máy chủ header có thể âm thầm override của bạn tag? Chuyển để đó Advanced tab.
kiểm tra declared encoding từ command line
Replace URL, sau đó so sánh phản hồi header với tag near bắt đầu của
HTML. charset trong HTTP Content-Type header takes precedence over
trong-document declaration.
url="https://example.com/"
curl -sSI "$url" | grep -i '^content-type:'
curl -sS "$url" | head -c 1024 | grep -oiE '<meta[^>]+charset[^>]*>'Trong trình duyệt console, điều này các báo cáo parsed encoding, declared tag, và
liệu đó tag là đầu tiên element trong <head>:
const charset = document.querySelector('meta[charset]');
console.table({
documentCharacterSet: document.characterSet,
declaredCharset: charset?.getAttribute('charset') ?? 'missing',
firstHeadElement: document.head.firstElementChild?.outerHTML ?? 'missing',
charsetIsFirst: document.head.firstElementChild === charset,
});console reflects trình duyệt parsed document. sử dụng curl kiểm tra as well
Khi bạn cần prove Điều gì máy chủ thực ra được gửi.
Inspect phản hồi trước khi gỡ lỗi markup
sử dụng HTTP Header Checker để inspect trực tiếp
Content-Type phản hồi header. nếu nó declares charset, so sánh đó giá trị với
<meta charset="utf-8">; conflict có thể giải thích mojibake ngay cả Khi HTML tag
looks đúng.
cho placement, sử dụng View Nguồn thay vì chỉ Elements panel. xác nhận
charset declaration là đầu tiên child của <head> và xuất hiện trong đầu tiên
1 024 bytes của document.
Validate charset khắc phục
Kiểm thử 1 — Header và tag agree
- Hypothesis: trực tiếp phản hồi và HTML cả hai declare UTF-8.
- Phương thức: kiểm tra phản hồi
Content-Typeheader, sau đó inspect View Nguồn cho<meta charset="utf-8">. - Truyền condition: Không conflicting máy chủ-declared charset tồn tại.
- Fail condition: header declares một encoding hoặc tag là bị thiếu.
- tiếp theo hành động: khắc phục máy chủ header đầu tiên, sau đó retest trực tiếp phản hồi.
Kiểm thử 2 — declaration là sớm đủ
- Hypothesis: trình duyệt sees tag trước khi nó có để guess encoding.
- Phương thức: Fetch đầu tiên 1 024 bytes và inspect bắt đầu của
<head>. - Truyền condition: hoàn tất charset tag là trong những điều đó bytes và là
đầu tiên element trong
<head>. - Fail condition: Comments, injected scripts, hoặc khác markup push nó sau đó.
- tiếp theo hành động: Move tag ahead của all nonessential head markup.
Kiểm thử 3 — thực characters render correctly
- Hypothesis: khắc phục eliminates mojibake trong người dùng-visible và indexable text.
- Phương thức: Spot-kiểm tra accented character, curly quote, em dash, non-Latin text, và emoji on trực tiếp trang và trong View Nguồn.
- Truyền condition: mỗi character renders as authored sau khi hard refresh.
- Fail condition: Replacement glyphs hoặc garbled byte sequences vẫn.
- tiếp theo hành động: Roll lại encoding thay đổi nếu nó introduced corruption, sau đó trace nguồn file, template, database, và phản hồi header riêng.
TL;DR —
Evidence for this claim For HTML documents, the charset declaration must identify UTF-8. Scope: Modern HTML conformance requirements. Confidence: high · Verified: WHATWG HTML: Character encoding declaration Evidence for this claim The complete character-encoding declaration must occur within the first 1024 bytes of the document. Scope: HTML serialization requirement intended to make encoding available early to parsers. Confidence: high · Verified: WHATWG HTML: Specifying the document's character encoding<meta charset="utf-8">declares đó document character encoding. Đó WHATWG HTML spec requires đó declaration để là serialized completely trong đó đầu tiên 1024 bytes of đó document, và cho HTML5 đó giá trị phải matchutf-8; best practice là placing điều này as đó literal đầu tiên child of<head>. MỘT bị thiếu, muộn, hoặc mismatched encoding produces mojibake — corrupted accented characters, curly quotes, non-Latin scripts, và emoji — mà là một kết xuất và lập chỉ mục-correctness vấn đề, không phải là tín hiệu xếp hạng. Google chỉ công khai line là “use Unicode/UTF-8 where possible.” (bản dịch) «dùng Unicode/UTF-8 nơi có thể.» MỘT máy chủ-đã gửiContent-Typecharset header overrides đó trong-document tag, mà là một classic post-migration mojibake bug. Chỉ một charset meta element là được phép theo document, và điều này có không effect trong XML. MỘT UTF-8 byte-order mark (BOM), nếu present, wins over mọi thứ khác; nếu không đó HTTP header wins over đó trong-trang tag — đầy đủ precedence order dưới.
Điều gì tag là
Đó charset declaration tells một parser mà character encoding để dùng khi điều này turns
đó document bytes vào text. Đó WHATWG HTML Living Tiêu chuẩn diễn đạt điều này plainly: “The
charset attribute specifies the character encoding used by the document. This is a
character encoding declaration.” (bản dịch) «Đó charset thuộc tính specifies đó character encoding dùng by đó document. Này là một character encoding declaration.» MDN’s cách diễn đạt là đó practical version: “This
attribute declares the document’s character encoding.” (bản dịch) «Này thuộc tính declares đó document character encoding.»
modern syntax là ngắn form:
<meta charset="utf-8">có cũng legacy pre-HTML5 form bạn’ll vẫn see trong older templates:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">Cả hai declare giống nhau điều. On modern HTML5 document bạn chỉ cần ngắn
<meta charset="utf-8"> — sử dụng cả hai là redundant, không harmful, và spec cho phép
chỉ một charset-declaring meta element theo document anyway. ( http-equiv form là
best thought của as legacy thay vì điều gì đó để thêm fresh; nếu bạn’re auditing trang
đó có nó, nó không phải hỏng, nó chỉ old.)
spec requirements bạn thực ra cần để know
UTF-8 là effectively mandatory cho HTML5. MDN trạng thái điều này trực tiếp: đó thuộc tính
“value must be an ASCII case-insensitive match for the string utf-8, because UTF-8
is the only valid encoding for HTML5 documents.” (bản dịch) «giá trị phải được an ASCII case-insensitive match cho đó string utf-8, vì UTF-8 là đó chỉ hợp lệ encoding cho HTML5 documents.» Đó WHATWG spec goes further và
requires đó document thực tế encoding để là UTF-8 regardless of điều gì là declared.
UTF-8 covers essentially mỗi script plus emoji, mà là vì sao đó ISO-8859-1 /
Windows-1252 / Shift-JIS era of theo-region encodings là over cho new hoạt động — những
survive chỉ as legacy compatibility cases.
Điều này phải land trong đó đầu tiên 1024 bytes of đó document. Này là một hard spec
requirement, không một soft suggestion. MDN: “<meta> elements which declare a character
encoding must be located entirely within the first 1024 bytes of the document.” (bản dịch) «thẻ meta elements mà declare một character encoding phải được located hoàn toàn trong đó đầu tiên 1024 bytes of đó document.» Đó
reason là mechanical — đó parser sniffs đó byte stream cho an encoding trước điều này
có thể safely interpret đó rest. Nếu của bạn declaration cho thấy lên cũng muộn, đó parser có thể
đã có committed để một guessed encoding (hoặc có để restart, mà costs
performance). Note đó cách diễn đạt cẩn thận: đây là đó đầu tiên 1024 bytes of đó entire
document, không chỉ of <head>.
Best practice beats đó spec minimum: làm điều này đó đầu tiên child of <head>. không
settle cho “somewhere in the first 1024 bytes” (bản dịch) «nơi nào đó trong đó đầu tiên 1024 bytes» — put <meta charset="utf-8"> trước
của bạn <title>, <link>, <script>, <style>, và mỗi other tag. Này là đó
placement modern tooling kiểm tra. có an open
Lighthouse vấn đề (#10023)
proposing an audit đó cụ thể kiểm tra liệu <meta charset> equals
document.head.firstElementChild — i.e. flagging đó tag khi điều này không đó literal
đầu tiên element trong head, không merely khi đây là bị thiếu. Đó direction of tooling là toward
kiểm tra placement, không chỉ presence.
chỉ một charset meta element theo document, và ** charset thuộc tính có không
effect trong XML/XHTML documents** (nó permitted ở đó chỉ để ease migration để và
từ XML). Worth caveat nếu bạn’re hoạt động với XHTML-phân phối nội dung hoặc
RSS/Atom-liền kề templates.
BOM, HTTP header, meta tag — precedence order
các trình duyệt không chỉ đọc meta tag trong isolation; encoding-sniffing algorithm kiểm tra three sources trong fixed order, và đầu tiên một đó cho câu trả lời wins:
- ** UTF-8 byte-order mark (BOM)** — một vài bytes tại rất bắt đầu của file. nếu trình duyệt detects BOM, đó determines encoding với certainty; không có gì khác là consulted.
- ** HTTP
Content-Typeheader charset**, nếu máy chủ gửi một và có không BOM. điều này takes precedence over trong-document meta declaration. - ** trong-document
<meta charset>(hoặc legacyhttp-equiv) declaration**, checked chỉ nếu neither của trên supplied encoding.
trên thực tế, BOMs là rare on hand-authored HTML (họ’re nhiều hơn phổ biến as artifact
của certain text editors hoặc file-export tools), so header-so với-tag conflict là
một đó bites phần lớn thường: trang đó correctly declares <meta charset="utf-8">
có thể vẫn render garbled nếu CDN, reverse proxy, hoặc misconfigured máy chủ gửi
khác charset trong header. nó kinh điển symptom right sau khi máy chủ hoặc CDN
migration — HTML đã không thay đổi, nhưng header đã làm, và hiện tại header là
fighting tag. Khi bạn’re gỡ lỗi mojibake, kiểm tra cho BOM và phản hồi
header charset, không chỉ trang nguồn.
là meta charset SEO xếp hạng factor?
Không — và nó worth là blunt vì fear-based audit-tool copy đôi khi implies nếu không. Đây là kết xuất- và lập chỉ mục-correctness prerequisite, không xếp hạng tín hiệu.
Google hướng dẫn ở đây là thin và gián tiếp compared để đó tags điều này discusses constantly (tiêu đề, mô tả meta, robots, canonical). Có không dedicated Google Tìm kiếm Central trang về character encoding — đây là một entry bên trong đó chung meta tags Google hỗ trợ reference, dưới “Content-Type and charset.” (bản dịch) «Nội dung-Loại và charset.» Google chỉ on-record line là một khuyến nghị, không một xếp hạng claim: “We recommend using Unicode/UTF-8 where possible.” (bản dịch) «We khuyến nghị dùng Unicode/UTF-8 nơi có thể.» Không verbatim statement từ Mueller, Illyes, Splitt, hoặc Canel cụ thể naming “meta charset” (bản dịch) «meta charset» hoặc “mojibake” surfaces trong đó trade press hoặc Tìm kiếm Off đó Record archives — charset là treated as basic web-các tiêu chuẩn hygiene, bảng stakes như hợp lệ markup, thay vì một topic warranting SEO commentary.
Bing có không distinct công khai position on on-trang tag either; của nó tài liệu
references UTF-8 chỉ cho của nó own API/feed formats (IndexNow mấu chốt files, Quản trị viên web API
yêu cầu các header), không as hướng dẫn về HTML <meta charset> on của bạn các trang. Since
Bingbot là tiêu chuẩn HTML parser, practical implication là giống nhau: follow
HTML spec UTF-8 / 1024-byte rule.
So nơi có thể điều này hurt bạn? Indirectly, và chỉ khi đó encoding là genuinely hỏng: garbled text là một nội dung-quality và UX vấn đề, điều này có thể corrupt điều gì xuất hiện trong snippets, và severely hỏng output có thể look hỏng để Google lập chỉ mục các hệ thống cũng. Đó ngành consensus, as Ahrefs’ own meta-tags hướng dẫn (by Joshua Hardwick) diễn đạt điều này, là đó “unless your page is severely broken as a result of charset issues (which is unlikely), the impact is going to be quite minimal.” (bản dịch) «trừ khi trang của bạn là severely hỏng làm đó of charset các vấn đề (mà là khó có khả năng), đó impact là going để là quite minimal.» Cách sửa điều này vì hỏng text là bad, không vì bạn expect một xếp hạng bump.
Cách kiểm tra và khắc phục nó
nhanh diagnostic path Khi bạn suspect encoding vấn đề:
- View nguồn / DevTools. Xác nhận
<meta charset="utf-8">tồn tại và là đó đầu tiên child of<head>. Trong DevTools, kiểm tra đóContent-Typeheader phản hồi cho một charset giá trị — nếu điều này disagrees với đó tag, đó header wins và là của bạn có khả năng culprit. Rule out một BOM cũng: đây là rarer, nhưng nếu present điều này beats cả hai đó header và đó tag. - Các validator và các crawler flag điều này. Đó W3C validator và rule-based checkers (e.g. Rocket Validator “charset after the first 1024 bytes” (bản dịch) «charset sau đó đầu tiên 1024 bytes» rule) sẽ call out một muộn hoặc bị thiếu declaration. Site audits trong Ahrefs Site Audit và Screaming Frog surface charset các vấn đề trên một toàn bộ site.
- Cách sửa đó right layer. Nếu đó placement là sai, move đó tag để đó top of head.
Nếu đó encoding là sai (đó bytes themselves không UTF-8, hoặc đó header gửi một
conflicting charset), sửa đó meta tag alone sẽ không help — bạn có để re-encode đó
file as UTF-8 và/hoặc correct đó máy chủ
Content-Typeheader so đó header và tag agree.
khắc phục là gần như luôn trivial sau khi bạn’ve identified mà layer là tại fault. Đây là ổn định, dài-settled part của HTML spec — có không gần đây deprecation hoặc nền tảng-behavior thay đổi để track; chỉ evolving nuance là tooling increasingly kiểm tra placement, không chỉ presence.
nơi điều này sits
charset tag là một của trình duyệt-facing head elements — như viewport tag, nó về kết xuất, không xếp hạng, mà diễn đạt nó trong khác bucket từ SEO-active tags trong meta-tags cluster ( tiêu đề element, mô tả meta, và robots family). nó liền kề để internationalization hoạt động I spend lot của time on: encoding là layer underneath hreflang và multi-script nội dung — hreflang tells Google mà language/region version để phục vụ, nhưng nếu encoding là sai text trong đó version là garbled regardless. cho đầy đủ map của head elements grouped by job họ làm, see meta tags hub.
AI summary
condensed take on Nâng cao version:
- Điều gì điều này là:
<meta charset="utf-8">declares đó document character encoding so các trình duyệt và các crawler map thô bytes để đó correct characters. - Spec rules: đó declaration phải sit trong đó đầu tiên 1024 bytes of đó toàn bộ
document; HTML5 requires đó giá trị để là
utf-8(và đó thực tế encoding để là UTF-8). Best practice: đó literal đầu tiên child of<head>. Chỉ một charset meta element theo document; điều này có không effect trong XML/XHTML. - Legacy syntax:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">là đó older pre-HTML5 form — redundant on modern các trang; dùng đó ngắn form. Bạn không cần cả hai. - Precedence order: một UTF-8 BOM, nếu present, wins over mọi thứ; nếu không một
máy chủ-đã gửi
Content-Typecharset overrides đó trong-trang tag — một classic post-migration mojibake bug. Debug đó header (và kiểm tra cho một BOM), không chỉ đó nguồn. - Vì sao điều đó quan trọng: một bị thiếu/muộn/mismatched encoding gây ra mojibake (garbled accents, curly quotes, non-Latin scripts, emoji) — một kết xuất/lập chỉ mục-correctness vấn đề, không phải là yếu tố xếp hạng.
- Điều gì Google says: chỉ an gián tiếp line — “We recommend using Unicode/UTF-8 where possible.” (bản dịch) «We khuyến nghị dùng Unicode/UTF-8 nơi có thể.» Không dedicated doc, không rep quote on charset/mojibake. Bing có không distinct on-trang position. Ngành cách diễn đạt (Ahrefs): impact là minimal trừ khi đó trang là “severely broken.” (bản dịch) «severely hỏng.»
- Diagnose: view-nguồn/DevTools cho đó tag và đó phản hồi-header charset; các validator (W3C, Rocket Validator) và site audits (Ahrefs, Screaming Frog) flag muộn hoặc bị thiếu declarations. Cách sửa đó right layer — placement so với. thực tế encoding/header.
Tài liệu chính thức
Chính-nguồn và spec tài liệu.
Các tiêu chuẩn (WHATWG / MDN)
- HTML tiêu chuẩn (WHATWG) — Specifying document character encoding — normative rules: charset declaration, đầu tiên-1024-bytes requirement, UTF-8, một-theo-document limit, và XML exception.
- HTML tiêu chuẩn (WHATWG) — Determining character encoding — encoding-sniffing algorithm: BOM detection đầu tiên, sau đó HTTP-cấp độ
Content-Typecharset, sau đó trong-document meta declaration. - MDN —
<meta>: metadata element — đơn giản-language reference:utf-8-chỉ cho HTML5, 1024-byte rule, và legacyhttp-equivform.
- Meta tags và HTML các thuộc tính đó Google hỗ trợ — đó chỉ Google hướng dẫn touching charset, dưới “Content-Type and charset” (bản dịch) «Nội dung-Loại và charset»: đó accepted
http-equivvàcharsetforms và đó “use Unicode/UTF-8 where possible” (bản dịch) «dùng Unicode/UTF-8 nơi có thể» khuyến nghị.
Bing / Microsoft
- IndexNow — getting đã bắt đầu — Bing references UTF-8 chỉ cho của nó own API/mấu chốt-file formats, không as on-trang HTML hướng dẫn. có không dedicated Bing doc on
<meta charset>tag.
Tooling
- Lighthouse vấn đề #10023 — warn về muộn hoặc bị thiếu
<meta charset>— proposed audit kiểm tra liệu charset tag làdocument.head.firstElementChild.
Quotes từ nguồn
On—record statements từ HTML spec, MDN, và Google. mỗi link là deep link đó jumps để quoted passage nơi nguồn hỗ trợ nó.
WHATWG HTML tiêu chuẩn — Điều gì tag là
- “The
charsetattribute specifies the character encoding used by the document. This is a character encoding declaration.” (bản dịch) «Đócharsetthuộc tính specifies đó character encoding dùng by đó document. Này là một character encoding declaration.» — HTML Living Tiêu chuẩn (WHATWG). Nguồn
MDN — encoding và placement rules
- “This attribute declares the document’s character encoding. If the attribute is present, its value must be an ASCII case-insensitive match for the string
utf-8, because UTF-8 is the only valid encoding for HTML5 documents.<meta>elements which declare a character encoding must be located entirely within the first 1024 bytes of the document.” (bản dịch) «Này thuộc tính declares đó document character encoding. Nếu đó thuộc tính là present, của nó giá trị phải được an ASCII case-insensitive match cho đó stringutf-8, vì UTF-8 là đó chỉ hợp lệ encoding cho HTML5 documents. thẻ meta elements mà declare một character encoding phải được located hoàn toàn trong đó đầu tiên 1024 bytes of đó document.» — MDN Web Tài liệu, “<meta>: the metadata element.” (bản dịch) «thẻ meta: đó metadata element.» Nhảy đến trích dẫn
Google — (thin) chính thức position
- “These tags define the page’s content type and character set respectively. Make sure that you surround the value of the
contentattribute in thehttp-equivmetatag with quotes—otherwise thecharsetattribute may be interpreted incorrectly. We recommend using Unicode/UTF-8 where possible.” (bản dịch) «Những tags define đó trang nội dung loại và character set respectively. Hãy bảo đảm đó bạn surround đó giá trị of đócontentthuộc tính trong đóhttp-equivmetatag với quotes—nếu không đócharsetthuộc tính có thể là interpreted incorrectly. We khuyến nghị dùng Unicode/UTF-8 nơi có thể.» — Google Search Central, “Meta tags and attributes that Google supports.” (bản dịch) «Meta tags và các thuộc tính đó Google hỗ trợ.» Nhảy đến trích dẫn
Ngành — honest cách diễn đạt của SEO impact
- “Unless your page is severely broken as a result of charset issues (which is unlikely), the impact is going to be quite minimal.” (bản dịch) «Trừ khi trang của bạn là severely hỏng làm đó of charset các vấn đề (mà là khó có khả năng), đó impact là going để là quite minimal.» — Ahrefs Blog, “Meta Tags for SEO: A Simple Guide for Beginners” (bản dịch) «Meta Tags cho SEO: MỘT Đơn giản Hướng dẫn cho Beginners» (Joshua Hardwick). Nguồn
Meta charset audit — checklist
nhanh truyền để xác nhận của bạn các trang declare và render encoding correctly:
- mỗi trang có
<meta charset="utf-8">trong<head>. - charset tag là đầu tiên child của
<head>— trước khi<title>,<link>,<script>,<style>, và bất kỳ khác<meta>. - declaration lands trong đầu tiên 1024 bytes của document (nó sẽ nếu nó đầu tiên child của head).
- giá trị là
utf-8— không ISO-8859-1, Windows-1252, hoặc theo-region code trang. - file itself là thực ra saved/phân phối as UTF-8 ( declaration và thực byte encoding phải agree).
- chỉ một charset meta element theo trang.
- máy chủ
Content-Typephản hồi header charset agrees với tag ( header wins over tag nếu họ conflict) — verify trong DevTools, especially sau khi bất kỳ CDN hoặc máy chủ migration. - Không stray UTF-8 byte-order mark (BOM) tại bắt đầu của file — rare, nhưng nếu present nó outranks cả hai header và tag.
- Spot-kiểm tra các trang với non-ASCII nội dung (accents, curly quotes, non-Latin scripts, emoji) — đơn giản English có thể look fine ngay cả Khi encoding là hỏng.
- Ran trang qua W3C validator / crawler (Ahrefs trang web Audit, Screaming Frog) để catch muộn hoặc bị thiếu declarations tại quy mô.
- không thêm legacy
http-equiv="Content-Type"form fresh — ngắn<meta charset="utf-8">là đủ.
Meta charset bảng tra nhanh
** hai syntaxes**
| Form | Syntax | sử dụng nó? |
|---|---|---|
| Modern (HTML5) | <meta charset="utf-8"> | Có — Đây là Điều gì bạn muốn |
| Legacy (pre-HTML5) | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | không cho new hoạt động; redundant, chỉ một needed |
** rules đó quan trọng**
| Rule | Detail |
|---|---|
| Giá trị | phải là utf-8 cho HTML5 (spec requires thực tế encoding để là UTF-8 cũng) |
| Placement (spec minimum) | Trong đầu tiên 1024 bytes của document |
| Placement (best practice) | literal đầu tiên child của <head> |
| Count | Một charset meta element theo document — không nhiều hơn |
| XML/XHTML | charset thuộc tính có không effect trong XML documents |
| Precedence | UTF-8 BOM wins over mọi thứ; khác máy chủ Content-Type header charset overrides trong-trang tag |
Fast facts
- Sai/bị thiếu/muộn encoding → mojibake (garbled accents, curly quotes, non-Latin scripts, emoji). Đơn giản ASCII English có thể vẫn look fine — đó bug hides.
- Không phải là yếu tố xếp hạng. Google chỉ line: “use Unicode/UTF-8 where possible.” (bản dịch) «dùng Unicode/UTF-8 nơi có thể.»
- Impact là minimal trừ khi đó trang là severely hỏng (Ahrefs) — nhưng hỏng text là vẫn worth sửa cho người dùng và lập chỉ mục.
- Gỡ lỗi mojibake? Kiểm tra cho một BOM đầu tiên, thì đó phản hồi-header charset, không chỉ view-nguồn — BOM beats đó header, và đó header beats đó tag.
- Tooling là moving toward kiểm tra placement (đầu tiên child of head), không chỉ presence (see Lighthouse #10023).
Tự kiểm tra: Meta Charset Tag
Five nhanh các câu hỏi on character encoding và charset tag. Pick câu trả lời cho mỗi, sau đó kiểm tra.
Nhật ký thay đổi
Đã cập nhật 8 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 18 thg 7, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.