这类问题我又碰上了一次。换 SEO 插件后 sitemap 里多出几千条 /?s= 地址,提交当天 Search Console 就报了新增 URL。两周后索引里全是搜索结果页,真正文章的抓取反而变少。试过重新生成 sitemap,条目还在。

第一反应是「sitemap 生成时直接扫数据库,搜索页被当成普通页面」,验证下来不成立。

真正麻烦的地方在于,几个原因的现象几乎一样。插件把站内所有可访问 URL 都写进 sitemap,没有排除查询参数;搜索页返回 200 且没有 noindex,sitemap 等于给它盖章;提交后蜘蛛按 sitemap 逐条抓取,抓取预算被大量占用。

第一件事是看 sitemap 里有没有问号

curl -s https://www.example.com/sitemap.xml | grep -c '?s='

然后在生成器里排除搜索页

add_filter('wp_sitemaps_posts_query_args', function($a){ $a['s']=''; return $a; });

接着关闭搜索页的 sitemap 条目

add_filter('wp_sitemaps_taxonomies', '__return_empty_array');

等前面都确认过,再重新提交并观察抓取占比

curl -s https://www.example.com/sitemap.xml | grep -c '<url>'

恢复的判定其实很直接。重新生成的 sitemap 里问号地址归零,Search Console 的抓取统计里搜索页占比从四成降到不足一成。

补一句。sitemap 不是全站地址清单,它是给蜘蛛的优先级建议,把低质参数页塞进去等于主动浪费预算。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189