拨测实战:能执行脚本的搜索系统,也需要初始HTML有清晰内容入口
反正会执行 JS,就没管初始 HTML
重构站点时,前端把列表改成了接口拉取,页面上什么都没有,等脚本跑完才出现。
我当时想,现在搜索引擎都能跑 JS,问题不大。三个月后,新页面收录几乎为零,才知道想错了。
初始 HTML 决定两件事
这两件事,决定了后面的所有优化有没有意义,也决定了你排不排得上队。
能不能被发现:链接得在 HTML 里,抓取才顺着走,靠点击事件跳转的等于没有路。
值不值得排队:首屏有标题、有摘要、有正文片段,才有理由优先抓,空骨架只能排在后面。
这两件事都发生在渲染之前,渲染只是后面的补充,顺序不能倒过来。

宝塔拨测工具盒:站长工具与 IT 工具入口
内容入口的三个位置
入口断了,内容再好也进不去,这是结构问题不是内容问题。
列表页:每条要有真实的可点击链接,不要用点击事件代替,也不要用 div 假装链接。
正文里:相关推荐、上下篇、分类入口,都是抓取往下走的路径,越自然越好。
面包屑与站点地图:给出一条结构化路径,比让抓取自己猜强,也利于判断层级。
首屏骨架该有什么
骨架至少要说清「这一页是什么」,做不到这一点,后面全是空转。
页面标题,一个页面只留一个主标题,多个 H1 会稀释主题。
一段可读的摘要或首段文字,别全是占位符,占位符在抓取眼里就是没内容。
关键数据的静态文本,重要的价格、时间、状态尽量先渲染出来。改完用宝塔拨测的工具集里的蜘蛛模拟抓取,禁用脚本再抓一次,看 HTML 里到底有什么。
常见误区
这三个误区,本质都是把渲染当成了默认前提,而它只是加分项。
以为提交了地图就不用管内链,地图只是入口之一,不是全部。
以为 JS 渲染出来用户能看到,抓取就一定看得到,这两件事的代价完全不同。
以为首屏是骨架屏也没关系,反正一秒后就替换了,问题是抓取可能只看到那一秒。
怎么验证
验证方法很朴素:关掉脚本,再看一遍,差异就是你的风险敞口。
看返回的 HTML 里有没有标题、正文片段和链接,三样都要有。
什么都没有,就先补静态入口,再谈渲染优化,顺序反了就是白做。
风险敞口小一点,收录就稳一点。
稳一点,团队就不用天天救火。
不救火,才有时间做正事。
正事做完,架构就稳了。
架构稳,改动才敢做。
敢改,才不会越拖越旧。
旧了,问题就多。
问题多,就更不敢改。
死循环就是这么来的。
跳出来,才算真的修好了。