把站点切到 HTTPS 之后,很多人以为安全连接就万事大吉。实际上,证书配置、混合内容和跳转方式里的细节,会直接影响蜘蛛能不能顺利抓到页面。蜘蛛在请求一个 URL 时,如果先遇到证书错误,通常不会像浏览器用户那样点“继续访问”,而是直接终止这次抓取。结果就是页面在日志里看起来“没被抓”,但问题并不在内容。
蜘蛛为什么会在 HTTPS 环节停下
蜘蛛对 HTTPS 的判断比较直接:证书是否有效、域名是否匹配、证书链是否完整、服务器是否支持当前客户端。任何一项不满足,请求就可能失败。这里不需要讨论“蜘蛛是否收录”,而是先保证门能打开。
还有一类问题更隐蔽:页面本身是 HTTPS,但里面引用了 HTTP 的图片、脚本或样式。浏览器会提示“混合内容”,有些资源被拦截,页面渲染不完整。蜘蛛看到的内容可能缺图、缺样式,甚至缺关键文本。
证书自查:先看四个硬指标
- 有效期:证书是否临近过期,是否已经过期。过期证书会让抓取直接失败,最好在到期前留出足够的更换窗口。
- 域名匹配:证书覆盖的域名是否包含实际访问的域名,包括带 www 和不带 www 的版本。如果只签了一个,另一个就可能报错。
- 证书链:中间证书是否完整部署。有些桌面浏览器能自动补全,但蜘蛛和部分客户端不一定能。
- 协议与套件:服务器是否关闭了过旧协议,同时没有把蜘蛛常用的 TLS 版本一并挡掉。改完要实际请求验证。
混合内容自查:别让页面只加载一半
混合内容常出现在老站点或第三方资源上。可以按资源类型逐个检查:
- 图片和媒体文件是否仍用 HTTP 地址。
- JavaScript 和 CSS 是否从 HTTP 引入。
- 字体、图标、iframe 是否混用协议。
- 站内链接和表单提交地址是否指向 HTTP。
浏览器控制台会列出被阻止的混合内容,抓取工具和日志也能看到资源请求失败。把资源地址统一改成相对协议或直接写 HTTPS,能减少这类问题。
跳转与 HSTS:别让蜘蛛多跑几趟
HTTP 到 HTTPS 的跳转建议用 301,并且尽量一步到位。常见问题是先跳不带 www 的 HTTP,再跳带 www 的 HTTPS,最后又跳一次带斜杠的版本,形成跳转链。蜘蛛虽然能跟,但会多消耗一次请求,也容易在链路中间丢失信号。
如果已经启用 HSTS,要确认所有子域名都准备好了 HTTPS。HSTS 一旦下发,浏览器会强制走 HTTPS,如果某个子域没有证书,用户和蜘蛛都会直接访问失败。上线前先在测试环境验证,再逐步扩大 max-age。
一份可执行的自查清单
- 用命令行或在线工具检查证书有效期、域名匹配和证书链。
- 打开页面控制台,确认没有混合内容拦截记录。
- 检查站内主要入口是否从 HTTP 301 到 HTTPS,且跳转不超过一次。
- 确认 sitemap、robots.txt 和内部链接里写的都是 HTTPS 地址。
- 查看服务器日志,筛选 TLS 握手失败和 5xx 相关请求。
- 如果用了 CDN,确认回源协议和边缘证书也正常。
HTTPS 不是一次性配置,而是会随证书到期、资源更换和域名调整而变化的状态。把它放进定期巡检,比出事后再排查更省力。
最后提醒一句:证书和混合内容问题不会直接决定排名,但它们会决定蜘蛛能不能正常拿到页面。门都打不开,后面的内容优化就无从谈起。建议把证书到期日、跳转规则和混合内容检查写进站点运维清单,按固定周期过一遍。