你刚把网站切到 HTTPS,第二天发现搜索流量腰斩,收录掉得只剩零头——别慌,这真不是你技术不行,是迁移时漏掉了几个搜索引擎特别在意的细节。

我帮上百个网站做过 HTTPS 迁移,踩过的坑、被百度和 Google 打回来的反馈,全在这儿了。不讲虚的,只说你现在就能查、能改、能见效的事。

为什么谷歌、百度会“惩罚”你的HTTPS迁移?

搜索引擎不讨厌 HTTPS,它讨厌“不确定”。

你换了个协议,就像搬了家却没贴搬家告示:旧地址还能打开(哪怕只是返回 404),新地址又没明确告诉爬虫“这是我本人”,它只能先观望——观望的结果,就是降权、减收录、暂停索引。

我见过最急的一次:某家居电商上线 HTTPS 后,直接关掉了所有 HTTP 入口,连 301 都没留。百度爬虫一访问老链接就撞上 404,以为整站关停,三天内收录从 2 万+掉到 800 多条。后来补重定向、重新验证,花了两个多月才回到原来水位。

HTTP 和 HTTPS 在搜索引擎眼里,确实是两个站点。你不主动认领、不打标记、不递关系,它不会自动合并。外链权重不会自己跨协议跑过去,排名也不会凭空继承。

装完 SSL 证书只是起点,不是终点。真正的关键动作是:让搜索引擎清清楚楚看到——“这是同一个站,只是换了个更安全的门牌号”。

5个必须检查的迁移步骤,少一个都可能翻车

1. 301重定向:你的第一道防线

每个 HTTP URL,都要一对一跳到对应的 HTTPS URL。不是只跳首页,不是只跳带 www 的主域名,而是 /product?id=123 要跳到 /product?id=123/about#team 要跳到 /about#teamhttp://blog.example.com 也要跳到 https://blog.example.com

别用 JavaScript 跳转,爬虫看不到;也别用 <meta http-equiv="refresh">,Google 明确说过不把它当重定向信号。

Apache 用户检查 .htaccess,Nginx 用户翻 server 块里的 return 301rewrite 规则。重点看通配符有没有覆盖子目录和参数,比如 ^/(.*)$^/$ 管用得多。

2. 内部链接和资源:别让搜索引擎“断粮”

页面里一张 HTTP 协议的图片、一个 HTTP 加载的字体、一段 HTTP 引入的统计脚本——都会触发“混合内容”警告。现代浏览器要么屏蔽,要么加载但标红,搜索引擎也会降低信任分。

打开 Chrome,按 F12,切到「控制台」或「网络」标签页,刷新页面。如果看到红色报错写着 “Mixed Content”,说明有资源还在走 HTTP。

最省心的解法是:把所有资源路径改成相对协议或根相对路径。比如把
<img src="http://example.com/images/logo.png">
换成
<img src="/images/logo.png">
或者
<img src="//example.com/images/logo.png">
这样协议自动跟随当前页面,一劳永逸。

3. 站点地图和robots.txt:给搜索引擎指路

如果你的 sitemap.xml 里还是满屏 http:// 开头的链接,等于给 Google 和百度发了一份过期地图——它们照着找,只会扑空。

同样,robots.txt 里写的 Sitemap: http://example.com/sitemap.xml 也得同步改成 HTTPS 地址。

改完立刻去 Google Search Console 和百度搜索资源平台提交新站点地图。提交后,手动点一次「请求抓取」HTTPS 版首页,加速识别。

4. 搜索引擎站长工具:完成地址变更

很多站长加了 HTTPS 属性,却忘了最关键的一步:在 Google Search Console 里点「设置 → 地址变更」,在百度搜索资源平台里点「站点配置 → 网站改版」。

这不是可选项。这是告诉搜索引擎:“我搬好了,旧地址的所有权益,请平移过来。”

添加新属性后,系统会开始验证(通常 3–7 天)。期间保持 HTTP 和 HTTPS 两端都能正常访问(靠 301),别删旧属性、别关旧服务器,等验证完成再逐步收尾。

5. 混合内容问题排查:最后一个坑

混合内容分两类:

  • 被动型:图片、CSS、视频 poster 图——浏览器会加载,但地址栏打感叹号;
  • 主动型:JS、iframe、Web Font、AJAX 请求——浏览器直接拦截,页面功能可能直接失效。

用浏览器开发者工具逐页检查当然可行,但更高效的是:导出全站 URL 列表,用 Why No Padlock?(免费在线工具)批量扫一遍。它会直接标出哪一页、哪个资源还在用 HTTP。

常见藏雷点:第三方评论插件、客服弹窗 JS、CDN 上的老静态资源、WordPress 主题里写死的 HTTP 链接。

迁移后3-6个月的观测清单,别以为做完就完事

HTTPS 迁移不是上线即结束,而是一场持续的信任重建。

第1个月:盯收录和抓取日志
每天搜 site:yourdomain.com,看 HTTPS 域名下的结果数是否稳中有升。同时翻服务器 access log,确认 Googlebot 和 Baiduspider 的 User-Agent 访问的都是 HTTPS 地址。如果还有大量 HTTP 请求,说明重定向漏了或缓存没清。

第2–3个月:看关键词排名和外链流向
排名短期波动正常,但如果连续三周主词全线下滑,马上查外链:用百度搜索资源平台或 Google Search Console 的「外部链接」报告,看指向你网站的外链,有多少还钉在 HTTP 地址上。这些链接需要你主动联系对方改掉,或者至少确保它们经过你的 301 跳转。

第3–6个月:验权重是否真正转移
重点看站长工具里的「链接分析」数据:HTTPS 版本的外链数量、来源域名数,是否在稳步增长?HTTP 版本的外链数是否持续下降?如果 HTTP 外链长期不归零,说明重定向没生效,或者有大量 JS 渲染页绕过了服务端跳转。

我经手过一个工业设备 B2B 站点,因历史外链太分散,权重完全过渡用了 7 个多月。只要中间没断重定向、没删旧入口,时间会站在你这边。

一个90%的人都会忽略的细节:HSTS预加载

HSTS 不是 SEO 必选项,但它决定了搜索引擎会不会彻底放弃 HTTP 版本。

加了 HSTS 响应头后,浏览器会记住:“这个站只认 HTTPS”,下次用户输 http://,浏览器自动改成 https:// 再发请求——相当于帮你堵死了所有 HTTP 入口。搜索引擎看到这点,会更快判定“HTTP 已作废”,从而加快索引切换。

操作很简单:在服务器响应头里加上
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
然后去 hstspreload.org 提交域名。审核通过后,Chrome、Edge、Firefox 会在新版本中内置你的规则。

注意:preload 是不可逆操作,提交前务必确认全站已稳定运行 HTTPS 至少 48 小时,且所有子域名都支持 HTTPS。

今天就能做的1个操作:检查你的HTTP版本是否还有流量

打开你天天用的百度统计或 Google Analytics,进「受众」→「技术」→「网络」(GA)或「流量来源」→「协议类型」(百度统计),筛选出 http:// 开头的会话。

如果 HTTP 流量占比超过 5%,说明重定向没全覆盖——可能是某些二级目录没配、CDN 缓存了旧跳转、或者用户从书签/老外链直接进了 HTTP 页面。

马上验证:打开终端(Mac/Linux)或命令提示符(Windows),输入

curl -I http://yourdomain.com

看返回的第一行是不是 HTTP/1.1 301 Moved Permanently,并且 Location: 后面跟的是对应 HTTPS 地址。如果不是,今晚就改服务器配置,别等明天。