先不要继续提交或改模板,而是把“特定参数异常”拆成可复现的最小条件:同一路径保留参数时异常,去掉参数后正常,说明问题多半在参数进入服务端后的分支,而不是整站抓取被全面阻断。此时最有效的动作是固定一个正常URL和一个异常URL,逐步删减参数、改变参数顺序、替换参数值,观察返回内容与状态码在哪一步发生分叉;分叉点就是下一步要查的代码、缓存或规则位置。
两种现象看起来都像“收录不好”,但处理方向不同。若不带参数的页面能被正常抓取和展示,带参数的同类页面却长期只出现空壳、错误提示或被替换成不相关内容,优先按参数分支问题处理。若连无参数页面也普遍抓不到、返回异常或内容明显缺失,才应回到整站抓取与服务器层面排查。
判断依据可以看三点:同一路径去参后是否恢复正常;异常是否集中在某一类参数名或参数组合;服务器日志里异常URL是否确实被请求过。如果异常URL根本没有请求记录,问题可能出在链接发现或入口层;如果有请求但返回内容不对,问题在响应生成层。两者不要混在一起改。
选一个正常URL作为对照,再选一个异常URL作为样本,保持路径不变,只动参数。建议按下面顺序做,每步记录状态码、页面标题和正文首段是否变化:
如果删掉某个参数后页面恢复,说明该参数参与了服务端分支、缓存键或重写规则。如果任意值都异常,问题更可能在参数处理逻辑本身,而不是某个具体取值。这个结果会直接决定下一步:前者查该参数对应的业务逻辑,后者查通用解析与缓存策略。
条件一:去参后正常,保留参数异常。这时优先检查参数是否被用于生成页面内容、是否进入缓存键、是否触发重写或跳转。实际动作是把异常URL与正常URL的响应头、正文长度和首屏可见内容做对照。若响应头显示跳转,先追跳转目标;若正文为空但状态码正常,先查模板是否依赖参数取值。处理完一个参数分支后,再回到同一路径验证其他参数组合,避免只修好一个样本。
条件二:去参后仍异常,且多个路径都如此。这时不要再围绕参数做删减,而应转向路径级或站点级问题:该目录是否被规则限制、模板是否整体报错、服务器是否对这类请求统一返回异常。实际动作是换一个同目录下的无参数URL测试,若同样异常,问题不在参数;若恢复正常,则回到条件一。
假设某站商品页 /item?id=100&from=list 在360搜索中只显示空标题,而 /item?id=100 正常。按删减法先去掉 from,页面恢复,说明异常由 from 触发。接着只保留 from=list,异常再次出现,可把范围缩到“列表来源参数进入页面渲染或缓存分支”。下一步不是继续提交URL,而是检查该参数是否让模板走了不同分支、是否被缓存规则区别对待。修复后再用同一路径的其他参数值复测,确认不是只对 list 生效。
参数删减后恢复正常,不等于问题一定在参数本身。缓存可能按完整URL存储,导致带参与不带参命中不同副本;CDN或反向代理也可能对查询串有不同处理。此时清缓存或换一个从未请求过的参数值再测,能区分“参数逻辑问题”和“缓存副本问题”。
另外,robots.txt限制抓取某类参数,不等于该URL一定被移除或一定不被展示;站点地图包含带参URL,也不保证被收录。若异常页面本身返回正常内容,却长期没有出现在结果中,还要考虑链接入口、页面质量和重复内容,而不是只盯参数。把复现条件缩到最小后,再决定是改代码、改缓存还是改入口,才不会在多个层面同时动手而无法判断哪一步真正生效。