搜索全站
Google SEO 8 分钟阅读

国际站点 URL 结构决策:ccTLD、子域、子目录的优劣与适用场景

ccTLD、子域、子目录三种结构决定了国际站点的权重分配与运维成本。本文给出六维度对比表、各自的适用场景、WordPress 多站点配置要点,以及迁移到另一种结构的代价评估。

U
UFO_PF 2025-04-19 · 阅读 8 分钟
国际 GOOGLE SEO
阅读提示
本文约 3,073 字,预计阅读 8 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:结构一旦定下,改起来就是一次全站迁移

国际站点最早要做的决定不是翻译,而是 URL 结构。很多人凭直觉选——「美国站用 .com,日本站用 .jp」听起来自然,「/en/ /ja/ 子目录」看起来省事。但这两种选择背后的权重逻辑完全不同:ccTLD 下每个国家站是独立的站点,权重从零积累;子目录则共享主域的权重存量。选错了不是不能改,但改一次等价于一次全站迁移,索引、排名、外链全部要重新转移,代价极高。

原理分析:三种结构的本质差异

维度 ccTLD(example.jp) 子域(jp.example.com) 子目录(example.com/jp/)
权重积累 独立域名,从零开始 部分共享,弱于子目录 完全共享主域权重
地区信号 最强,直接向用户和 Google 明示 弱,需靠 hreflang 与 Search Console 定位 弱,同上
运维成本 最高,多套站点多套证书 中 最低,一套站点
内容同步 困难 中等 容易
本地信任度 最高 中 中
风险隔离 好,一国被罚不影响他国 中等 差,全站共担

Google 官方明确表示支持三种结构,没有偏好。真正的差异在于两点:

第一,权重复用效率。子目录能让新语种立刻共享主域已有的权威度,这是新进入某市场时最大的优势。ccTLD 则要重新积累,通常需要更长时间才能在当地搜索结果中立足。

第二,地区信号的强度。ccTLD 是最强的国家定位信号,适用于「各国内容完全独立、面向本地用户」的场景。子域和子目录高度依赖 hreflang 与 Search Console 的地理定位设置。

决策的核心判断标准是:你的各语言版本内容是同源还是差异化。同源且资源有限,选子目录;各国内容、价格、库存完全不同且预算充足,选 ccTLD;介于两者之间、或者技术架构需要隔离(比如不同国家用不同 CDN/机房),选子域。

保姆级实操

步骤一:先列出决策输入
写下四个变量:目标国家数、各版本内容差异度、运营团队规模、现有主域权重水平。内容差异度低 + 团队小 + 主域有积累,直接选子目录。

步骤二:子目录方案的落地
单站点 + 多语言插件(WPML、Polylang、TranslatePress)是最省事的组合。固定链接保持 /ja/post-name/ 形式,确保 hreflang 与 canonical 同步(参见 hreflang 部署)。

步骤三:子域方案的落地
可用 WordPress 多站点(Multisite)的子域模式。在 wp-config.php 中启用:

/* 开启多站点(子域模式) */
define( 'WP_ALLOW_MULTISITE', true );
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'mimangfei.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

nginx 侧用通配证书与泛解析:

server {
    listen 443 ssl http2;
    server_name ~^(?<sub>.+)\.mimangfei\.com$;
    ssl_certificate     /etc/letsencrypt/live/mimangfei.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mimangfei.com/privkey.pem;

    root /var/www/mimangfei;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }
}

步骤四:ccTLD 方案的落地要点
每个 ccTLD 是独立站点,需要各自的 Search Console 属性、各自的站点地图、各自的服务器或 CDN 节点。hreflang 必须跨域名互指,这一点最容易遗漏。

步骤五:无论选哪种,都要做地理定位设置
对于 ccTLD 之外的结构,Google 主要依据 hreflang 判断地区。可以在 Search Console 里用网址检查工具确认各版本的地区识别是否正确。

步骤六:评估迁移代价
如果要从一种结构换成另一种,必须按站点迁移标准执行:全量 301、站点地图更新、内部链接替换、索引监控。可以用这条命令预估需要映射的 URL 数量:

# 从站点地图统计待迁移 URL 总数
curl -s https://mimangfei.com/wp-sitemap-posts-post-1.xml \
  | grep -o '<loc>[^<]*</loc>' | wc -l

步骤七:把结构决策写进文档
记录选择理由、约定的代码规范(语言代码、地区代码)、URL 命名规则。多语言项目最怕的是中途风格漂移,最后出现 /en-us/ 与 /en/ 并存。

常见踩坑

  1. 用子域做多语言,但每个子域部署了完全独立的内容且没做 hreflang,权重完全分散。
  2. ccTLD 站点之间没有做跨域名 hreflang,各站互相被判定为重复内容。
  3. 子目录方案下用 cookie 或 IP 跳转改变 URL,Googlebot 抓到的永远是默认语言版本。
  4. 同一内容同时存在 /en/ 与 en.mimangfei.com 两个版本,自我竞争。
  5. 多站点启用后未配置泛解析证书,子域全部打不开。
  6. 案例:某外贸企业为「显得国际化」给六个国家各买了一个 ccTLD,但所有站点内容都是机器翻译的同一套产品页。半年后六个域名均无任何排名,而同期用子目录上线的英文版已积累两百多个关键词排名。最终被迫把五个 ccTLD 301 回主域子目录,损失了大半年时间。
  7. 迁移到子目录时只做了首页跳转,深层页面 404,权重转移失败。

总结

结构选择的判断标准是内容差异度与资源规模:内容同源、团队小、主域有积累,优先子目录;各国内容完全独立且预算充足,才考虑 ccTLD;需要技术隔离时用子域。选定后最重要的是保持 URL 风格统一,并把 hreflang 做全(含自引用与双向互指)。结构一旦上线就不要轻易改,迁移代价等同于重建站点。落地后建议用 hreflang 部署 的规范检查标签,用 抓取预算优化 控制各版本的抓取优先级,并用 服务器日志分析 验证 Googlebot 是否真的抓到了每一个语言版本。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。