很多人的博客固定链接都用使用文章标题,如果是英文标题,Wordpress会帮你转换成的好好的。但是如果还是中文标题,你的文章链接里就会出现中文,中文标题也没什么大问题,大部分浏览器都会自动将链接中的中文解码,因此我们会看到正常的中文。但是如果你把链接复制到粘贴板,就会出现很多百分号。为了解决这个问题,很多人把中文标题改为英文后做为固定链接,不知道这么做SEO的作用有多大,我个人的观点是这么做链接看地顺眼。
很多人嫌手动改固定链接(英文称之为slugs)很麻烦,以此就有了插件,cos_slug_transl ator就是一个可以自动翻译成英文然后生成slug的插件。我觉得这个插件有几个缺点,
- slugs是在文章发布后修改的,也就是说这个插件把原有的slugs改成英文。这么做有可能搜索引擎已经收录旧的固定链接(或者旧的链接已经被其他插件发布到微博上),导致出现死链接。
- 没有过滤搜索引擎忽略字(stop words),例如(you、for、is)
因此我一直用自己改进过的版本。cos_slug_translator插件是用Google 翻译API来把中文标题翻译成英文,但是Google已经开始限制翻译API的使用,现在大部分时候使用翻译API,都会被拒绝:“Unable to perform Translation:Suspected Terms of Service Abuse.”, 所以基本上这个插件已经无法达到预期的目的。因此我就着手写一个插件,除了解决上述两个问题,在Google翻译失败的时候,采用拼音代替。例如:“浙江富豪移民潮带动海外房产热” 变成 “zhe-jiang-fu-hao-yi-min-chao-dai-dong-hai-wai-fang-chan-re”。 其实拼音不一定要用连字符号,搜索引擎会自动识别, 我这么写是为了便于人眼识别。
有需要的朋友可以到这里下载。当然,如果您有任何问题和建议,也请在这里留言!
首先谈一下我对SEO的认识。我觉得SEO主要在以下几个方面做文章:
- 文章标题
- 页面描述 – Description Meta
- 页面关键字 – Keywords Meta
- Breadcrumb
- 选择性的nofollow, noindex
- XML sitemap
而网络上这些SEO的插件的目的是帮助你更加方便地设置这些参数。Google的算法天天变,我也不知道SEO到底有多大用处。那么到底值不值得花工夫在SEO上面呢?我的看法的有总比没有好,所以我的好几个Wordpress网站都安装WordPress SEO插件。
总体讲Wordpress SEO是一个优秀的SEO插件,我在使用中碰到一个问题,就是对中文的支持。SEO中我认为比较重要的一点,给每一篇文章是定义Description Meta, 如何你有时间给自己写当然好,但是如果没有自定义,这个值是从文章内容截取的155个字符,Wordpress SEO 用的是substr函数,这个对E文没问题,但是对中文问题就来了,所以如果不做修改,在你没定义Excerpt的时候,该插件无法正确提供Meta Description,我记得Wordpress All In One SEO Plugin也有这个问题,不知道新的版本有没有改进。下面是针对Wordpress Seo的解决办法。
打开插件目录下inc文件夹里的wpseo-functions.php, 找到这行
'%%excerpt%%' => ( !empty($r->post_excerpt) ) ? strip_tags( $r->post_excerpt ) : substr( strip_shortcodes( strip_tags( $r->post_content ) ), 0, 155 ),
然后用下面这行代替
'%%excerpt%%' => ( !empty($r->post_excerpt) ) ? strip_tags( $r->post_excerpt ) : get_hz_description($r->post_content),
当然你要定义如下这个get_hz_hz_description()函数,你可以把这个函数放置在wpseo-functions.php的顶部,
function get_hz_description($text){
$length = 120;
$text = strip_tags($text);
$text = trim($text);
$text = str_replace("\r\n", " ", $text);
$text = mb_substr ($text,0,$length, 'utf-8');
return $text;
}
注意:我这里假定你的PHP支持mb_substr函数, 不然的话你要自己写一个mb_substr函数。