反正会执行 JS,就没管初始 HTML

重构站点时,前端把列表改成了接口拉取,页面上什么都没有,等脚本跑完才出现。

我当时想,现在搜索引擎都能跑 JS,问题不大。三个月后,新页面收录几乎为零,才知道想错了。

初始 HTML 决定两件事

这两件事,决定了后面的所有优化有没有意义,也决定了你排不排得上队。

能不能被发现:链接得在 HTML 里,抓取才顺着走,靠点击事件跳转的等于没有路。

值不值得排队:首屏有标题、有摘要、有正文片段,才有理由优先抓,空骨架只能排在后面。

这两件事都发生在渲染之前,渲染只是后面的补充,顺序不能倒过来。

宝塔拨测工具盒:站长工具与 IT 工具入口

宝塔拨测工具盒:站长工具与 IT 工具入口

内容入口的三个位置

入口断了,内容再好也进不去,这是结构问题不是内容问题。

列表页:每条要有真实的可点击链接,不要用点击事件代替,也不要用 div 假装链接。

正文里:相关推荐、上下篇、分类入口,都是抓取往下走的路径,越自然越好。

面包屑与站点地图:给出一条结构化路径,比让抓取自己猜强,也利于判断层级。

首屏骨架该有什么

骨架至少要说清「这一页是什么」,做不到这一点,后面全是空转。

页面标题,一个页面只留一个主标题,多个 H1 会稀释主题。

一段可读的摘要或首段文字,别全是占位符,占位符在抓取眼里就是没内容。

关键数据的静态文本,重要的价格、时间、状态尽量先渲染出来。改完用宝塔拨测的工具集里的蜘蛛模拟抓取,禁用脚本再抓一次,看 HTML 里到底有什么。

常见误区

这三个误区,本质都是把渲染当成了默认前提,而它只是加分项。

以为提交了地图就不用管内链,地图只是入口之一,不是全部。

以为 JS 渲染出来用户能看到,抓取就一定看得到,这两件事的代价完全不同。

以为首屏是骨架屏也没关系,反正一秒后就替换了,问题是抓取可能只看到那一秒。

怎么验证

验证方法很朴素:关掉脚本,再看一遍,差异就是你的风险敞口。

看返回的 HTML 里有没有标题、正文片段和链接,三样都要有。

什么都没有,就先补静态入口,再谈渲染优化,顺序反了就是白做。

风险敞口小一点,收录就稳一点。

稳一点,团队就不用天天救火。

不救火,才有时间做正事。

正事做完,架构就稳了。

架构稳,改动才敢做。

敢改,才不会越拖越旧。

旧了,问题就多。

问题多,就更不敢改。

死循环就是这么来的。

跳出来,才算真的修好了。