先说为什么基础项值得单独拎出来讲
入口页的内容质量、链接结构、更新频率这些偏上层的设计经常被反复讨论,但真正让蜘蛛连页面都拿不到的,往往是移动端适配、HTTPS 握手、字符集这类基础问题。它们的共同特点是:排查成本并不高,可一旦存在,后面所有优化都会失去意义——蜘蛛的请求在读到正文之前就结束了,页面写得再好也没人看见。
移动端:蜘蛛不一定只用桌面 UA 来抓
现在主流搜索引擎基本都以移动端渲染结果作为主要依据。也就是说,入口页在移动视口下的表现,会直接影响蜘蛛判断这个页面是不是一个可用页面。
- viewport 声明:缺少 viewport 的页面在移动端会被整体缩小,文本虽然存在,但可读性很差。
- 不要只做桌面可访问:有些入口页按 UA 判断,把移动端访客连带蜘蛛一起导向空白页或另一套跳转,属于自找麻烦。
- 遮挡与弹窗:全屏遮罩、强制弹窗、悬浮广告挡住主体内容,会让蜘蛛抓到大量近似空的页面。
- 资源体积:图片、字体文件过大拖慢渲染,在有限的抓取窗口里页面可能还没渲染完就被结束了。
HTTPS 与证书:握手失败就没有后半段
蜘蛛访问入口页的第一步是 TLS 握手。这里出问题,表现通常不是抓取失败,而是完全没有请求记录,所以很难往证书方向去想。
- 证书链完整:中间证书缺失时,部分客户端校验会直接失败。浏览器可能因为缓存过而不报错,蜘蛛却是第一次访问。
- 有效期与域名匹配:过期证书、只签了 www 却用裸域访问,都会中断连接。
- 协议版本统一:站点同时存在 HTTP 与 HTTPS 两个版本且互不收敛,会造成入口页重复和抓取分散。建议固定一个版本,其余用 301 收口。
- 跳转链别太长:多级跳转叠加,蜘蛛容易在中间环节停下。
字符集与编码:乱码会白白浪费一次抓取
入口页的编码要统一。常见情况是页面用 UTF-8 保存,头部却声明成 GBK,或者干脆没有声明、交给客户端去猜。结果标题和正文全是乱码,这次抓取基本等于白费。
- 在 HTML 头部尽早声明 charset,并保证与实际文件编码一致。
- 整站统一一种编码,避免新老页面混用。
- 数据库、模板、生成程序三处编码要对齐,问题往往出在最后的生成环节。
关键内容别全靠 JS 后置加载
蜘蛛虽然大多具备执行 JS 的能力,但执行要排队、会超时,也受额度限制。入口页的标题、正文摘要、以及指向下一层的链接,尽量放在首屏 HTML 里直接输出。这样即使脚本没有跑完,页面依然是一个有内容的页面,而不是一片空白容器。
上线前的自查清单
- 分别用移动 UA 和桌面 UA 访问一次,确认都能拿到相同的主体内容。
- 检查证书有效期、证书链是否完整、域名是否匹配。
- 确认 HTTP 与 HTTPS 只有一个版本对外,其余 301 收口。
- 查看响应头里的 Content-Type 是否带上了正确的字符集。
- 关掉 JS 再访问一次,确认核心文本与链接仍在。
- 翻访问日志,找出那些一条请求都没有的入口页域名,多半是解析或证书的问题。
写在这里的提醒
入口页能不能被抓到,取决于最薄弱的那一环,而不是最强的那个设计。基础项不显眼,却决定了后面所有工作有没有意义。
这些调整大多不需要复杂改造,多数是一次性配置。把它们处理干净,再去谈内容与链接结构上的优化,顺序会更顺一些。