先不要急着判断是工具坏了还是外链真的丢了。把“带参数的 URL”和“不带参数的 URL”分别拿去查,如果前者异常、后者正常,问题通常出在参数被当成了页面身份的一部分,而不是整个域名被屏蔽。下一步要做的是固定一组最小变量:参数名、参数值、参数顺序、是否带跟踪码,逐个替换,看异常跟着哪个变量走。
同一个域名下,不带参数的页面能返回结果,带参数的页面却显示无数据或明显偏少,常见有两种解释。
这两种解释的应对方式完全不同:前者是展示口径问题,后者是访问可达性问题。用错方向,会把时间花在根本不需要改的地方。
先做一次手动访问,把带参数的 URL 直接放进浏览器或无头抓取里,记录三件事:HTTP 状态码、最终落地 URL、页面标题是否与预期一致。
这一步的产出是一个明确的分叉:可达性问题继续查参数,展示问题则转向确认规范标签和工具口径。
假设一个商品列表页 <https://example.com/list?page=2&sort=new&utm_source=x> 查询异常,而不带参数的 <https://example.com/list> 正常。不要一次删掉所有参数,按下面顺序逐项测试,每次只保留一个变化:
page=2,去掉排序和跟踪码;sort=new,去掉分页和跟踪码;utm_source=x,去掉分页和排序;sort=new&page=2,看结果是否变化。哪一项单独出现时异常复现,哪一项就是缩小后的触发条件。如果单独测试都正常、组合起来才异常,说明是参数组合或长度触发了限制,而不是某个参数名本身有问题。这个结果直接决定下一步:前者去查该参数对应的服务端规则,后者去查 URL 长度或参数数量上限。
多个角色对同一现象理解不同时,争论“到底有没有外链”没有意义。把分歧写成一张可核对的表,每一行是一个具体 URL 加一组固定参数,列里记录:手动访问状态码、最终 URL、查询工具返回条数、查询时间。同一行数据由不同角色各自跑一遍,差异就会从观点变成事实。
需要提醒的是,查询工具返回条数为零或抓取量下降,不能单独证明处理正确或错误。它还可能来自工具自身的索引更新延迟、查询配额变化、参数规范化策略调整,或目标站点临时限流。只有把手动访问结果和工具结果放在一起对照,才能判断异常属于哪一类。
如果手动访问确认带参数页面可达,但查询仍长期无数据,再去看抓取规则。robots.txt 里的限制只影响抓取,不等于可靠的索引移除;站点地图里列出带参数 URL 也不保证被收录。这两点常被混为一谈,导致把“没被抓取”和“被要求不索引”当成同一件事处理。
此时可以做的实际动作是:对缩小后的那一个参数组合,单独确认它是否被允许抓取、是否返回了与主页面不同的实质内容。如果带参数页面只是主页面的重复展示,把它规范到主 URL 是合理选择,查询结果里它消失也就不再是异常。如果它承载了独立内容却被折叠,才需要针对该参数调整规范化设置。无论哪种结论,都应以手动访问和抓取日志的实际返回为准,而不是以查询工具的条数变化作为唯一证据。