文章页的评论被分成 comment-page-2 到 comment-page-20,每页 canonical 都指向自己,蜘蛛每天抓三万多次。正文更新后反而要等一周才被抓。试过在 robots 里挡,收录没降。
一开始怀疑是「评论内容重复度高,抓完也不会带来任何排名」,查了一圈,方向不对。
这类报错背后常见的原因有几处,逐个排除就行。评论分页被当成独立页面,canonical 自指等于承认它该收录。还有一种是分页链接在文章底部全部输出,蜘蛛顺着爬到最后一页。
不容易想到的是,robots 只挡抓取,已索引的分页不会被删除。
第一件事是统计评论分页的抓取占比
awk '{print $7}' /var/log/nginx/access.log | grep -c 'comment-page-'
随后把分页 canonical 指回正文
add_filter('get_canonical_url', function($u){ return is_singular() ? get_permalink() : $u; });
给评论分页加 noindex
add_action('wp_head', function(){ if (is_singular() && get_query_var('cpage')) { echo '<meta name="robots" content="noindex,follow">'; } });
只保留前两页链接
add_filter('page_links', function($l){ return array_slice($l, 0, 2); });
改完先别撤,确认这几项。评论分页的日抓取从三万次降到两千次以内,正文页的重新抓取间隔从一周缩短到两天。
提醒一点。评论分页不是不能存在,而是不该作为独立入口参与索引,canonical 与 noindex 选一个用到底。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
