lang属性写错或缺失会导致搜索引擎直接按默认英文索引整页,中文关键词无法匹配;必须严格使用BCP 47规范的<html lang="zh-CN">,且所有hreflang、局部文本、动态内容均需与之严格一致并显式声明。

lang 属性写错或缺失,搜索引擎就“不信你”——不是降权,是直接按默认英文索引整页,中文关键词根本搜不到你的页面。
Google 和 Bing 只认 html 根节点的 lang 值
它们不扫描子元素、不统计词频、不猜语言。只读 <html lang="zh-CN"> 这一行。其他位置加 lang(比如 <body lang="zh-CN"> 或 JS 改 document.body.lang)对收录语言识别完全无效。
- SSR 页面必须在服务端根据
Accept-Language头输出正确的lang,不能靠客户端 JS 补 - Next.js / Nuxt 等框架若首屏 HTML 中
<html>的lang是en,但实际渲染的是中文,Google 就当它是英文页处理 - 静态站每个语言版本应有独立 HTML 文件,
<html lang="ja-JP">硬编码,避免 JS 注入延迟导致爬虫抓到错误值
lang 值不符合 BCP 47 就等于没写
写成 zh_cn、Chinese、ZH-CN、zh-CN (末尾空格)、zh(无地区码),全部被忽略。后果是:整站被当英文页索引,中文长尾词(如“深圳签证材料”)不出现在前 100 名。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 简体中文优先用
zh-CN:语音引擎、SEO 工具、CMS 插件兼容性最稳;zh-Hans在 Safari 的:lang()CSS 匹配可能不准 - 英文要区分
en-US和en-GB:影响拼写检查词典加载,间接影响内容质量评分 - 所有
hreflang声明必须和对应页面的<html lang="...">完全一致(大小写、连字符、无空格),否则整组hreflang被静默丢弃
局部多语言内容不显式标 lang,会被当成主语言硬读
主语言靠 <html lang="zh-CN"> 确立,但混排的英文术语、日文引用、代码注释等,若不加内联 lang,屏幕阅读器和搜索引擎仍按中文规则解析——“API”读成“阿皮”,curl -X POST 被误判为乱码,甚至触发低质内容判定。
立即学习“前端免费学习笔记(深入)”;
- 外文段落用语义化标签包裹:
<p lang="en">This is not Chinese.</p> - 代码块中的自然语言注释标
lang="en",不是lang="bash"(后者是工具提示,非语言声明) - 品牌名、缩写词建议同时加
translate="no",避免被翻译且保留原发音 - 避免给每个单词都加
lang:DOM 体积增大,可访问性树构建变慢,无实质收益
最难的从来不是写对一个 lang="zh-CN",而是让 CMS 输出的富文本、用户粘贴的外文引文、第三方评论插件插入的 DOM、Shadow Root 里的节点,全都带着准确、可验证、同步更新的语言标识——它不报错,但一上线就让 SEO 和无障碍双双掉线。


















