nofollow标签怎么加
上周帮朋友看一个企业站,标签首页导出链接三十多个,标签一半是标签客户案例里的外链,全都没加nofollow。标签他问我:“这玩意儿到底怎么加?标签我看别人源码里有,但自己一改就乱。标签”其实加nofollow就一行代码的标签事,但加在哪里、标签为什么加,标签比怎么加重要得多。标签
先看最直接的标签写法。普通链接长这样:<a href="https://example.com">点这里</a>。标签要加nofollow,标签就在href后面空一格,标签写rel="nofollow"。标签完整形式是<a href="https://example.com" rel="nofollow">点这里</a>。就这么简单,没有闭合标签,没有额外属性。我见过有人写成rel="nofollow nofollow",浏览器不报错,但纯属多余。
2019年之前,nofollow只有这一种写法。后来Google把rel属性拆成了几个更细的选项:rel="sponsored"用于付费链接,rel="ugc"用于用户生成内容,比如论坛回帖里的链接。但nofollow本身并没有消失,它仍然是“别追踪这个链接”的通用信号。如果你的场景不明确,用nofollow最保险。我自己的博客评论区,所有自动提取的网址都统一加nofollow,懒得区分ugc还是sponsored。
加在什么地方?这才是容易翻车的地方。WordPress后台有个“插入链接”按钮,点开高级选项能看到“添加nofollow”的勾选框。但很多主题的编辑器不显示这个选项,得手动切到代码视图改。我遇到过最坑的情况:用Elementor拖拽一个按钮模块,链接设置里根本没有rel属性输入框。最后只能在子主题的functions.php里挂一个过滤器,用正则给特定域名的链接批量加nofollow。代码大概长这样:
function add_nofollow_to_external_links($content) { $dom = new DOMDocument(); @$dom->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8')); foreach ($dom->getElementsByTagName('a') as $link) { $href = $link->getAttribute('href'); if (strpos($href, home_url()) === false) { $link->setAttribute('rel', 'nofollow'); } } return $dom->saveHTML(); } add_filter('the_content', 'add_nofollow_to_external_links'); 但别急着复制这段代码。它会把所有外部链接都变成nofollow,包括你真心想推荐给读者的优质资源。我见过一个摄影博客,把flickr、500px这些作品集链接全加了nofollow,结果谷歌爬虫再也不去抓取那些页面,反向链接的价值直接归零。nofollow是“不传递权重”,不是“不抓取”——但实际效果上,加了nofollow的链接被爬取的概率会降低。所以别一刀切。
手动加的话,记住几个原则。广告链接、联盟营销链接、付费软文里的链接,必须加。用户评论里的链接,不加就是给自己找麻烦,垃圾外链会像蟑螂一样涌进来。至于引用来源、合作伙伴、社交主页,这些看情况。我自己的习惯是:如果这个链接的点击能给我带来直接收益,或者我无法100%信任目标站点的内容质量,就加nofollow。其他情况留着dofollow,让权重自然流动。
还有个细节:nofollow加在a标签上,不要加在img标签上。图片链接是包在a标签里的,改a标签就行。另外,JavaScript生成的链接也能加,但必须是在DOM里真实存在的a元素。有些前端框架用router-link或者Link组件,编译后可能变成<a>,也可能变成<span>,后者加rel属性无效。上线前右键检查元素,确认渲染结果是a标签。
最后说个反常识的:nofollow标签对SEO的影响,这几年在减弱。Google 2019年就把nofollow当成了“提示”而非“指令”。也就是说,你加了nofollow,谷歌可能还是会把权重传过去,只是它不承认而已。但该加还得加,因为这是给搜索引擎的一个明确态度:这个链接我不背书。态度本身就有价值。
加nofollow不难,难的是判断哪些链接该加。下次改代码之前,先问自己:如果这个链接指向一个垃圾站,我会不会后悔?会,就加。
