欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  新闻

Z-Blog内链关键字替换插件的修改

程序员文章站 2022-07-08 15:30:05
2019年9月15日 | 作者: 月光 | 分类: 编程开发 | 评论: 0 | 浏览: 7 | 阅读全文......

  文章正文中的关键字内链插件是seo常用的工具,越大的网站,越要更加重视内部链接结构的布局。因为良好的内部链接结构可以引导权值的传递,提高收录,提升内页排名。

  搜索引擎算法对网页相关性列在很重要的位置,相关性越好的网页,越容易获得排名。所以,整个网站内部应该围绕相关性来规划网站结构。这也是网站结构规划的最基本原则之一。

  z-blog的关键字内链插件有一些,我使用其中一个名为vkeywords的插件进行内链替换,但是使用过程中发现一些问题。

  该插件使用全部替换的方式,如果文章包含的关键字很多,则会替换非常多的关键字,这属于过度优化,很容易被搜索引擎惩罚,因此,我不得不对该插件进行了一些修改。

  由于该插件的替换算法比较独特,不太好修改,因此,我主要修改的地方有以下:

  1、关键字最多替换4次(也可以设置为其他的数字)。

  2、某个关键字如果在文章里连续出现,则之后出现的均不替换。

  经过这些修改,这个插件应该就不会引起过度seo优化的风险了。

  以下为修改方法:

  修改function.asp文件的vkeywords,将该函数后面一部分修改为如下代码:

dim reg, patt, m, i, p, s, str, url
dim maxnum, lastmatch
maxnum = 0
lastmatch = ""
str = content
i = 0
p = 0
s = ""
patt = "<a [^>]*>[^<]*</a>|<[^>]*>|"
for i = 0 to ubound(keys)
patt = patt & keys(i) & "|"
next
patt = left(patt, len(patt) - 1)
set reg = new regexp
reg.global = true
reg.ignorecase = true
reg.pattern = patt
dim matches, omatch, j
set matches = reg.execute(str)
for each omatch in matches
if (len(omatch) > 0 and left(omatch, 1) <> "<") and maxnum < 4 and lastmatch <> omatch then
'不是a标签的时候执行替换
for j = 0 to ubound(keys) - 1
url = ""
if (lcase(omatch) = lcase(keys(j))) then
'如果是需要替换的值就替换
url = "<a href=""" & urls(j) & """ title=""" & titles(j) & """ "
if ((j) <> "") then
url = url & " target=""" & windows(j) & """ "
end if
url = url & ">" & keys(j) & "</a>"
if (omatch.firstindex > 1) then
s = s & mid(str, p + 1, omatch.firstindex - p) & url
else
s = url
end if
p = omatch.firstindex + len(keys(j))
j = ubound(keys)
maxnum = maxnum + 1
lastmatch = omatch
end if
next
end if
next
s = s & right(str, len(str) - p)
vkeywords = s