一句话: 国际化的核心是告诉 Google 哪个版本给哪个地区/语言的用户(hreflang),不是依赖 Google 自己猜。显式内容的核心是正确分类(SafeSearch 友好的标记)而不是隐藏(隐藏反而误判)。
TL;DR 决策表
| 你的场景 | 用什么 |
|---|---|
| 多语言站(同内容多版翻译) | hreflang 标全 + 各版独立 URL |
| 多地区站(同语言不同 region 内容) | ccTLD 优先 / hreflang en-gb en-us 区分 |
| 想给特定地区集中 SEO | ccTLD(.de) 或 subdirectory /de/ |
| 想限制内容只对某区显示 | 国家限制 + hreflang fallback 用 x-default |
| 站有 adult 内容(部分) | 分独立 domain/subdomain + meta rating="adult" |
| 站全是 adult | 标 meta rating + 允许 Googlebot 绕 age gate |
| 站被误判 explicit | 走 troubleshooting 5 步排查 + 申诉(等 2-3 月) |
Part 1 — 多语言 vs 多地区
| 定义 | |
|---|---|
| Multilingual | 多种语言版本。例:加拿大公司 EN + FR 两版 |
| Multi-regional | 不同地区版本(可同语言)。例:产品厂商发货美国 + 加拿大 |
| 同时是 | 例:USA 版 + 加拿大版,加拿大版又分 FR + EN |
Google 行为:
- multilingual → 匹配用户搜索语言
- multi-regional → 匹配用户所在国家
Part 2 — hreflang 实施 3 种方式(等价,选一)
⚠️ 核心心智模型: hreflang 不是告诉 Google 这页是啥语言(Google 不看 hreflang 也不看 <html lang> 判语言,看正文内容)。hreflang 是告诉 Google 这些 URL 是同一内容的 locale 变体,Google 据此把对应 locale 用户路由到对应 URL。
2.1 方法 A: HTML <link> 标签
放 <head> 里(必须 valid head),例 USA + UK + DE 三版 + x-default:
<head>
<title>Widgets, Inc</title>
<link rel="alternate" hreflang="en-gb" href="https://en-gb.example.com/page.html" />
<link rel="alternate" hreflang="en-us" href="https://en-us.example.com/page.html" />
<link rel="alternate" hreflang="en" href="https://en.example.com/page.html" />
<link rel="alternate" hreflang="de" href="https://de.example.com/page.html" />
<link rel="alternate" hreflang="x-default" href="https://www.example.com/" />
</head>
关键: 每一版页面的 <head> 里要放同一套 hreflang 链接(包括自己)。
2.2 方法 B: HTTP Link: Header
适合非 HTML 文件(PDF 等):
Link: <https://example.com/file.pdf>; rel="alternate"; hreflang="en",
<https://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
<https://de.example.com/file.pdf>; rel="alternate"; hreflang="de"
注意 URL 用 < > 包裹,逗号分隔多个。
2.3 方法 C: XML Sitemap
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://www.example.com/english/page.html</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/english/page.html"/>
<xhtml:link rel="alternate" hreflang="de" href="https://www.example.de/deutsch/page.html"/>
<xhtml:link rel="alternate" hreflang="de-ch" href="https://www.example.de/schweiz-deutsch/page.html"/>
</url>
<url>
<loc>https://www.example.de/deutsch/page.html</loc>
<!-- 同样 3 个 xhtml:link 必须再列一遍 -->
</url>
<!-- 每个版本都列一次,内部 xhtml:link 完全一致 -->
</urlset>
优点: 大站维护方便,集中管理。
⚠️ 3 方法等价,不要同时用 — 没好处,只增加维护成本。
Part 3 — hreflang 6 大铁律 ⭐⭐⭐
- 每个 locale 版必须列全所有 locale 版,包括自己 — 漏自己 Google 不补
- 必须双向(A → B 时,B 也要 → A)— 单向链接 Google 会忽略整个 annotation
- 绝对 URL(含协议)—
https://example.com/foo不是//example.com/foo - 可跨域(
example.com和example.de互相 hreflang 没问题) - language code 必须 ISO 639-1(2 字母)
- region code 必须 ISO 3166-1 Alpha 2(2 字母),仅 region(
en-419)不支持
3.1 加 x-default 兜底
不匹配任何 locale 的用户去哪?用 x-default:
<link rel="alternate" href="https://example.com/" hreflang="x-default" />
⚠️ x-default 没语言码 — 它就是用户语言不匹配时的兜底。设计给 language selector 页用。
3.2 简化场景: 维护不全所有版本
新建子站 → 一开始只跟主语言双向链接(优先级)。例: 原 .fr 主站,新加 .mx 和 .es → .mx 和 .es 都先双向链到 .fr,以后再补 .mx ↔ .es。
3.3 完整 hreflang 例子(比利时 4 种语言)
<!-- 比利时德语 -->
<link rel="alternate" hreflang="de-be" href="https://example.com/de-be/" />
<!-- 比利时荷兰语 -->
<link rel="alternate" hreflang="nl-be" href="https://example.com/nl-be/" />
<!-- 比利时法语 -->
<link rel="alternate" hreflang="fr-be" href="https://example.com/fr-be/" />
⚠️ 不能只写 region:hreflang="be" 不是 "比利时" — be 是 Belarusian (白俄罗斯语)!第一码永远是 language。
3.4 中文脚本变体
| Code | 含义 |
|---|---|
zh-TW |
中文(繁体,自动推断 — 因为 Taiwan 用繁体) |
zh-Hant |
中文(繁体,显式指定脚本) |
zh-Hans |
中文(简体) |
zh-Hans-US |
简体中文,美国用户 |
3.5 ⚠️ 常被忽略的 region 码
EU/UN/UK在 hreflang 里不识别(被 Google 忽略)- 英国用
gb(ISO 3166-1 Alpha 2)不是uk
3.6 Debugging 工具
Part 4 — URL 结构 4 种选型
| 结构 | 例 | Pros | Cons |
|---|---|---|---|
| ccTLD(country-specific TLD) | example.de |
清晰最强信号 / 服务器位置无关 / 易分离 | 贵 / 基建复杂 / 部分国家有 ccTLD 资格限制 / 只能 target 单国 |
| Subdomain + gTLD | de.example.com |
易设置 / 服务器位置灵活 / 易分离 | 用户可能不知道 "de" 是语言还是国家 |
| Subdirectory + gTLD ⭐ | example.com/de/ |
易设置 / 同一 host 易维护 | 用户可能不知道是 geotargeting / 单服务器 / 分离难 |
| URL 参数 | site.com?loc=de |
不推荐 | URL 分段难 / 用户难识 |
4.1 Generic vs Country TLD 列表
完全 gTLD: .com .org .edu .gov 等
地区性 gTLD(被当作 generic): .eu / .asia
生效 gTLD 待遇的 ccTLD(20 个):
.ad .ai .as .bz .cc .cd .co .dj .fm .io .la .me .ms .nu .sc .sr .su .tv .tk .ws
→ 这些 ccTLD 不会被 Google 默认按地区 target,需要显式 geotarget(hreflang / Search Console)。
4.2 Google 选 target locale 的信号(优先级降序)
- ccTLD(.de = Germany 强信号)
- hreflang 标注(HTML / header / sitemap)
- 服务器 IP 位置(用 CDN 时此信号弱)
- 其他:本地地址 / 电话 / 本地货币 / 来自本地站的链接 / Business Profile
4.3 ⚠️ Google 不用 的信号
- ❌
<html lang="de">属性 - ❌ URL 路径里的语言词(
example.com/de/这个/de/本身只是路径,Google 看 hreflang / 内容判语言) - ❌ subdomain 名(
en.example.com的enGoogle 不自动判作英文) - ❌
geo.position/distribution等 locational meta tag(完全忽略)
Part 5 — Multilingual 站具体策略
5.1 用不同 URL,不要 cookie / browser 设置改语言
✅ example.com/en/page + example.com/de/page
❌ 同 URL,根据 Accept-Language 改内容
Why: Googlebot 通常不带 Accept-Language header,看不到变体。
5.2 让用户能切语言
✅ 加 "Choose language" 选择器 / 国旗 / 下拉 ❌ 自动 redirect 用户到他猜的语言 — 阻碍用户和 Google 看其他版
5.3 Locale-Adaptive Pages 的 Googlebot 行为
如果你站对同一 URL根据用户 IP / Accept-Language 返不同内容(locale-adaptive):
- Googlebot 现在是 geo-distributed 的 — 不只 US IP,有其他国家 IP
- 看到哪国 IP 的 Googlebot,就给哪国用户看的内容
- 不会专门为发现你的所有 locale variants 调度
- Google 强烈推荐你改用 separate URL + hreflang
⚠️ robots.txt 和 robots meta 必须在所有 locale 一致。
5.4 单一语言主导的 boilerplate 翻译
例: 论坛 / UGC 站,正文是 EN,只翻译 navigation / footer 到 DE。
→ Google 把这种页判为 duplicate(主内容没变),所以这种情况 hreflang 也不是必须,但加了能 hint 用户更友好的版本。
5.5 URL 用本地词 / IDN
✅ example.com/lebensmittel/pfefferminz(德语 URL)
✅ example.com/ペパーミント(日语 URL,UTF-8 编码 + 链接时 percent-encode)
✅ IDN 域名 example.中国
Part 6 — Multi-Regional 站 geotargeting
6.1 4 种 geotarget 方式
A. ccTLD(.de .cn .jp)— 最强
B. subdirectory /de/ + Search Console 设国家 target(可选)
C. subdomain de.example.com + hreflang
D. explicit hreflang annotations(无论 URL 结构)
6.2 ⚠️ 不要做的
- 不要 IP 分析自动适配内容 — Google 不会变 crawler 源
- 不要自动 redirect 美国用户到 .us 版(阻碍 .com 被发现)
- 不要在 sitemap 只列 ccTLD 一种 — 漏其他 locale
6.3 同语言重复内容怎么办
example.de/ 和 example.com/de/ 都是德语内容:
→ 选一个 canonical 用 rel="canonical" + hreflang 双 buff 标对应 region。
Part 7 — Explicit Content 5 大 Best Practice ⭐
7.1 何时本指南适用
- 你站有 sexually explicit 内容 / nudity
- 你站有 graphic violence
- 你站含 sex toys / 性服务等
⚠️ CSAM(儿童色情): Google 不分类、直接全网移除 + 处罚整站。这不是 SafeSearch 而是法律层。
7.2 SafeSearch 工作原理
SafeSearch 过滤(用户设 Filter / Blur)的内容类型:
- 各种 explicit sexual content / pornography
- Nudity / 裸露
- 写实 sex toys
- 性导向 dating / escort
- 暴力 / blood
- 链向 explicit 内容的页
EDSA 豁免(SafeSearch 允许的): 教育(Education)/ 记录(Documentary)/ 科学(Scientific)/ 艺术(Artistic)价值的内容。
SafeSearch off / Blur 时,Google 仍会:
- 移除违 content policy 的(如 CSAM)
- 应用户请求移除 personal info(尤其 非自愿 explicit imagery / deepfake)
7.3 5 Best Practice
A. 防 UGC harmful 内容
平台型站(UGC)应实施:
- publisher verification
- content moderation 流程
- hash matching(检测已知 CSAM)+ classifier(检测未知)
⚠️ 容许 UGC 上传 CSAM / 非自愿 explicit → Google demote 整站,影响所有页排名。
B. 允许 Googlebot fetch 视频文件
走 allow video fetch。Why:Google 不 fetch → 无法自动 CSAM 检测 → 整页可能被降权 / 过滤(尤其 Video mode)。
担心暴露视频?用 verify Googlebot 反向 IP 确认。
C. 允许 Googlebot 绕过 age gate
verify Googlebot → 给真 Googlebot 直接返内容,不弹 age gate。
⚠️ 不允许 → Google 看不到内容 → 整站可能被判 explicit(即便实际不是),SafeSearch on 时完全消失。
D. 分独立 domain / subdomain
| ✅ | ❌ |
|---|---|
explicit.example.com/... + www.example.com/... 分开 |
全部混在 www.example.com/... |
Why: Google 算法粒度是站级,混在一起 → 整站被分类 explicit → SafeSearch on 时主站消失。
不用真叫 "explicit",随便取名,关键结构上分离。
E. 标 explicit 页 meta rating
<meta name="rating" content="adult">
或等价(选一即可):
<meta name="rating" content="RTA-5042-1996-1400-1577-RTA">
也可用 HTTP response header。视频 sitemap 标 explicit:
<video:family_friendly>no</video:family_friendly>
7.4 ⚠️ Explicit 页面不享有的 Search feature
- ❌ rich results
- ❌ featured snippets
- ❌ video previews
(无论 SafeSearch on/off)
Part 8 — Explicit Misclassified Troubleshooting
8.1 5 步排查
1. 单页测: SafeSearch Off 能搜到 + Filter On 搜不到 = 单页被过滤
2. 全站测: site:example.com + Filter On 搜不到 = 全站被过滤
3. 对照 5 大常见错误修
4. 等 2-3 月让 Google 重判
5. 仍误判 → request review
8.2 5 大常见误判错误
| Mistake | 修法 |
|---|---|
| adult rating meta 滥用 在非 explicit 页 | 只在真 explicit 页用。SafeSearch filter 一切带 rating="adult" 的页 |
<video:family_friendly>no 滥用 |
只对真 explicit 视频用 |
| UGC 评论无 moderation 被刷 explicit | 加 moderation;走 prevent abuse |
| Age gate 挡 Googlebot | 验证 Googlebot 后跳过 age gate |
| explicit 和非 explicit 混域 | 分独立 domain / subdomain |
8.3 仍 misclassified 怎么办
- 改完最少等 2-3 月,Google classifier 重新处理需要时间
- 如果站本来就大量 explicit,whole site 被分类 explicit 是预期的
- 模糊 explicit 图像但可被 unblur → 仍判 explicit
- explicit 页不享 rich results / featured snippets / video previews
Part 9 — 反 pattern 集锦
| # | 反 pattern | 后果 |
|---|---|---|
| 1 | hreflang 只在一页加,其他不加 | 单向,Google 忽略整套 annotation |
| 2 | hreflang URL 用相对路径 | 不识别 |
| 3 | 用 ISO 639-1 之外的 language code | 忽略 |
| 4 | 用 EU / UN / UK 当 region |
忽略 |
| 5 | 只写 region code 不写 language(hreflang="be") |
be 被当作 Belarusian 语言,不是比利时 |
| 6 | 同一页同时用 HTML + Header + Sitemap 三种 hreflang | 增加维护成本,无信号增益 |
| 7 | 用 cookie / Accept-Language 改语言不分 URL | Googlebot 看不到变体 |
| 8 | 自动 redirect 用户到他猜的语言 | 阻碍发现其他版 |
| 9 | 用 IP 分析适配内容 | Google 不变 crawler 源,看不到 |
| 10 | 给非 explicit 页加 meta rating="adult" |
SafeSearch 过滤 |
| 11 | 给所有视频标 family_friendly=no |
全被过滤 |
| 12 | 整站 explicit 混在主域 | 整站被 SafeSearch 过滤 |
| 13 | Age gate 挡 Googlebot | Google 看不到内容,站可能被判 explicit |
| 14 | 期望 Google 用 <html lang> 判语言 |
Google 不看 lang 属性,看正文内容 |
| 15 | 期望 Google 用 URL 路径 /de/ 判 locale |
路径只是 URL,不是 locale 信号 |
| 16 | 在 sitemap 列 hreflang 但漏自己 | annotation 失效 |
| 17 | hreflang 链接到 fragment(#xxx) |
不支持 |
| 18 | 期望短时间内 explicit 误判修复 | classifier 需 2-3 月 |
Part 10 — 相关 wiki
- canonical 配合 hreflang(同语 dup): Canonical / 重定向 / 网站迁移完全指南 (含 HTTP 状态码全表 + 503 临时停业 playbook) 的 hreflang cluster 偏好
- Sitemap 怎么写 hreflang xhtml: Sitemap 完全指南 (XML / RSS / Text + image / video / news / hreflang 扩展 + sitemap index) Part 11
- mobile + hreflang 分开配置(m-dot): Googlebot 抓取机制与索引控制完全指南 (URL/Links/Mobile-first/Meta/Testing/AMP) Part 5.3
- robots meta 配合 explicit: 抓取与索引控制完全指南 (robots.txt / noindex / X-Robots-Tag / data-nosnippet / rel) 的 SafeSearch / nopagereadaloud
- Video sitemap
<video:family_friendly>: Sitemap 完全指南 (XML / RSS / Text + image / video / news / hreflang 扩展 + sitemap index) Part 7 - UGC spam 防范: 安全 / Spam / Removal / 搜索运算符 完全指南 (malware + phishing + UGC + redacted + site:) Part 6
- Search Console verify Googlebot: Googlebot 抓取机制与索引控制完全指南 (URL/Links/Mobile-first/Meta/Testing/AMP) Part 1.5
Last updated
2026-05-17 — 基于 Google Search Central 6 篇 specialty/international + specialty/explicit 系列(2025-12 ~ 2025-12-22 最新)整理。
来源与关联资料
- https://developers.google.com/search/docs/specialty/international?hl=en
- https://developers.google.com/search/docs/specialty/international?hl=zh-cn
- https://developers.google.com/search/docs/specialty/international/locale-adaptive-pages?hl=en
- https://developers.google.com/search/docs/specialty/international/locale-adaptive-pages?hl=zh-cn
- https://developers.google.com/search/docs/specialty/international/localized-versions?hl=en
- https://developers.google.com/search/docs/specialty/international/localized-versions?hl=zh-cn
- https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites?hl=en
- https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites?hl=zh-cn
- https://developers.google.com/search/docs/specialty/explicit/guidelines?hl=en
- https://developers.google.com/search/docs/specialty/explicit/guidelines?hl=zh-cn
- https://developers.google.com/search/docs/specialty/explicit/troubleshooting?hl=en
- https://developers.google.com/search/docs/specialty/explicit/troubleshooting?hl=zh-cn