运营维护一个WordPress站点,除了需要一个适合的主题以外,还需要一些常用的插件,来使我们网站的用户体验更好。对了,说漏了一点,我们还需要做好数据备份工作;不过这部分工作已经在前面介绍过,我们就不在这里重复了。
我们经常会用到的插件,数量大致在10~20个之间,超过了这个数量,不仅不会提升网站的用户体验,反而会使我们网站的用户体验大大下降;更重要的是,使用插件过多,会对我们网站的安全产生不可预估的影响。
有人可能会想,那我一个插件都不用,岂不是使用体验飞上天?——理论上是这样。不用插件或者使用很少的插件,网站就有非常好的使用体验,我们也完全做得到。只不过要达到这样的要求,难度会指数级上升,对我们大多数人来说,还是使用插件来得方便。
我们根据以往的使用经验,为大家整理出了十个常用的WordPress必备插件,它们大致分为两类:网站优化加速和搜索引擎优化(SEO,英文全称为Search Engine Optimization)。
当然,它们只是一些比较基础的东西,如果想对某一方面深入了解的话,我们还是建议大家查看一些相关的专业资料;譬如,我们想对WordPress站点进行更细致的SEO,可以看一看谷歌和百度出品的《Google搜索质量评分指南(2016英文版)》、《百度搜索引擎网页质量白皮书》、《百度搜索引擎优化指南2.0》、《网站分析白皮书》,昝辉的《SEO实战密码:60天网站流量提高20倍(第三版)》以及O’Reilly出品的《SEO的艺术(原书第2版)》和一些关于”搜索引擎原理”和”信息检索”类的书籍。
20.1 网站优化加速
20.1.1 使用Autoptimize整合压缩网站页面代码
在WordPress后台的插件安装管理页面搜索关键字“Autoptimize”,安装并启用如图20-1所示的插件。
图20-1 搜索出的Autoptimize插件
安装启用好插件以后,点击进入插件的相关设置界面。首先,第一项“HTML选项”里的两个选项可以全部勾选;第二项“JavaScript选项”里的只需勾选“优化JavaScript代码?”选项,其他的选项根据需要勾选,如图20-2所示;第三项“CSS选项”里的“优化CSS代码?”和“Also
aggregate inline CSS?”选项可以勾选。其他的选项根据需要勾选,勾选以前请仔细查看相关的帮助文档;最后一项“Misc Options”里的两个选项可以全部勾选。
图20-2 Autoptimize插件的“JavaScript选项”设置界面
20.1.2 使用Redis和Memcached加速WordPress
大家使用最多的缓存工具,可能是WordPress里面大名鼎鼎的WP Super Cache。不过我们在WP Super Cache最近的几个版本(1.5.7、1.5.7.1)中,发现了一些比较致命的问题——超级管理员在登录状态下,访问特定页面以后,该页面的缓存会污染前台其他正常页面。
这个问题长期没有得到解决,促使我们选择了一个更好更易于使用的缓存方案——使用Redis和Memcached来加速WordPress。Redis是一个开源、高性能的可基于内存亦可持久化的日志型Key-Value数据库,在很大程度上可以补偿Memcached这类Key-Value存储的不足,在部分场合下可以对关系型数据库如MySQL起到很好的补充作用;Memcached是一个高性能的分布式内存对象缓存系统,它适合用于动态Web应用,能减少读取数据库的次数,可以减轻数据库的负载。
简而言之,就是Redis和Memcached优势互补,且它们都适合用于缓存共享、分布式部署、集群应用的大型系统上。虽然我们接下来要介绍的网站建设实例,是一个处于阿里云的全功能的单机小型系统,但是说不定以后这个站点会发展成一个大型系统,为了以后方便使用Docker乃至Kubernetes部署一个缓存共享的分布式集群应用,我们必须高瞻远瞩。到了那个程度以后,我们目前使用的关系型数据库 MySQL 可能会变得不太合适,也必须跟着升级,换成譬如TiDB这样的分布式关系型数据库了。
使用基于Redis和Memcached构建的处于系统底层的这套缓存系统,经过我们测试发现,即使是在一个单机的小型系统上,与以前相比也有很惊人的性能表现。可想而知,如果是在大型系统上,将会有更加出色的性能表现,同时也能顺便为我们省下不少的服务器资源,从而节省巨额的云服务费用。
如果我们之前已经按照第16章的简易加速方案,构建了我们的全功能单机小型系统,那么接下来介绍的Redis Object Cache、MemcacheD Is Your
Friend、Batcache Manager这三个WordPress插件,可以用来加速我们的WordPress站点,使得我们的站点页面的首次打开时间和二次打开时间更短。
我们打开WordPress后台的插件安装管理页面,搜索关键字“Redis Object Cache”,点击安装并启用Redis Object
Cache这个插件,如图20-3所示。接着,我们跳转到这个插件的设置界面,点击“Enable Object Cache”正式启用它;点击“Flush Cache”,我们可以清除缓存,如图20-4所示。
图20-3 搜索出的Redis Object Cache插件
图20-4 Redis
Object Cache插件的设置界面
接着,我们安装并启用MemcacheD Is Your
Friend插件,如图20-5所示。启用以后,前面安装的Redis
Object Cache插件可能会提醒我们清除缓存。我们按照提醒进行操作以后,Redis Object
Cache插件会将MemcacheD Is Your Friend这个插件里的参数,镜像复制到它的object-cache.php文件里。参数被复制以后,我们可以将MemcacheD Is Your Friend插件删除;不过我们也可以不用删除,方便我们以后进行更新操作。
图20-5 搜索出的MemcacheD Is Your Friend插件
紧接着,我们搜索“Batcache”这个关键字,找到这个插件、安装并启用它,如图20-6所示。然后,我们登录WordPress站点所在的FTP目录,找到Batcache插件所在的目录,目录的路径一般为/data/wwwroot/www.example.com/wp-content/plugins/batcache。接下来,我们将插件目录里的advanced-cache.php文件复制,并移动到/data/wwwroot/www.example.com/wp-content路径下,如图20-7所示。完成以后,这个插件也可以被删除,不过也可以不删除,方便我们以后进行更新操作。
图20-6 搜索出的Batcache插件
图20-7 复制并移动插件里的文件
最后,我们将/data/wwwroot/www.example.com/下的wp-config.php文件下载到本地桌面,并保存一份备份。我们将桌面上的wp-config.php文件打开,在文件头部输入如图20-8所示的代码块。输入完成以后保存文件,然后我们将修改后的文件覆盖上传到对应的FTP目录下。至此,我们基本上大功告成。
define('ENABLE_CACHE', true);
define( 'WP_CACHE', true );
图20-8 在文件头部输入代码块
我们还可以使用Redis和Memcached,对WordPress进行更深入的改造。譬如,使用Redis缓存WordPress的执行代码,以加快站点的请求速度。当然,我们也可以使用PHP7,来加快我们的WordPress站点的运行速度;不过,可能有许多主题和插件不能在PHP7的环境下良好运行,建议不要贸然使用。关于这方面的问题,我们将会在本书的官方社区里进行更深入的讨论,有兴趣的读者可以自行查看学习。
20.1.3
使用第三方服务加速图片
使用WordPress一段时间以后,我们会惊讶地发现:媒体库里的图片、视频等多媒体文件占据了大量服务器的空间。更为关键的是,这些多媒体文件——大多数情况下,基本会是多媒体文件中海量的图片拖慢我们的WordPress站点的打开速度。因为视频和音频等其他类型的多媒体文件,我们通常会上传到优酷、土豆等视频网站,然后在我们的WordPress站点上引用;因为这些大型的视频网站,它们的网页打开速度基本都要比我们的WordPress站点快。
这个时候,我们需要使用七牛、又拍等第三方服务,来为我们的WordPress站点加速这些海量的图片。我们接下来使用的是七牛的服务,又拍等其他第三方服务的设置教程,可以自行在网上搜索,或者去我们的图书社区学习。
我们先去七牛注册账户,账户注册完成以后,马上充值十元(最小金额);因为只有充值了以后,我们才可以使用对象存储的域名绑定功能。
1.进入后台资源主页,点击“对象存储”,如图20-9所示。
图20-9 点击“对象存储”
2.点击“新建存储空间”,弹出相应操作界面,如图20-10所示。存储空间名称可以自定义,比如cdn、img、pic等等,我们在输入框里填的是“cdn-for-ibeatx”;接下来是选择存储区域。一般来说,如果我们的服务器在哪个区域,我们这里选择最近的存储区域。因为我们之前购买的服务器位于华南,并且我们的目标用户也基本位于华南,所以我们这里选择“华南”;最后的“访问控制”,选择“公开空间”。以上选择好以后,我们点击“确定创建”即可创建成功。
图20-10 点击“新建存储空间”
3.存储空间创建完成以后,会跳转到相应空间的设置页面。点击“融合CDN”下的“新建加速域名”,开始绑定域名,如图20-11所示。域名类型,选择“普通域名”即可;加速域名,我们输入的是“cdn.ibeatx.com”。需要注意的是,在七牛使用的独立加速域名,必须完成工信部的ICP备案(必做项)且完成公安部备案(可选项);覆盖范围根据目标用户来进行选择,大多数情况下选择“中国大陆”即可。这里我们考虑到可能会有国外用户访问,故选择为“全球”;通信协议,一般情况下选择“HTTP”即可;使用场景,选择“图片小文件”;源站配置,选择我们刚才创建的存储空间。如图20-12所示。
图20-11 点击“融合CDN”下的“新建加速域名”
图20-12 “新建加速域名”的设置页面
接下来,是缓存配置部分,我们选择“自定义”。自定义模式下,默认有一个如图20-13所示的配置,我们点击图中标注出来的删除按钮,将这个配置删除;然后,点击一下“推荐配置”,会出现一些系统默认设置好的配置。我们按照下面表格里提供的配置,自行修改即可(全局配置的缓存时间为0天)。
图20-13 自定义缓存配置
后缀 | 缓存时间 |
---|---|
.php;.jsp;.asp;.aspx;.do;.m3u8 | 0天 |
.js;.css;.txt;.xml;.shtml;.html;.htm;.csv;.bat | 0天 |
.jpg;.jpeg;.png;.gif;.webp;.ico | 365天 |
.bmp;.psd;.ttf;.pix;.tiff | 365天 |
.avi;.mkv;.mp4;.mov;.flv;.rm;.rmvb;.swf | 180天 |
.mp3;.wav;.wmv;.rmi;.aac | 180天 |
.rar;.7z;.zip;.gzip;.dmg;.gz;.ios;.tar;.jar | 30天 |
.exe;.deb;.ipa;.apk;.sis;.dat | 30天 |
接下来,我们开启域名防盗链,选择“白名单”模式,在输入框中输入如图20-14所示的内容。剩下的选项里,时间戳防盗链、回源鉴权和图片自动瘦身这三个选项,我们可以暂时不管;其他的选项,可以全部开启。
图20-14 开启域名防盗链的“白名单”模式
以上所有的选项完成以后,最后我们点击底部的“创建”即可。我们等待数小时,将七牛生成的CNAME域名与我们的CDN专用域名相互绑定即可。不过我们在这里没有进行等待,后面的步骤中直接使用了七牛生成的测试域名。接下来,我们返回存储空间,将镜像存储里的镜像源设置为“http://ipc.im/”。
4.打开我们的WordPress站点后台的插件安装管理页面,上传我们在图书资源里分享的1.4.4版本(建议不要更新为目前最新的1.4.6版插件)的“WPJAM七牛镜像存储”插件,安装并启用它。接下来,点击打开插件的设置界面,如图20-15所示。我们将七牛域名设置为“http://cdn.ibeatx.com”,七牛空间名设置为我们创建的“cdn-for-ibeatx”,下面的AccessKey/SecretKey,设置为我们从七牛后台找到的相关密钥,如果没有就创建一对密钥,设置好以后保存更改,如图20-16所示;本地设置里的扩展名设置为“jpg|jpeg|png|gif|webp|ico”,目录里的设置保持默认,本地域名设置为“http://ipc.im”,剩下的三个选项都可以取消勾选,设置好以后保存更改;接下来的缩略图设置、远程图片设置和水印设置,我们暂时不用设置。
图20-15 打开WPJAM七牛镜像存储插件的设置界面
图20-16 七牛后台的密钥管理页面
5.打开我们的WordPress站点前台,随机查看文章等页面的图片,如果图片链接变成了类似http://cdn.ibeatx.com/wp-content/uploads/2017/04/syberia2-760270-470x140.jpg这样形式的URL,则说明我们已经成功开启了七牛的图片加速服务。如果没有出现这样的URL,我们则需要排查原因,直到加速服务成功开启为止(一般情况下,不会出现这种情况)。
拓展知识:
七牛云中文官网
https://www.qiniu.com/
七牛云开发者中心
https://developer.qiniu.com/
又拍云中文官网
https://www.upyun.com/
又拍云文档中心
https://docs.upyun.com/
20.2 搜索引擎优化
20.2.1
使用AMP加速WordPress移动端页面
移动互联时代,速度依旧为王!
如果我们转载了一篇其他人的原创文章,但是访问他的站点需要十秒,而访问我们的站点只需要二到三秒、甚至不到一秒,那么毫无疑问,访客在搜索引擎上搜索这篇文章时,我们的站点会排在他人原创站点的前面。进一步想象一下,两篇同样的文章同时点击打开,访客会更愿意浏览我们的站点上的内容,而且说不定会继续浏览下去,跳出率远比他人的原创站点低。
那么,有没有一种简单的方法,可以让我们原先的电脑端网页在移动端上面快起来呢?
——有,它就是谷歌推出的一项名为AMP(Accelerated Mobile Pages,中文意思为加速移动页面)的技术。具体的技术原理,我们就不在这里赘述了。接下来,我们直接来介绍如何在WordPress站点里使用AMP技术。
我们在后台的插件安装管理页面搜索关键字“AMP”,安装并启用它,如图20-17所示,安装好以后可以不用管。如果我们想对相关页面进行轻度定制,可以去AMP插件的外观管理界面里操作(相关子菜单在“外观”菜单下)。不过我们可以直接修改的内容并不多,只有颜色可以自由更改。
图20-17 搜索出的AMP插件
启用AMP插件以后,如果我们想要访问经过AMP技术处理后的移动端页面,我们只需要在相关URL后加上/amp即可进行访问,即https://www.example.com/amp.html/amp;如果我们的WordPress站点没有启用伪静态,那么相关移动端页面的URL将可能为https://www.example.com/?p=1&=1这样的形式。
拓展知识:
谷歌AMP项目中文官网 https://www.ampproject.org/zh_cn/
百度MIP项目中文官网 https://www.mipengine.org/
20.2.2
使用Google XML Sitemaps创建站点地图
SiteMap即站点地图,可以让网站管理员简单高效地通知谷歌、百度等搜索引擎,告诉它们我们的网站上有哪些可供抓取的网页。
最简单常用的SiteMap形式,就是使用一个.xml格式的文件(即siteamp.xml),在其中列出我们网站中的网址、以及关于每个网址的其他元数据(上次更新的时间、更改的频率、相对于网站上其他网址的重要程度等等),以便搜索引擎可以更加智能地抓取网站。
如果我们想为WordPress站点创建站点地图,我们可以在后台的插件安装管理页面中搜索关键字“Google XML Sitemaps”,安装并启用如图20-18所示的插件。安装完成后,点击跳转到该插件的设置管理界面。
图20-18 搜索出的Google XML Sitemaps插件
如图20-19所示,基本设置里的选项,我们可以全部进行勾选;“日志优先”部分的设置,可以根据自己习惯来设置,我们这里选择的是“通过文章评论数量的多少来决定优先”;接下来的“SiteMap内容”部分,将“WordPress
Standard Content”里的选项全部勾选即可。其他的暂时没必要勾选,不过“高级设置”里的选项还是十分有必要勾选上的;剩下的“Additional Pages”、“Excluded Items”、“Change Frequencies”、“优先权”等部分,暂时保持默认即可,等熟悉后再进行细微调整也不迟。
图20-19 Google
XML Sitemaps插件的基本设置界面
以上的参数全部设置好以后,我们访问https://www.example.com/sitemap.xml或者https://www.example.com/sitemap.html,可以看到我们的WordPress站点的站点地图。站点地图生成完成以后,我们可以将站点地图提交到谷歌站长平台或百度站长平台,这样可以加快搜索引擎收录我们的WordPress站点网页的速度;一般情况下,谷歌收录的速度最快,第二天就可以看到结果,而百度则需要等待一个月到六个月不等。具体的提交过程,我们将在第21章里讲述。
20.2.3
使用WP Keyword Link为站点添加关键词链接
WP Keyword Link**插件**是Martijn
Dijksterhuis开发的一款SEO插件,后来国内的WordPress爱好者柳城把它进行了汉化,使得这款插件更适合在中文语言环境下使用。这款插件目前(2017年)已经从WordPress官方插件市场里消失了,大家要使用这款插件的话,可以在我们分享的图书资源里找到。
我们把插件安装好并启用它,打开插件的设置界面,如图20-20所示。在大多数情况下,我们只需要点击图中所标注的“自动把文章的标签当作关键词”按钮即可。如果想要单独添加某个关键词链接,我们可以在上面的输入框中分别输入关键词、链接和描述,然后进行保存;然后需要设置的是插件的全局设置,按照如图20-21所示设置即可,我们也可以自行按照需要修改;接下来的是相似文章的设置,一般情况下我们使用不到,暂时可以不管;最后部分,是使用帮助。
图20-20 WP
Keyword Link插件的基本设置界面
图20-21 WP
Keyword Link插件的全局设置界面
拓展知识:
WP Keyword Link原作者主页
http://www.dijksterhuis.org/
WP Keyword Link汉化作者主页
http://liucheng.name/789/
20.2.4
使用Simple URLs将外部链接转换成内部链接
有时候,我们为了统计某个我们发布的外部链接的点击次数,或者将外部链接转换成内部链接以降低站点权重的流失,我们会使用譬如Simple URLs插件来达成我们的目的。
打开WordPress后台的插件安装页面,搜索关键字“Simple URLs”,安装并启用它,如图20-22所示。我们打开插件的设置界面,点击“Add New”添加新链接:首先,我们给这条链接取一个名字“爱酱微博”;接着,编辑固定链接。由于我们站点的英文国际域名为“ibeatx.com”,所以这里将固定链接里的自由编辑部分修改成“ibeatx-weibo”;接下来,我们在最后一个输入框里输入想要跳转的外部链接“http://weibo.com/ibeatx”。这些都输入好以后,点击“发布”即设置完成;如图20-23所示,标注部分显示了这条外部链接已经被点击了136次。
图20-22 搜索出的Simple URLs插件
图20-23 添加好的新链接
20.2.5
使用Redirections将老链接永久重定向到新链接
有时候,由于网站进行改版,我们原先的一些链接的结构可能会发生变化。此时,如果有新访客通过百度搜索到我们的这些链接,点击进去以后才发现这些链接已经不能正常访问了,可能会让他们马上离开我们的站点;为了留住他们,我们需要将这些出现问题的老链接,永久重定向到首页或者正确的新链接。
譬如,我们的实例站点爱评测网的文章页面结构,在默认情况下应该是http://ipc.im/page/2这样的结构,不过由于我们使用了新主题,致使结构变成了http://ipc.im/archives/page/2这样的链接。
如图20-24所示,我们打开WordPress后台的插件安装页面,搜索关键字“Redirections”,安装并启用Redirections插件。接下来,我们将使用这个插件,把老链接http://ipc.im/page/2永久重定向到http://ipc.im/archives/page/2。如图20-25所示,我们在Source URL后输入http://ipc.im/page/2,接着在Target URL后输入http://ipc.im/archives/page/2,将Group选为“Redirections”,最后我们点击“Add Redirections”按钮即可设置完成。在插件的设置界面里,我们还可以查看关于这条错误的老链接的访问日志,以及我们站点的404错误等。
图20-24 搜索出的Redirections插件
图20-25 添加新的重定向