先把当时的情况摆出来。每篇文章打 5 个标签,系统自动生成标签页共三千多个,每个页面只有十来个标题和一个标签名,收录率不到 5%。

真正麻烦的地方在于,几个原因的现象几乎一样。标签页只有列表没有描述,被判薄内容。也可能是单个标签下只有一两篇文章,页面无独立价值。

另外,标签页之间互相链接,形成大量低质内链。少数情况下是sitemap 全量输出,抓取预算被这些页面吃掉。

第一件事是统计各标签下的文章数

SELECT t.name, COUNT(*) c FROM wp_terms t JOIN wp_term_relationships r ON t.term_id=r.term_taxonomy_id GROUP BY t.term_id HAVING c<3;

只保留文章数达标的标签页

add_filter('wp_robots', function($r){ if(is_tag() && $GLOBALS['wp_query']->found_posts<5){ $r['noindex']=true; } return $r; });

给保留的标签页补描述

UPDATE wp_termmeta SET meta_value='关于 Nginx 的排查记录与配置说明' WHERE term_id=88 AND meta_key='desc';

sitemap 只输出有描述的标签

SELECT term_id FROM wp_termmeta WHERE meta_key='desc' AND meta_value<>'';

怎么算真的好了,看的是同一批现象。标签页总数从三千降到两百以内,保留页面在六周内收录率超过七成,抓取日志里低质标签页请求明显减少。

提醒一点。标签是给用户找内容用的,不是给搜索引擎造页面的,合并同义标签比批量 noindex 更彻底。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189