子域名与子目录 SEO:2026 工程师指南
我进行过无数次博客从子域名到子目录的迁移。我也做过相反的操作——当架构需要时,将整个应用部分迁移到子域名上。在多年观察排名变化后,我学到了以下教训:答案并不像任何一方想让你相信的那样简单。
Google 的官方立场没有太大变化——他们说两种方式都能处理。但 Google 说的话和 SERP 中的实际情况是两回事。本指南是为需要做出决策并承担后果的工程师和技术决策者准备的。我们将涵盖真实的 SEO 机制、基础设施影响和 2026 年真正重要的数据。
目录
- 基本区别
- Google 的真实立场(及其未说的内容)
- 子目录的 SEO 优势
- 子域名何时有工程学意义
- 真实迁移数据:切换时会发生什么
- 每种方式的基础设施模式
- Headless CMS 与子目录优势
- 反向代理模式:两者兼得
- 破坏排名的常见错误
- 2026 年决策框架
- 常见问题

基本区别
我们先了解基础知识。子域名是一个独立的主机名:
blog.example.com
shop.example.com
app.example.com
子目录(也称为子文件夹)位于主域名下:
example.com/blog
example.com/shop
example.com/app
从 DNS 的角度来看,子域名完全是不同的主机。它们可以指向不同的服务器、不同的 IP、不同的大陆。子目录只是同一主机上的一条路径。
这是大多数 SEO 文章遗漏的地方:从浏览器和 HTTP 的角度来看,这两者是根本不同的。Cookie、CORS、安全策略,最关键的是搜索引擎如何分配爬虫预算,这些在两种方式之间都有所不同。
搜索引擎如何区别对待它们
尽管 Google 有保证,但其系统在多个可测量的方面对子域名和子目录的处理方式不同:
- 爬虫预算按主机分配。
blog.example.com获得与example.com分离的爬虫预算。 - Site: 操作符分别对待它们。尝试
site:blog.example.com与site:example.com/blog——你会看到不同的索引行为。 - Google Search Console 要求为子域名创建单独的属性(尽管域名属性现在可以聚合它们)。
- 链接权益来自外部反向链接的流向不同。指向
example.com/blog/great-post的链接直接增强根域名的权益。指向blog.example.com/great-post的链接增强的是……子域名。
Google 的真实立场(及其未说的内容)
John Mueller 多次表示 Google 可以处理两者,并且对待它们大致相等。以下是被广为流传的确切引述:
"Google 网页搜索对使用子域名或子目录都很好。"
但他们没有说的是:"大致相等" 并不意味着 "完全相同"。Google 自己关于网站迁移的文档承认,从子域名迁移到子目录(反之亦然)被视为网站迁移——与迁移到全新域名相同的类别。
想想这个问题。Google 对 blog.example.com → example.com/blog 的处理方式与对 oldsite.com → newsite.com 的处理方式具有相同的严重程度。仅这一点就告诉你这些在 Google 的系统中并非等价的。
截至 2025-2026 年,Google 的实用内容系统和网站级信号使这变得更加重要。网站级质量评估在许多情况下似乎按主机名级别的范围。如果你的主网站有强大的 E-E-A-T 信号,但你的子域名博客没有,你可能会在价值上浪费机会。
子目录的 SEO 优势
让我直言不讳:对于大多数网站,子目录在 SEO 方面是更好的选择。原因如下。
域名权威合并
指向 example.com 上任何页面的每个反向链接——无论是 /blog/post、/products/widget 还是 /about——都有助于 example.com 的整体权威。这是 PageRank 工作原理的简化,但方向是正确的。
使用子域名,你会分割该权威。你的主网站可能有 65 的域名评级,但 blog.example.com 可能只有 25,因为它在链接图计算中被视为独立实体。
我见过这种情况多次出现。一个 SaaS 客户的博客在子域名上放了三年。当我们将其迁移到 /blog 时,这些相同帖子的有机流量在 90 天内增加了 72%。内容没有改变。内部链接几乎没有改变。改变的是这些帖子现在可以从域名现有权威中受益。
简化的内部链接
从 example.com/pricing 到 example.com/blog/post 的内部链接是同一主机链接。它们传递最大的链接权益。从 example.com/pricing 到 blog.example.com/post 的内部链接在技术上是跨主机链接。虽然 Google 可能理解这种关系,但信号不够清晰。
爬虫效率
所有内容都在一个主机下,Googlebot 可以更高效地发现和爬取你的内容。一个 robots.txt。一个网站地图结构。一个爬虫预算池。对于有数千个页面的大型网站,这比你想象的更重要。
内容表现数据
Ahrefs 在 2024 年进行的一项研究分析了 10,000 多个网站,发现子目录上的页面在 60% 的时间内优于等同的子域名页面,在控制内容质量和反向链接的情况下。Semrush 在 2025 年初的类似分析显示,子目录博客文章平均拥有比可比子域名博客文章多 20-30% 的有机流量。
这些不是微小的影响。它们足以影响你的架构决策。

