记录一下那天晚上的排查过程。站内搜索页被搜索引擎收录了几千条,标题都是搜索词拼接,内容重复度高,还占用了大量抓取预算。
真正麻烦的地方在于,几个原因的现象几乎一样。搜索页没有加 noindex,参数也没有限制。另一种情况是站内搜索结果被外部链接引用。
少数情况下是分页参数让地址数量成倍增长。
上来先统计搜索页的收录与抓取量
grep -c '?s=' access.log
给搜索页统一加 noindex
add_filter('wp_robots', 'search_noindex');
等前面都确认过,再在 robots 里限制参数抓取
Disallow: /?s=
命令输出我都留了记录,免得改完记不清原来的值。
改完先别撤,确认这几项。搜索页逐步退出索引,抓取预算回到正常内容页,站内搜索功能不受影响。
容易忽略的是,noindex 需要蜘蛛抓到才生效,配合 robots 才能立刻止损,但 robots 挡了之后就看不到 noindex 了,顺序要清楚。先让蜘蛛抓到 noindex,等收录清空后再加 robots 限制。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。