关于SEO这点,网站内部有大量的外链会影响网站的权重,不利于SEO。

什么是“nofollow”?

​ “nofollow” 标签是Google、Yahoo和微软公司前几年一起提出的一个标签,链接加上这个标签后就不会被计算权值,搜索引擎支持nofollow属性,在很大程度上抑制博客或论坛的垃圾留言。对站长来说是一件大好事。

​ nofollow是HTML元标签(meta)的content属性和链接标签(a)的rel属性的一个值,告诉机器(爬虫)无需追踪目标页,为了对抗blogspam(博客垃圾留言信息),Google推荐使用nofollow,告诉搜索引擎爬虫无需抓取目标页,同时告诉搜索引擎无需将的当前页的Pagerank传递到目标页。但是如果你是通过sitemap直接提交该页面,爬虫还是会爬取,这里的nofollow只是当前页对目标页的一种态度,并不代表其他页对目标页的态度。

什么是“_blank”?

​ 为文章内的a标签添加target=“_blank”属性时,用户点击链接就会在浏览器的新一个窗口打开,这样可以防止浏览的流失,延长用户访问时间。

步骤

打开typecho根目录下 var/HyperDown.php 文件,找到大概第386行,如以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
// link
$text = preg_replace_callback(
"/\[((?:[^\]]|\\\\\]|\\\\\[)+?)\]\(((?:[^\)]|\\\\\)|\\\\\()+?)\)/",
function ($matches) use ($self) {
$escaped = $self->parseInline(
$self->escapeBracket($matches[1]), '', false, false
);
$url = $self->escapeBracket($matches[2]);
$url = $self->cleanUrl($url);
return $self->makeHolder("<a href=\"{$url}\">{$escaped}</a>");
},
$text
);

将代码中的:

1
return $self->makeHolder("<a href=\"{$url}\">{$escaped}</a>");

注释掉,然后在下方添加以下代码:

1
2
3
4
5
if (strstr($url,'//siteurl.com') == false ) {    //url后的内容替换为自己的域名
return $self->makeHolder("<a href=\"{$url}\" target=\"_blank\" rel=\"nofollow\">{$escaped}</a>");
} else {
return $self->makeHolder("<a href=\"{$url}\" target=\"_blank\">{$escaped}</a>");
}

修改之后的成品:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// link
$text = preg_replace_callback(
"/\[((?:[^\]]|\\\\\]|\\\\\[)+?)\]\(((?:[^\)]|\\\\\)|\\\\\()+?)\)/",
function ($matches) use ($self) {
$escaped = $self->parseInline(
$self->escapeBracket($matches[1]), '', false, false
);
$url = $self->escapeBracket($matches[2]);
$url = $self->cleanUrl($url);
// return $self->makeHolder("<a href=\"{$url}\">{$escaped}</a>");
if (strstr($url,'//kaygb.top') == false ) {
return $self->makeHolder("<a href=\"{$url}\" target=\"_blank\" rel=\"nofollow\">{$escaped}</a>");
} else {
return $self->makeHolder("<a href=\"{$url}\" target=\"_blank\">{$escaped}</a>");
}
},
$text
);

然后可以新建文章测试一下。

评论