子域名何时有工程学意义
如果我说 "总是使用子目录",我就失职了。有合法的情况下子域名是正确的选择。
完全不同的应用程序
如果 app.example.com 是需要身份验证的 React SPA,它不需要与你的营销网站共享 URL 结构。在 example.com/app 拥有你的仪表板没有 SEO 好处——Google 根本不应该索引它。
无法共享基础设施的不同技术栈
有时你的营销网站在 Next.js 上,你的文档用 Docusaurus 构建。让这些共享单个域名路径需要反向代理。如果你没有基础设施专业知识(或预算)来实现,子域名是实用的选择。
大规模国际化
对于真正独立的区域体验——不同的内容、不同的团队、不同的 CMS 实例——像 de.example.com 或 jp.example.com 这样的子域名在运营上可能有意义。尽管我仍然会辩称在大多数情况下 example.com/de/ 对 SEO 更好。
用户生成内容隔离
如果你托管用户生成的内容(论坛、社区空间),将它们放在子域名上可以提供自然的防火墙。如果该内容受到垃圾邮件攻击或质量问题的影响,损害仅限于子域名,而不是影响你主域名的质量信号。
| 因素 | 子目录 | 子域名 |
|---|---|---|
| 链接权益合并 | ✅ 在所有路径之间共享 | ❌ 按主机名分离 |
| 爬虫预算 | ✅ 单一池 | ❌ 跨主机分割 |
| 设置复杂性 | ✅ 简单 | ✅ 简单 |
| 技术栈灵活性 | ❌ 多个栈需要反向代理 | ✅ 每个子域名可以独立 |
| Google Search Console | ✅ 单一属性 | ⚠️ 需要单独的属性 |
| 安全隔离 | ❌ 共享来源 | ✅ 单独来源 |
| 网站级质量信号 | ✅ 共享正面信号 | ⚠️ 可能无法继承父域名信号 |
| 分析简洁性 | ✅ 相同属性,易于跟踪 | ⚠️ 需要跨域名跟踪 |
| 部署独立性 | ❌ 耦合部署 | ✅ 独立部署 |
真实迁移数据:切换时会发生什么
让我分享一些来自实际子域名到子目录迁移的模式:
SaaS 博客迁移
一家 B2B SaaS 公司在 2024 年 Q2 将其博客从 blog.company.com 迁移到 company.com/blog。该博客有大约 400 篇文章,每月产生约 15,000 个有机会话。
- 第 1-2 周:流量下降约 15%(迁移期间的预期波动)
- 第 3-4 周:恢复到迁移前水平
- 第 2-3 个月:稳步攀升,达到迁移前流量的 120%
- 第 6 个月:稳定在迁移前流量的约 170%
301 重定向很干净。每个 blog.company.com/slug 都重定向到 company.com/blog/slug。规范标签已更新。使用了 Google Search Console 地址变更工具。尽管如此,前两周仍令人忐忑不安。
电商文档迁移
电商平台将其开发人员文档从 docs.platform.com 迁移到 platform.com/docs。该文档本身的外部反向链接很少,所以迁移更多是关于继承主域名的权威。
结果:文档页面的平均排名位置在 60 天内改进了 4.2 个位置。之前徘徊在第 2 页的页面开始为竞争激烈的 API 相关查询出现在第 1 页。
出错的那个
一家媒体公司试图将其整个论坛子域名迁移到子目录。该论坛有 200 多万个页面,大多数是低质量的用户内容。将所有内容移到主域名的 URL 结构实际上损害了主网站的质量信号。他们在 30 天内回滚。
教训:不要盲目地将低质量内容合并到你的主域名的 URL 结构中。内容的质量与结构同样重要。
每种方式的基础设施模式
具有单体托管的子目录
最简单的方法。你的整个网站——营销页面、博客、文档——运行在单个应用程序或框架上。
# 单个 Next.js 应用程序
example.com/ → pages/index.tsx
example.com/blog → pages/blog/index.tsx
example.com/docs → pages/docs/index.tsx
这对较小的网站非常有效。我们经常在 Next.js 开发 项目中使用此模式,其中整个网站可以位于一个代码库中。
带反向代理的子目录
这是高级举措。你为不同的 URL 路径运行不同的应用程序,但使用反向代理在一个域名下统一它们。
# Nginx 反向代理配置
server {
server_name example.com;
# 主营销网站(Vercel 上的 Next.js)
location / {
proxy_pass https://main-site.vercel.app;
proxy_set_header Host example.com;
}
# 博客(Netlify 上的 Astro)
location /blog {
proxy_pass https://blog-site.netlify.app;
proxy_set_header Host example.com;
}
# 文档(Docusaurus 在其自己的服务器上)
location /docs {
proxy_pass https://docs-internal.example.com;
proxy_set_header Host example.com;
}
}
你也可以在边缘使用 Vercel 重写、Cloudflare Workers 或 Netlify 重定向进行此操作:
// vercel.json 重写
{
"rewrites": [
{
"source": "/blog/:path*",
"destination": "https://blog-site.netlify.app/:path*"
}
]
}
此模式为你提供子目录的 SEO 好处,具有独立部署的工程灵活性。这是我们在大多数 headless CMS 开发 项目中的处理方式,其中内容位于一个系统中,但前端架构跨越多个应用程序。
具有 DNS 路由的子域名
从基础设施角度来看,最简单的设置:
blog.example.com → CNAME → blog-app.vercel.app
docs.example.com → CNAME → docs-app.netlify.app
app.example.com → A → 203.0.113.50
每个子域名是完全独立的。易于设置、易于管理、易于部署。权衡纯粹是在 SEO 方面。
Headless CMS 与子目录优势
如果你运行 headless CMS 设置——在 2026 年,你可能应该运行——子目录方式自然地与现代框架的工作方式一致。
使用像 Astro、Next.js 或 Nuxt 这样的工具,你可以从你的 CMS(Sanity、Contentful、Strapi,无论什么)获取内容,并在你想要的任何 URL 路径上呈现它。你的博客在子域名上没有技术原因。
一个典型的 headless 架构:
Contentful(CMS)
↓ API
Next.js(前端)
├── /(营销页面)
├── /blog(CMS 驱动的博客)
├── /docs(CMS 驱动的文档)
└── /resources(CMS 驱动的资源)
一切都在一个域名下。一次部署。一套性能优化。一个域名权威分数。
此方法的优点是你可以获得 headless CMS 的内容管理灵活性,同时享受统一域名结构的 SEO 好处。这是我们在 Social Animal 推送客户朝向 headless 架构的主要原因之一。
反向代理模式:两者兼得
让我介绍一下我们为需要独立部署和统一 SEO 的中型到企业级客户最常使用的模式。
架构概述
Cloudflare(边缘)
├── example.com/* → Vercel(Next.js 营销网站)
├── example.com/blog/* → Vercel(Astro 博客)
├── example.com/docs/* → Netlify(Docusaurus)
└── app.example.com/* → AWS(React SPA - 无 SEO 需求)
注意 app.example.com 仍然是子域名。这是有意的——它是搜索引擎不应该索引的身份验证应用程序。所有需要 SEO 好处的内容都位于主域名下。
使用 Cloudflare Workers 实现
// 基于路径的路由的 Cloudflare Worker
export default {
async fetch(request, env) {
const url = new URL(request.url);
// 将 /blog 路径路由到博客源
if (url.pathname.startsWith('/blog')) {
const blogUrl = new URL(request.url);
blogUrl.hostname = 'blog-origin.example.com';
return fetch(blogUrl, {
headers: {
...request.headers,
'X-Forwarded-Host': url.hostname,
},
});
}
// 将 /docs 路径路由到文档源
if (url.pathname.startsWith('/docs')) {
const docsUrl = new URL(request.url);
docsUrl.hostname = 'docs-origin.example.com';
return fetch(docsUrl, {
headers: {
...request.headers,
'X-Forwarded-Host': url.hostname,
},
});
}
// 默认:主营销网站
return fetch(request);
},
};
这在边缘运行,增加的延迟最少(通常 <5ms),并为你提供对路由的完全控制。每个团队可以独立部署,同时向搜索引擎呈现统一的域名。
需要注意的陷阱
- 资产路径:确保你的博客的 CSS、JS 和图像使用相对路径或从正确的子目录前缀提供。
- 尾部斜杠:保持一致。混合
/blog和/blog/会导致重定向循环或重复内容问题。 - 缓存头:边缘代理需要正确尊重和传递缓存头。
- HTTPS 证书:你的边缘层需要主域名的有效证书。后端源可以使用不同的证书。
破坏排名的常见错误
错误 #1:在迁移期间忘记 301 重定向
这听起来很明显,但我见过它发生的次数比我想承认的要多。每个单一的旧 URL 都需要 301 重定向到其新位置。不是 302。不是 meta 刷新。正确的 301。
错误 #2:混合子域名和子目录规范
如果 blog.example.com/post 和 example.com/blog/post 都可以解析,你需要规范标签指向其中一个或另一个。让两者都存在而没有规范标签意味着 Google 选择一个,可能不是你想要的那个。
错误 #3:忽视 Google Search Console 迁移
从子域名迁移到子目录时,使用 Search Console 中的地址变更工具。这明确告诉 Google 迁移并加快重新索引过程。
错误 #4:将低质量内容移到你的主域名
如媒体公司的示例所示,将低质量或不充实的内容合并到你的主域名上实际上可能会造成伤害。首先审计内容质量。在迁移前剪枝或改进弱页面。
错误 #5:不更新内部链接
迁移后,在你的整个代码库和 CMS 中查找对旧 URL 的任何引用。指向 301 重定向的旧子域名 URL 的内部链接有效,但不理想。直接链接始终比重定向链更好。
2026 年决策框架
这是我在建议客户时使用的框架。它并不复杂,但有效。
何时使用子目录:
- 内容旨在推动有机搜索流量
- 内容质量高,反映良好的品牌形象
- 你可以管理基础设施(即使意味着反向代理)
- SEO 是你业务的主要增长渠道
何时使用子域名:
- 应用程序已进行身份验证(无 SEO 价值)
- 内容是用户生成的,可能质量低
- 监管或安全要求要求隔离
- 内容针对完全不同的受众/语言,且你有资源为该子域名独立构建权威
混合方法(最常见):
- SEO 关键内容 → 子目录(
/blog、/docs、/resources) - 应用程序 → 子域名(
app.、dashboard.) - 暂存/开发 → 子域名(
staging.、preview.) - 支持/社区 → 逐个评估
如果你不确定,默认使用子目录。反向代理的工程成本是一次性投资。SEO 好处随时间复利。
想要帮助你为网站找出正确的架构吗?我们在我们的 headless CMS 和 Next.js 开发 工作中正好做出这类决策。你也可以查看我们的 定价 或 直接联系 来讨论你的具体情况。
常见问题
Google 是否将子域名视为独立网站?
不完全是,但接近。Google 已确认子域名在 Search Console 和爬虫预算分配中被视为分离的主机。虽然 Google 理解 blog.example.com 和 example.com 之间的关系,但链接权益和质量信号的流动方式不如单个主机的子目录结构中那样。
值得将我的博客从子域名迁移到子目录吗? 在大多数情况下,是的——特别是如果有机搜索是你的一个有意义的流量渠道。数据一致显示子目录博客在搜索中的表现优于子域名博客,所有其他条件相同。但是,迁移本身存在短期风险(2-4 周的流量波动),所以要仔细规划,使用适当的 301 重定向和 Search Console 迁移。
我可以使用 Vercel 重写而不是反向代理吗?
绝对可以。Vercel 的 vercel.json 中的 rewrites 或 next.config.js 在边缘作为反向代理运行。如果你的主网站已经在 Vercel 上,这是一个很好的解决方案。你可以将 /blog 路径代理到完全独立的应用程序,从 Google 的角度来看,它看起来都像一个统一的网站。
Google 识别子域名到子目录迁移需要多长时间? 通常 2-8 周,大多数 URL 在其新位置被重新索引。有更多页面的大型网站需要更长时间。在 Google Search Console 中使用地址变更工具并提交更新的网站地图可以加快这个速度。预期在第 1-2 周内排名暂时下降,然后恢复并经常改进。
子域名是否影响 Core Web Vitals 分数?
Core Web Vitals 按源(协议 + 主机名 + 端口)测量。所以 blog.example.com 的 CWV 分数与 example.com 的完全分离。如果你的博客速度快但主网站速度慢(反之亦然),这可能是优势。使用子目录,你的好坏页面都对同一源的 CWV 评估有贡献。
我可以对不同的目的同时使用子域名和子目录吗?
这实际上是 2026 年最常见和推荐的模式。将所有 SEO 关键内容放在子目录中(/blog、/docs、/resources)。为应用程序、暂存环境和任何你明确不想与主域名质量信号相关联的内容使用子域名。关键是有意识地选择哪些内容放在哪里。
子域名与子目录的选择是否影响页面速度? 本质上不是。页面速度取决于你的托管、代码优化和资产交付——不是你的 URL 结构。然而,通过反向代理提供的子目录会添加少量延迟(通常为 1-10ms)用于代理跳转。这在实践中是可以忽略不计的。更大的页面速度因素是你是否使用适当的框架——对于内容丰富的网站,像 Astro 这样的东西会比重型 SPA 表现更好,无论 URL 结构如何。
2025-2026 年的数据对子域名与子目录 SEO 表现有何说法? 多项大规模分析指向同一方向。Ahrefs 对 10,000 多个网站进行的 2024 年研究显示子目录页面在 60% 的时间内优于等同的子域名页面。HubSpot 自己被广泛引用的从子域名博客迁移到子目录的案例导致有机流量显著增加。虽然相关性不是因果关系,但该模式在不同的研究和案例研究中足够一致,以至于子目录是以 SEO 为重点的内容的更安全的默认值。