本文约 3,145 字,预计阅读 8 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:外贸站的典型困境
做外贸独立站的读者几乎都踩过这个坑:国内团队负责百度,海外同事负责 Google,两边各写一份优化清单,最后发现要求互相冲突——一边说“正文关键词密度要够”,一边说“不要堆词”;一边说“外链越多越好”,一边说“一条相关性差的外链就是扣分项”。更糟的是技术层面:为了给百度做一套 m. 域名移动站,结果 Google 那边出现两套重复内容。
根结在于把 SEO 当成了“一套规则的两个版本”,而实际上百度和 Google 在内容评判方式、抓取能力、索引更新节奏、对站点的信任建立方式上有本质区别。认清这些区别,才能找到“一套代码同时服务两个引擎”的最大公约数。
原理分析:差异集中在四个层面
一是相关性计算方式。 百度历史上对标题、锚文本、精确匹配的依赖更重,关键词在标题中的位置对排名影响明显;Google 经过 BERT、MUM 之后,更依赖语义匹配与用户行为反馈,标题里堆词的边际收益接近零。
二是抓取与渲染能力。 Google 的渲染队列(Web Rendering Service)能执行 JavaScript 并渲染出内容,但仍有延迟与配额;百度对 JS 渲染的支持更保守,重要内容必须出现在服务端返回的 HTML 里。这一点直接决定了你该不该把正文交给前端框架渲染。
三是索引更新与观察期。 Google 新页面的发现到索引通常是天级,热门站点可以小时级;百度新站有更明显的“观察期”,首页被抓取后子页面可能数周才逐步放出。这也是 新站三个月没收录的排查路径 里要单独讨论的问题。
四是信任与外链。 Google 的 PageRank 体系与 E-E-A-T(经验、专业、权威、可信)评估高度依赖外部信号与作者/站点身份;百度对站点的信任更多来自历史表现、备案与主体信息、以及自身生态(百科、知道、经验等)的关联度。
| 差异维度 | 百度 | |
|---|---|---|
| JS 渲染抓取 | 能力有限,重要内容需服务端直出 | 支持渲染但有延迟,同样建议直出 |
| 新站观察期 | 较明显,数周级 | 通常天级 |
| 结构化数据 | 支持部分 schema,富媒体展现有限 | Schema.org 支持完整,富媒体结果丰富 |
| 移动适配 | 曾有 m. 域名的历史包袱 | 强制移动优先索引 |
| 多语言 | 基本无 hreflang 概念 | hreflang 是国际站标配 |
| 外链作用 | 有影响但更看重站内与站点历史 | 核心权重信号之一 |
| 站点工具 | 搜索资源平台(ziyuan.baidu.com) | Search Console(search.google.com/search-console) |
| 惩罚机制 | 飓风/清风/惊雷等具名算法 | 核心更新 + 垃圾内容政策 |
| 点击行为 | 对刷点击打击强 | 更依赖真实交互信号 |
| 死链处理 | 有专门的死链提交入口 | 靠 404/410 与 sitemap 自动淘汰 |
| 站点验证 | 文件、meta、CNAME | 域名 DNS、HTML 文件、meta 标签、GA、GTM |
| 排名波动周期 | 相对频繁,日常小幅波动 | 核心更新期间集中波动 |
保姆级实操
步骤 1:技术底座做成“引擎中立”。 服务端直出 HTML、语义化标签、唯一的规范 URL、正确的状态码,这些在两个引擎里都是加分项,不存在冲突。先把这一层做扎实,再谈差异策略。
步骤 2:URL 结构一次性定死。 不要为百度单独搞一套 m. 子域或 /m/ 目录。响应式 + 唯一 URL 是两边都能接受的解法。如果历史包袱已经存在,用 301 + rel="alternate" 标注移动页关系。
步骤 3:把参数 URL 归一到规范地址。 追踪参数、排序参数、分页参数会产生大量重复入口,两个引擎都会被稀释。在 Nginx 层把带 utm_ 等追踪参数的请求 301 到纯净 URL:
# 放在 server 块内:剥离 utm_* 等追踪参数,统一到规范地址
if ($args ~* "^(.*)(^|&)utm_(source|medium|campaign|term|content)=[^&]*(.*)$") {
set $clean_args $1$3$4;
set $clean_args $query_string;
}
# 更稳妥的写法:仅对明确的参数名做剥离后重定向
location / {
if ($arg_utm_source) {
return 301 $scheme://$host$uri?$args_without_utm;
}
try_files $uri $uri/ /index.php?$args;
}
map $args $args_without_utm {
default $args;
"~*(?<prefix>.*)(?:^|&)utm_source=[^&]*(?<suffix>.*)" $prefix$suffix;
}
步骤 4:差异化的内容策略。 百度侧重视标题精确匹配与中文语义覆盖,Google 侧重视内容深度、作者身份与外部引用。同一篇文章可以同时满足两者:标题写清楚核心词,正文做深,并把作者信息与引用来源显式写出来。
步骤 5:两套工具都要接。 百度搜索资源平台管死链、抓取诊断与索引量;Google Search Console 管索引覆盖、Core Web Vitals 与富媒体结果。两边数据口径不同,不要拿一边的数据去解释另一边。
步骤 6:多语言必须上 hreflang。 如果同时有中英文版本,用 rel="alternate" hreflang="x" 双向标注,并给未匹配语言配 x-default。这是 Google 侧的硬要求,百度基本不读。
常见踩坑
- 为百度单独做一套精简页。 内容不一致会被 Google 判为 cloaking 或低质。
- 把外链预算平分给两个引擎。 Google 看重的是英文语境下的相关性站点,中文友链对它几乎无意义。
- 用同一个 sitemap 混放中英文且不带 hreflang。 Google 会挑一个版本,另一个长期“已发现未索引”。
- 只对百度做结构化数据,Google 那边一直没校验。 两边支持的字段不同,Google 侧要用富媒体结果测试工具单独验证。
- 认为 Google 不看重站内结构。 实际上 Google 对内部链接与层级深度的依赖非常高。
- 忽略服务器地理位置。 主要用户在欧美却把服务器放在国内,Google 侧的 LCP 直接不达标。
- 案例: 一家工业设备厂同时做中英两版,英文版是中文版机翻后直接上线,且两个版本互相没有 hreflang。结果 Google 把英文版判为重复内容长期不索引,百度那边因为英文内容与中文高度重复,也把部分页面归为低质。后来改为英文站独立撰写、双向 hreflang 标注、并给英文版单独做外链,四个月后 Google 才开始有稳定的展现量。机翻内容在任何一个引擎里都不是原创。
总结
两个引擎的最大公约数是:服务端直出的干净 HTML、唯一规范 URL、正确状态码、真实有深度的内容、可被抓取的内部链接结构。在这个底座之上再做差异化——百度侧重精确匹配与站点历史信任,Google 侧重语义深度、结构化数据与外部权威信号。判断标准很简单:凡是“只对一边有利、对另一边有害”的做法(差异化内容、隐藏跳转、两套标题)都不要做;凡是“两边都为正分”的做法,优先做。
