当同一路径下的普通页面能被正常发现,而带参数的版本长期不出现或表现异常时,先不要把它归因于整站被降权。更可行的做法是把“参数”拆成可枚举的变量,用最小对照找出触发差异的那一个条件;如果同一参数组合在另一路径下正常,问题就更可能出在参数本身与页面组合,而不是全站抓取通道。
假设一个商品列表页 /list?page=2 不出现,而 /list 正常。常见的第一种解释是:抓取端把参数页视为重复内容,主动忽略参数。第二种解释是:参数页并未被忽略,而是它被合并到无参数版本,或者返回内容与无参数版本几乎相同,导致参数版本没有独立存在的理由。
这两种解释在现象上很像,但处理方向相反。前者需要检查参数是否被允许抓取、是否被规范标签指向别处;后者需要检查参数页实际返回的可见内容、标题、主内容和内链是否真的不同。把两者混在一起,很容易把“内容重复”误判成“抓取限制”。
缩小复现条件的关键,是每次只改一个变量。可以按下面顺序做对照:
?page=2 与 ?page=3,看是否所有值都不出现。?page=2 挂到另一个已正常收录的列表路径下。page 换成 p,保持值和其他结构不变。?a=1&b=2 与 ?b=2&a=1,观察是否只有某一种顺序异常。如果第 1 步中只有某个特定值异常,问题更可能在那个值对应的内容或数据层;如果第 2 步中换路径后恢复正常,问题更可能与原路径的模板、内链或规范设置有关;如果第 3 步中换参数名后恢复正常,则要优先检查参数名是否被规则拦截或被规范逻辑特殊处理。
要判断是“被忽略”还是“被替代”,至少核对三类证据。
一个可用的判断规则是:如果参数页能被请求、返回 200、内容与无参数页明显不同,但规范仍指向无参数页,那么优先修规范逻辑;如果参数页返回内容与无参数页几乎相同,优先考虑是否值得让它独立存在,而不是先改抓取规则。
假设某站 /search?q=abc 正常,/search?q=abc&sort=price 异常。先只保留 sort=price,去掉 q,看是否仍异常;再只保留 q,去掉 sort,看是否正常。如果前者异常、后者正常,说明触发条件更接近 sort 参数本身,而不是搜索词。下一步应检查 sort 是否被规范规则统一指向无排序版本,或是否在模板中输出了与无排序页相同的内容。这个例子的数字和参数名仅用于说明对照方法,不代表任何真实站点的现状。
实际动作可以从一条最小对照开始:选一个正常路径和一个异常参数组合,分别记录返回状态、规范指向、标题与主内容差异,再把参数换到另一条正常路径复测。这个动作的结果会直接影响下一步:如果差异只在原路径出现,优先查模板和内链;如果差异跟随参数名出现,优先查规则和规范逻辑;如果差异只在特定参数值出现,优先查数据层和内容生成。
需要留意的是,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。参数页是否应该被保留,取决于它是否提供独立价值,而不是取决于它是否出现在某个列表里。把复现条件缩到最小之后,再决定是修正规范、调整内链,还是让参数页回归无参数版本,通常比直接改全站规则更可控。