德国站用 .de 还是子目录,本质是在权重集中和本地信号之间做一次交换:子目录把所有外链权重集中在一个域上,但“这是德国站”这件事必须靠 hreflang 和站内结构自己讲清楚;.de 自带国家信号,德国本地的链接方和用户接受起来更自然,代价是权重要从零另养一份。哪种更合适取决于你手上已经有什么,但有一段没有选择题——不管走哪条路,hreflang 的互指和自指都必须做对,否则德语页面会长期被压在后面,而且你很难从 Search Console 里一眼看出原因。
我是在一个跑了半年多的子目录站上才把这件事想明白的。那天晚上我把两个 Search Console 资源切成两个标签页,左边是主域的域名资源,右边是刚验证好的 .de,同一批德语关键词,左边有曝光但没有排名,右边几乎一片空白。我盯着那张查询表看了很久,才意识到问题不在内容,而在于我一开始就把两套东西当成了一套在做。
子目录继承的是权重,不是身份
把德语放在 /de/ 下的好处很实在:新页面从第一天就能拿到站内内链和主域积累下来的权重,一套 sitemap,一套 CDN 和证书配置,站内链接也不用跨域写。对一个还在爬坡的站来说,这些都不是小事。
但 Google 不会因为路径里有个 de,就自动认为这个目录是给德国人看的。子目录本身不携带任何国家信号,它只是同一个域下的一个目录,标题是德语,正文是德语,仅此而已。要让它被当成德国版本,你得同时做两件事:一是用 hreflang 明确标注,二是让站内结构支持这个判断——德语首页的导航、面包屑、内链要指向德语的其他页面,而不是一路指回英语站。如果德语页面的内链全指向英文版,你其实是在用结构告诉 Google,这个目录是英文站的附属品。
.de 自带信号,但那是一块新地
ccTLD 的好处是不需要解释。搜索引擎看到 .de 就知道这是面向德国的,德国本地的目录站、行业博客、合作方在决定要不要链你的时候,也不会先做一次“这到底是哪国站”的判断。这个接受度上的差别,在实际谈本地外链的时候比在技术文档里更明显。
代价同样明确:那是一块全新的地。域名年龄从零开始,外链从零开始,还要多一套 Search Console 资源、多一套证书和重定向规则、多一套数据报表。从国内维护两套东西,多出来的往往不是技术活,而是配置项和确认项——每改一次站点结构,你要在两处各确认一遍。
hreflang 只有互指加自指都成立才算数
这是整套方案里最不能省的地方,也是最容易半对半错的地方。
假设你有一个英语页 A、一个德语页 B。正确的写法是:A 上列出 A 和 B,B 上也要列出 A 和 B,其中指回自己的那一行就是自指。少任何一条,Google 都可能把整个 hreflang 簇丢掉不用——不是只忽略错的那一条,是整组不生效。你会看到的现象是:两个版本都能被抓到,但 Google 就是不确定该给德国的搜索者看哪个,于是德语页面在德语关键词上一直排在后面。
语言地区代码也要写准。de-DE 是德语-德国,de-AT 和 de-CH 分别对应奥地利和瑞士。如果你只做德国市场,就写 de-DE,不要顺手把 de-AT、de-CH 一起指到同一个 URL,那等于在说这个页面同时是三个市场的本地版本,信号会变糊。反过来,如果只写一个光秃秃的 de,它表达的是“面向所有德语使用者”,不指向任何一个具体市场,对德国站的帮助比 de-DE 弱。
检查方式这几年变过一次。以前 Search Console 里有个国际定位报告,会用错误清单告诉你哪条 hreflang 写坏了,那个报告已经下线。现在更可靠的做法是直接用 URL 检查看渲染后的 HTML,确认三件事:每个版本身上都有完整的整组标注;自指那一行的 URL 就是它自己;所有 href 指向的都是返回 200 的可访问 URL,不是重定向也不是 404。整站跑一遍校验工具也可以,但工具只能查语法,最终还是要回到“这一组是不是互相都指到了”这个判断上。
按 IP 跳转会把德语版本藏起来
有一个看起来很贴心、实际很伤的做法:服务器按访问者 IP 或 Accept-Language 头,把德国用户自动跳到 /de/。用户体验上没毛病,对搜索来说是个陷阱。
Googlebot 抓取时的来源 IP 大多在美国,它请求你的首页,拿到的是英文版,德语页从来没有被请求过。一个从未被抓取的页面不会排名,不管你的 hreflang 写得多标准。更麻烦的是重定向本身会让 Google 迷惑:如果首页根据访问者不同跳到不同版本,那首页的规范归属也变得不确定。
正确的做法是让每个语言版本都有一个固定的、可以直接访问的 URL,谁都能直接打开,然后用 hreflang 说明它们之间的对应关系。语言切换可以留一个用户手动点的入口,但不要在服务端按 IP 强制跳转。
两个 Search Console 资源之间不会互相搬数据
hreflang 只做一件事:告诉 Google 这些 URL 是同一个页面的不同语言版本。它不会把 .de 的曝光和点击并进主域的资源里,也不会把主域的数据搬到 .de。
顺带一个很多人踩过的点:域名资源能覆盖同一个域下的所有子域和协议,带 www 的、不带 www 的、http 和 https 的都在里面,但它覆盖不了另一个域。example.com 的域名资源管不到 example.de,那个必须单独验证、单独看数据。
所以如果你走 ccTLD,报表从第一天起就是碎的,德语流量在主域之外,得自己拼。这不算致命问题,但要提前知道,否则第一次做月报的时候会以为数据丢了。
我最后是怎么判断的
我没有一个能套所有情况的公式,但有四个问题会依次问自己。
主站现在有没有值得继承的东西。如果是个新站,外链寥寥、排名还在爬,子目录更划算,因为你本来就没有权重可以分散,而 .de 的优势(本地接受度)在你还没能力去谈本地链接的时候用不上。反过来,主域已经有一批稳定外链和排名,你才承担得起开一个新域的成本。
你打算在德语本地投入多少。如果答案是“内容照翻,外链不做”,那 .de 最值钱的那部分你拿不到,它只会变成一个多出来的域。如果德语市场是重点,有本地写手、本地合作方,ccTLD 值得。
团队能维护几套。多一个域就是多一套证书到期提醒、多一套搜索资源、多一套 sitemap 和重定向规则。两个人的团队和十个人的团队,答案不一样。
三年内会不会再加语言。如果还会加日语、法语、西班牙语,每个语言都开一个 ccTLD 的维护成本是线性增长的,而统一在主域下用一致规则做子目录,边际成本低得多。
真正让德语页面掉队的,是改主意那一刻
选哪个都行,真正造成长期损失的,是从一种换成另一种的时候做得不干净。
从子目录迁到 .de(或者反过来),最少要动四样东西:旧 URL 全部 301 到新 URL,hreflang 全部重写并删掉仍指向旧地址的行,sitemap 更新,站内所有内链改到新地址。最典型的坏状态是两边都留着、两边都能访问、hreflang 互相指着对方,而 canonical 各指自己——Google 只能自己挑一个,通常挑的不是你想要的那个。这种情况下德语页面的排名会莫名往下掉,而你从表面上看不出任何错误。
所以这个问题的答案不是“选 .de”或者“选子目录”,而是:先确认你的 hreflang 互指和自指都成立,再判断你当下更缺的是权重集中还是本地信号。前者是纪律,后者是判断。判断错了可以改,改的时候把 301 和 hreflang 一起做,代价是几个月的恢复期;纪律没做对,代价是德语页面一直排在后面,而且你找不到一个明确的报错去修。