报错是这么冒出来的。全站 6000 条内链,锚文本只有「点击这里」「查看详情」「了解更多」三种,页面之间互相引用两万次。新栏目上线两个月,搜索里仍然只按标题匹配,长尾词一条都没排上来。
中间走过弯路,把「同一目标页的入链锚文本完全一致 没有多样性」当成主因,改完现象没变。
原因不止一个,得分开看。锚文本没有描述目标页主题 蜘蛛拿不到语义信号。也可能是相关推荐模块直接用文章标题截断 生成重复文本。
不容易想到的是,内链大量指向列表页而不是详情页。
第一件事是统计页面里的锚文本分布
grep -o '>[^<]\{1,20\}</a>' page.html | sort | uniq -c | sort -rn | head
然后按目标页关键词改写锚文本
UPDATE wp_posts SET post_content = REPLACE(post_content,'查看详情','nginx 反向代理配置');
相关推荐改用文章标题前二十字
<?php echo mb_substr(get_the_title($id), 0, 20); ?>
末了抽查改写后的内链输出
curl -s https://www.example.com/p/1 | grep -o '<a[^>]*>[^<]*</a>' | head -10
怎么算真的好了,看的是同一批现象。目标页的入链锚文本覆盖三到五个相关词,四周后长尾词开始有展现。
提醒一点。锚文本要描述目标页而不是当前位置,模板里统一写「点击这里」等于白送一次内链。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
