跳到正文
新闻飞钉团队

中英文站互相抢排名?把 hreflang 按这三步配清楚

中英文页面同时上线却只有一个版本被收录,多半是 hreflang 没配好。这篇讲清 URL 结构怎么选、三行标签怎么写、上线前六项检查和一个验证方法。

返回文章列表

做外贸或服务境外客户的企业站,常遇到一个现象:中文页和英文页都上了线,搜索结果里却只出现一个版本,另一个像被藏起来。多数时候不是内容问题,而是 hreflang 没配对,两个语言版本被当成重复页面互相稀释。

先判断:你的站需不需要 hreflang

满足两条才需要配:

  • 同一批产品或服务,存在两种以上语言的独立 URL;
  • 每个语言版本是为当地用户写的,不是同一段文字的机器翻译。

只有中文站,或者英文站仅几页公司介绍、没有对应中文页,就不用配。配错的代价比不配更高:标签指向 404、互指不成闭环,搜索引擎会直接放弃这一组关系。

第一步:先定 URL 结构

三种常见做法,选一种并在全站统一:

方案 形式 适合 代价
子目录 example.com/en/ 中小企业首选,权重集中 模板需支持多语言路由
子域名 en.example.com 不同团队分开运维 权重分散,各自做收录
独立域名 example.en 当地品牌独立运营 成本最高,跨站关系难维护

结构定完,再写两条硬规则:语言切换必须落在可被抓取的 a 链接上;不要用 JS 判断浏览器语言后自动跳转,也不要用 Cookie 让同一个 URL 返回不同语言——爬虫看到的那一份,才是被收录的那一份。

第二步:把三行标签写对

在每个语言版本的 head 里,列出这一组页面的全部语言版本,包括自己。英文页 /en/about 的 head 应当是:

<link rel="alternate" hreflang="en" href="https://example.com/en/about" />
<link rel="alternate" hreflang="zh-Hans" href="https://example.com/about" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/about" />

四个要点:

  • 自引用不能省。英文页里必须有一条 hreflang="en" 指向自己,缺这行,整组关系常被判无效。
  • href 写绝对地址,且必须是 200 可访问的最终地址,不要写会 301 的旧地址。
  • 语言码优先用 zh-Hans、zh-Hant、en;只有确实要区分地区(比如 en-US 与 en-GB 的价格不同)时才加地区码。
  • x-default 指向语言选择页;没有选择页就指向默认版本,全组保持一致。

第三步:上线前过六项检查

  1. 互指闭环:中→英、英→中两个方向都在,语言码一一对应。
  2. canonical 指向自己:英文页的 canonical 是英文页地址,不要全站都指中文首页。
  3. 页面没有被 noindex、robots.txt 或登录墙挡住。
  4. 每个语言版本都在 sitemap 里,最好带 xhtml:link 声明。
  5. 导航和页脚的语言切换链接可点、可抓。
  6. 抽查 5 组核心页面(首页、产品列表、两个产品详情、联系页)逐条对照。

配完怎么验证

上线 3–7 天后,在 Search Console 的「国际定向」报告看语言与地区分布,出现「未找到返回标签」就说明有一侧漏写;用浏览器查看源代码,确认标签是服务端输出,而不是 JS 插入的。三个高频错误:只在一个语言版本里写标签、canonical 全部指向默认语言、机翻页面直接照抄中文页的 title 和 description。

新加页面最容易漏配,建议按固定周期复查一遍。

多语言和 SEO 基础检查这类重复活,飞钉 AI 建站放在后台做:发布后自动巡检 canonical、hreflang、标题与描述缺失,问题清单直接给到人;站内 7×24 智能客服接住访客提问,留资线索自动进 CRM,不用再靠人盯后台翻记录。