WordPress变更永久链接

URL变更对于SEO来说是件非常残忍的事情,好比就像是一只小狗的牙被敲掉一样。正常情况下它会长起来,只是这需要一个相当的过程,而且一不小心,你就被降权了。

上个月使用WordPress做了个小站,现在日IP大约在2500左右、PV在1.3万左右。相对于这样一个量,VPS跑起来渐渐的感到有点吃力了,CPU利用率经常在10%左右,高峰时可达20%。照这样的情况跑下去,BurstNET不灭了我才怪。简单分析一下,wordpress使用的是伪静态,访客每浏览一页,都必须对Mysql进行6-7次的http并发请求,这个并发是导致负载高的主要原因之一。当然还有些其他原因,但我想从Mysql先入手。第一步是引及cache,减少对数据库的查询次数。

听大家都说WP-Super-Cache比较好,功能MS很强大。没啥方法,我装上之后它确实在工作了。但可能是由于我用Nginx配置,重写规则没有做好,导致每访问一次,缓存就刷新一次。这就意味着并它并没有真正的帮助我解决问题,反而是增加了我生成HTML页面的PHP-CGI开销。所以提醒一下装缓存插件的朋友,看缓存有没有生效,不仅仅只是看源代码里面有没有插入类似于<!-- Cached page generated by WP-Super-Cache on 2009-11-16 19:55:54 -->这样一句话,你得尝试多刷新几次页面,尝试一下缓存生成的时间有没有跟着你的刷新而变化。如果没有变化,恭喜你安装成功了。

因为安装不成功、配置麻烦,我一气之下就把WP-Super-Cache给卸载了。百来来来去去,搜索到国人开发的一款名为Cos-html-cache的HTML生成插件非常优秀。它的工作原理是,第一次访问生成HTML,下次人再访问时就直接读取HTML,而不是去读Mysql的数据了。这样有个好处,即使Mysql宕机了网站也能正常工作,它的工作方式基本上绕开了wordpress

因为我使用的永久链接是目录式结构,所以装上Cos-html-cache后,只能生成首页。我想找解决办法,但从白天找到了黑夜都一直没有方法,作者也很忙,我不好意思打扰。所以我选择了另一种办法——更新永久链接,就是我最开始所说的,URL地址变更。

对于wordpress的永久链接更改,网上有很多解决办法。最简单的就是使用Dean's Permalinks Migration来帮助你处理。作者网站是英文的,但从CN域名和35提供的博客托管来看,肯定是国人。激活插件后填入你以前的永久链接形式,比如我填的是/%year%/%monthnum%/%day%/%postname%/,保存即可生效,操作非常简单。这样的好处就是不会给搜索引擎返回404的错误。经过一段时间过渡后,慢慢你的URL权重基本可以实现平滑转移。