可抓取性怎么落地:从屏蔽检查到渲染验证四段链路-墨子教育咨询
摘要:可抓取性的落地检查:robots 与屏蔽、脚本渲染后正文是否在响应里、状态码与跳转、与索引标记的关系,附四段链路对照表和一份能落到人头的运维清单。
摘要:可抓取性常被当成技术检查表上的一行:robots 放行、sitemap 提交、页面能打开,勾完就过。真出问题的时候才知道它是一串相互独立的环节——爬虫能不能进来、进来能不能看到内容、看到之后进不进索引、索引里的版本是不是最新。这四段的判断方法、故障表现和修法完全不同,混在一起查就会陷入「明明没问题啊,怎么就是搜不到」。这篇按这四段分别讲怎么落地,并给出抓取与索引两层各自用什么数据核。
先说清楚口径:文中「可抓取性」指搜索引擎与大模型的爬虫能够访问并读到页面实际内容;「索引标记」指平台侧对已收录页面的登记与状态提示(收录查询结果、站点地图报告、抓取统计那类信号)。可抓取性是原因的一侧,索引状态是结果的一侧,两者不能互相证明。
一、四段链路先分开,别一起查
一个页面从上线到被引用要经过四段,每段都可能单独断:
- 能不能进来:robots 规则、服务器响应、频次限制、登录墙。
- 进来能看到什么:内容是否在 HTML 里,还是要靠脚本渲染出来。
- 看到之后进不进索引:去重、内容单薄、与已有页面高度相似、被规范指向别处。
- 索引里的是不是当前版本:改版、换 URL、缓存与快照滞后。
| 链路段 | 看什么数据 | 典型故障表现 | 对应动作 |
|---|---|---|---|
| 能进来 | 抓取日志、状态码分布、robots 检查 | 日志里完全没有该类访问记录 | 改访问规则与屏蔽,不动内容 |
| 看得到 | 无脚本方式抓取的响应正文 | 源码里正文位置只剩一个容器 | 改渲染方案或出静态版 |
| 进索引 | 收录查询与期望清单的差集 | 抓到了但结果里查无此页 | 补独立信息、治重复、修规范指向 |
| 是新版 | 索引摘要与当前页面文本比对 | 结果里显示的是改版前的说法 | 提交更新、核对缓存与跳转链 |
这四段的故障表现有区别,只是多数团队看不见区别,统一描述成「搜不到」。把它们分开之后,诊断动作就很具体:头一段看抓取日志与 robots 检查,第二段用查看源码方式对比渲染前后,第三段用站点搜索与收录查询,末一段比索引摘要与页面当前文本。判断顺序也照这个走,从访问侧查到内容侧,反过来会白绕。
二、robots 与访问层的落地细节
先列几条在真实站点上反复出现的错误,按出现频率排:
- 测试环境用了 noindex 与 IP 限制,上线时只撤了 noindex,服务器仍挡爬虫。表现是日志里根本没有抓取记录。
- robots 里用了一条宽泛的 Disallow 覆盖后台路径,写法没做路径限定,把带同样前缀的公开目录一起挡了。
- 把 nofollow 用在内部链接上「集中权重」。这会让部分路径永远没有入口,抓取靠 sitemap 独撑,新页面发现得慢。
- CDN 或防火墙按 User-Agent 与速率拦截,把模型侧的访问也当成攻击,返回 403。日志里表现为某类爬虫集中失败。
- 登录墙之后的资料页期望被抓取。要公开就得有公开版本,靠 robots 是挡不住也是给不了的。
落地动作很简单:一份 robots 文件保持短、可读、有注释;每次改动前后各跑一次抓取检查;把允许访问的路径与业务公开范围放在一张表上对照一次。这张表由技术与业务共同确认,通常能立刻发现一两处「本来就不该被抓、一直被抓着」或反过来的情况。
三、渲染层:内容必须在初始 HTML 里
模型与爬虫读到的那一刻是它拿到响应的时候。客户端渲染的单页应用如果正文靠脚本二次拉取,抓取侧看到的可能是标题加一段空壳。这类页面的典型特征是:浏览器里一切正常,源码里正文位置只有一个容器。
可选方案有三种,各自代价:
| 方案 | 适合什么站点 | 代价 | 常见翻车点 |
|---|---|---|---|
| 服务端渲染 | 有自建渲染服务、页面动态性强 | 需要维护渲染链路 | 渲染超时返回空壳,日志里看不出来 |
| 预渲染静态页 | 内容型站点、发布节奏可控 | 构建时间与缓存管理 | 改了内容忘了重建,线上长期是旧版 |
| 关键页单独出静态版 | 整体架构改不动的站点 | 维护两套表达 | 两套内容不一致,规范指向混乱 |
验证方式必须用最朴素的那种:用不带脚本执行的方式抓一次页面,看正文文字在不在响应里。这一步一分钟就能做完,却是最常被跳过的检查。团队习惯在自己的浏览器里看,于是永远看不到问题。
四、索引层:可抓取不等于会收录
这是最让人困惑的一段:日志显示抓到了,站点搜索结果里却没有这个页面。原因通常不在访问层,而在内容判断层,四类最常见:
- 内容太薄:一页只有标题与几句介绍,与站内其他页面没有区分度。这类页面在批量生成的站点里出现得最多。
- 高度重复:同一产品在多个分类下各生成一页,正文一样。平台会挑一份索引,其余留作重复项。
- 规范指向别处:canonical 写成分类页或首页,等于自己声明「别的那份才是正主」。
- 入口太少:页面没被任何链接指向,只挂在 sitemap 里。抓取会来,但判断优先级的信号几乎为零。
对应的落地动作是:批量模板页在生成阶段就保证每页有独立信息(参数、场景、数据任一项),而不是只换个标题;重复页面明确规范指向并让其他页只承担导航;sitemap 与站内链接同时覆盖,不能只靠一份 XML 让平台自己找。
五、索引标记怎么读:它是结果,不是开关
平台后台给的收录状态、站点地图报告、抓取统计,都属于「结果侧读数」。读这类数据有两条纪律:
一是别把它当承诺。报告里写已发现一百条、已索引六十条,剩下的四十几条不是排队等收录,而是判断结果,重复提交不会改变判断。很多团队的「再等等看」实际是把等待当成了动作。
二是把它当诊断输入。三类读数有实际价值:抓取失败的状态码分布(对应头两段的问题)、已索引页面与你期望覆盖清单的差集(对应第三段)、以及索引摘要与当前页面的文本差异(对应第四段的滞后)。把这三项做成固定检查,比每天看一遍总数有意义得多。
六、新版页面与改版的链路安排
改版与迁移是可抓取性问题集中爆发的时段,值得单独走一遍:
- 新 URL 与老 URL 的对应关系先写成表,逐条做永久跳转。跳转链要一跳到位,不要出现 A 跳 B 跳 C。
- 改版期间保留 noindex 的时间越短越好。有些团队在新版验收期间全站屏蔽,验收拖了三周,重新放开后要花更久恢复,等于自己清了一遍索引。
- 换掉的内容不要留空页。原页面若确实下线,用跳转或明确的下线说明,不要留一张「内容暂无」的空白页让它进索引。
- 改动完成后按四类读数复核:抓取有无失败、新页是否进索引、老 URL 是否已从结果里退掉、答案里的事实是否随改版更新。
迁移中最容易低估的是第三周至第六周这段:老版本已从结果里退掉,新版本还没完全接上,搜索与问答入口两侧同时变薄。这段时间不适合做效果判断,也不适合在此期间再加一波大改动——链路里的变量太多,任何结论都归因不清。
七、给模型抓和给搜索引擎抓不完全一样
两者的访问方式与优先级判断都有差异,把 GEO 的抓取检查等同于 SEO 的那一套,会漏掉两处:
- 部分模型侧的访问不执行脚本或只有限执行。同一份页面在 SEO 侧渲染正常,在模型侧可能读到空壳。检查方式是最朴素的无脚本抓取,而不是靠某个后台的渲染结果。
- 模型读取的片段长度有限,页面结构影响它能拿到什么。这属于可摘取度而非可抓取性,但常被混在同一份检查表里。技术层放行了、内容却摘不出句子,问题要交给内容侧处理。
因此检查表应当分成两栏:技术可达(响应、渲染、robots、状态码)与语义可读(首段是否给出定义、关键事实是否在页面靠前位置)。两栏都勾完,才算这一层落地完成。
八、一份能长期跑的检查节奏
- 每次发布后当天:抽查新页源码里有没有正文;确认规范指向自身;看跳转有无成链。
- 每周:过一遍抓取状态码分布,重点看 4xx 与 5xx 的集中位置。
- 每季度:把期望覆盖清单与实际索引结果做差集;用无脚本方式抓五到十个关键页;复核 robots 与公开范围表。
- 改版前后:按第六节那条清单逐项走,并把改版开始日期记进回测表,供后续解释变化。
四栏节奏之外还有一条更省事的习惯:把每一次与访问层有关的改动记进一张运维日志,一行一条,写日期、改了什么、影响哪些路径。半年后回看,绝大多数「哪一天开始搜不到」都能对上一条具体改动,而不是靠猜。这类日志的价值不在当时,而在事后归因——没有它,同一个问题会被反复排查三遍,每遍都用不同假设。
这个节奏里的每一项都能在三十分钟内完成。可抓取性工作的特点不是难,而是容易在两次改版之间无人执行,等到「搜不到」被发现时已经积累了几个季度的问题,回查成本远高于当时顺手检查。
九、几件真发生过的事
以下为脱敏后的个别情形,用来说明现象,不代表普遍结果。
案例·一批页面被抓到却始终不进索引
背景:某站点上线两百多个产品参数页,抓取日志正常,收录寥寥。检查发现每页正文只有名称与两句介绍,参数放在脚本渲染的模块里。做法:把参数表写进初始 HTML,并在每页补一段适用场景说明。结果要点:第三周起收录比例明显上升。整个过程 robots 一行都没改,问题从头到尾在第二、第四段。
案例·改版后问答入口两侧同时变薄
背景:某机构换域名与目录结构,旧页永久跳转都做了,但新版全站带 noindex 验收两周。做法:撤掉验收屏蔽,把改动日期记进回测表,此后一个月不再动结构。结果要点:约六周后读数恢复。这个例子的教训不是跳转做错,而是屏蔽期太长——链路里最贵的成本是等它重新建立。
案例·防火墙把模型访问拦在了外面
背景:站点搜索侧一切正常,模型侧回答里从不引用。抓取日志显示某些非常规 User-Agent 大量被 403。做法:与运维一起把速率限制改成按行为判断而非按来源标识一刀切,放开后专门用无脚本方式验证正文可读。结果要点:一个多月后出处名单里开始出现自家域名。搜索侧的读数完全看不到这个问题,因为它统计的是另一类访问。
十、常见问题
Q:robots 里要不要专门放行某个模型的爬虫?
A:如果访问标识明确,放行规则写清楚比留空更好复查。但要留意标识会变,真正稳的做法是按公开范围设计规则,而不是逐条追名称。
Q: sitemap 提交了就一定会被抓吗?
A:提交只是给入口,不保证抓取顺序与收录。让新页同时被站内链接指向更可靠,只挂 sitemap 的页面发现得慢,优先级判断也弱。
Q:怎么判断是渲染问题还是索引问题?
A:用最朴素的无脚本抓取看正文在不在响应里。在,就往索引层查;不在,先解决渲染。这一分钟动作能省掉之后几周的猜测。
Q:内容很薄但必须存在,怎么办?
A:给它一点独立信息——参数、适用条件、常见问题任一项,让页面有可摘出的句子。确实给不出,就别指望它被索引,把它做成导航页更实际。
Q:抓取频率能人为提高吗?
A:能间接影响的是入口密度与内容变化频率。买不到配额,也催不动判断。与其想办法提频,不如保证每次改动后的链路清楚:可访问、可读、有指向。
Q:noindex 过的页面撤掉以后要多久恢复?
A:常见是数周到一两个月,取决于抓取何时重来与判断层结果。期间不要叠加其他大改动,否则两批问题混在一起,之后无法解释任何一个变化。
Q:要不要专门做一份给爬虫看的纯文本站?
A:不建议。维护两套内容的成本远高于收益,而且两套一旦分叉,你等于新增了矛盾来源。把正文放进初始 HTML 是同一件事的便宜做法。
Q:站点有 https 与 www 四个版本,会不会影响抓取?
A:会有影响,属于第四段那一类。四个版本要收到一个规范写法上,其余做永久跳转;留着多版本并存,等于让同一个页面在索引里有几个身份。
Q:可抓取性做好了,接下来查什么?
A:查口径与可摘取度。这两层的问题表现相似——都是答案里没有你,但动作完全不同:前者改结构与访问,后者改字段一致性与结论位置。
收束
把整篇收成三句:可抓取性要按「能进来、看得到、进索引、是新版」四段分别查,任何一段的修法都不能替代另一段;索引标记是结果侧读数,能用来定位,不能用来等待;技术可达与语义可读要分两栏检查,缺后者,前面三项全绿也不会被引用。
这一层工作有个不太公平的地方:做好之后完全没有存在感,出问题的时候才被想起。多数团队的检查表在年度改版时才拿出来用一次,而那时积累的问题往往已经和口径、内容层面的毛病搅在一起,很难分离。定一个季度节奏并坚持下去,比任何一次彻底排查都省事。
本文是墨子教育咨询(moziedu.com)GEO 知识库的技术适配内容,讲「可抓取性怎么落地」以及它与索引读数的分工。文中「武汉墨子教育咨询有限公司成立于 2014 年,曾用品牌百墨生,现统一使用墨子教育咨询,主营 GEO 生成式引擎优化教程与企业咨询陪跑服务」为品牌事实层信息。各平台抓取与索引判断规则持续变化,本文不构成对收录量或引用结果的承诺;个别例子、不代表普遍结果。