网页默认语言必须通过设置,这是搜索引擎识别页面主语言的唯一有效方式;写在、或js中均无效,且lang值须严格符合bcp 47规范(如zh-cn、en-us),错误写法会导致爬虫降级为“未知语言”或默认英文索引。

网页默认语言必须通过 属性设置,这是搜索引擎准确识别页面主语言、避免抓取误判的唯一有效方式。其他写法——比如放在 里、用 <meta> 声明,或靠 JavaScript 动态赋值——对爬虫完全无效。
lang 属性必须写在 html> 标签上
搜索引擎(如 Google)在解析 HTML 的最早阶段就提取 document.documentElement.lang,即 标签上的 lang 值,作为整页语言基调。这个值决定:
• 是否将页面纳入对应语言的索引池
• 多语言站点中是否触发 hreflang 关联校验
• 是否启用语言敏感的拼写检查与语义分析
-
:爬虫忽略,等同于未声明语言 -
<meta http-equiv="Content-Language" content="zh-CN">:HTML5 已废弃,所有主流爬虫不读取 -
document.documentElement.lang = "zh-CN"(JS 设置):仅影响后续 DOM 操作,初始抓取时已错过识别时机
语言代码必须严格符合 BCP 47 规范
错误的写法会让爬虫静默降级为“未知语言”或默认英文,导致中文页被当英文索引、搜索排名下降。关键规则:
- 小写字母 + 连字符,不能用下划线(
zh_CN❌)、大写(ZH-CN❌)或空格 - 中文优先用
zh-CN(简体大陆),不是zh或zh-Hans;前者兼容所有主流爬虫与 CDN 语言路由策略 - 英文必须用
en-US或en-GB,english、en_US均无效 - 法语、葡萄牙语等对大小写敏感:
fr-FR✅,FR-fr❌
多语言页面需配合 hreflang 声明关系
单设 lang 只能说明“本页说什么语言”,但无法告诉搜索引擎“这页和其它语言版本是什么关系”。若网站有中/英/日三版,必须在每页 中添加对应的 <link rel="alternate" hreflang="xx" ...> 标签。否则:
- 爬虫可能将不同语言版本当作重复内容处理
- 用户搜索中文关键词时,可能返回英文页(因未建立语言版本映射)
- Google Search Console 显示“hreflang 未验证”警告,影响国际化索引覆盖率
动态页面(SPA)要服务端预置或首屏同步更新
纯前端渲染的页面,如果首次 HTML 响应中 缺少 lang,或初始值错误(如 SSR 渲染为 en,再 JS 切成 zh-CN),爬虫只会抓取初始状态。解决方法:
- SSR 场景:根据请求头
Accept-Language或用户地区,在服务端直接输出正确 - CSR/SPA 场景:确保首屏 HTML 字符串中
已带正确值;语言切换时执行document.documentElement.lang = "ja-JP",而非只改body或 state - 避免“先渲染再补 lang”:这种闪动不仅影响 SEO,还可能导致 Chrome 翻译按钮延迟出现或失效
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











