站内搜索结果页把命中的词用 em 标签包起来高亮,一次搜索能出现几十处。上线两个月后这些结果页在百度的收录量从 800 涨到 6000,排名普遍在五页之外,正文里同一个词反复出现。
把日志和配置对完,能解释这个现象的基本就这几处。高亮让同一关键词在正文里重复十几次,密度异常;结果页标题直接拼搜索词,与高亮内容完全重复;结果页没有 noindex,被外链一带就进了索引;分页参数不同但高亮内容一致,生成大量近似页面。
上来先看结果页正文里关键词高亮出现多少次
curl -s 'https://www.example.com/search?q=nginx' | grep -o '<em>' | wc -l
给结果页加 noindex 并去掉标题拼接
curl -s 'https://www.example.com/search?q=nginx' | grep -i noindex
高亮改成纯样式类不着重语义标签
curl -s 'https://www.example.com/search?q=nginx' | grep -c 'class="hit"'
剩下的就是清理已经收录的结果页
site:www.example.com/search?q=
恢复的判定其实很直接。结果页在覆盖率报表里转入已排除,正文关键词密度回到 3% 以内,正常文章的排名回升。
高亮本身没问题,问题是让带高亮的页面进了索引,语义标签和可索引性是两件事。报错文案容易误导,真正的原因往往在相邻那一层的日志里。
