做过网站改版的站长可能遇到过类似情况:站点从HTTP迁到HTTPS,但老版本没有彻底屏蔽,或者新版本上线后旧入口依然保留。于是在蜘蛛池的抓取日志里,同样的内容会以http://与https://两种形式被反复抓取。表面上看蜘蛛很勤奋,实际上URL发现效率正在被悄悄拖累。
搜索蜘蛛如何理解HTTP和HTTPS?
在搜索引擎眼中,http://和https://是两个完全不同的URL。哪怕页面内容一模一样,只要协议不同,就会被视作两个独立地址。蜘蛛爬行时会分别处理,既不会自动认为https是http的升级版,也不会主动选择其中一个作为首选版本。
当站点同时开放两种协议,蜘蛛的抓取队列里就出现了大量重复条目。原本用来发现新URL的资源,被消耗在反复比较两边是否一致上。你会发现新提交的URL迟迟得不到抓取,而蜘蛛却在旧版本的页面上来回跑。
并存带来的具体隐患
- 重复抓取:同一页面被两种协议各抓一遍,浪费了宝贵的最低抓取额度。
- 权重分散:外链和内链若混用协议,链接权重就拆成了两份,导致每个版本都排名不稳定。
- 索引混乱:搜索引擎可能交替索引不同版本,有时甚至同时保留,造成内容重复。
- 协议转换跳转:如果HTTP页面没有301跳到HTTPS,或者跳转链条过长,蜘蛛会失去耐心,放弃继续发现后续URL。
如何引导蜘蛛明确抓取目标
解决思路很清晰:让搜索引擎只认一个协议,并确保所有入口都指向同一版本。以下是可以落地的操作步骤。
1. 全站301跳转
在服务器层面将HTTP请求301永久重定向到HTTPS。注意跳转要直达最终URL,不要出现多次跳转。比如访问http://a.com/old跳到https://a.com/old,再跳到https://www.a.com/new,这种链条会让蜘蛛产生不信任感。
2. 设置canonical标签
在每个页面的head区加上rel="canonical",指向对应的HTTPS版本。即使某个HTTP页面被其他站点链接,搜索引擎也会将这个网址的权重归并到canonical指定的标准地址上。
3. 更新sitemap和内链
sitemap中只保留HTTPS协议的URL。网站内部所有链接,包括导航、正文、底部链接,统一改成HTTPS格式。另外别忘了检查robots.txt,确认没有屏蔽蜘蛛访问HTTPS路径。如果你在用蜘蛛池观察,此时要关注它的抓取队列里是否还出现HTTP入口。
4. 使用HSTS(可选)
HSTS能强制浏览器用HTTPS访问你站点,对真实用户很有效。不过搜索引擎蜘蛛不一定完全支持HSTS,所以不能把它当成唯一的解决方案。它更像是辅助工具,建议在确定HTTP已经完全废弃后开启。
日常检查要点
即使做好了以上配置,也要定期检查是否还有漏网之鱼。例如部分老外链仍然指向HTTP,或某些低版本的浏览器和程序还在请求HTTP。可以用蜘蛛池的模拟抓取功能,主动检查一批历史URL看是否返回301且最终落点正确。
一个容易被忽视的地方:如果HTTP和HTTPS都开启了CDN,跳转规则必须同步配置。否则不同节点可能返回不同的状态码,蜘蛛会认为是两个系统。
总结
HTTP和HTTPS并存不是不能运行,但会严重干扰搜索蜘蛛的URL发现节奏。通过设置唯一协议、合理跳转和统一内链,蜘蛛才能把有限的时间花在发现新URL上。与其让蜘蛛在两个版本之间做选择题,不如你直接告诉它答案。