Wordpress博客优化
WordPress性能优化:为什么我的博客比你的快?
WordPress 很慢?
很多博主都会感觉 WordPress 很慢?作为全世界最常用的建站和博客系统 WordPress 来说,在性能设计上肯定不会有太大的问题,WordPress 开发团队也肯定也考虑到这个问题。
那么 WordPress 效率问题主要是出在哪里呢?根据我多年 WordPress 建站和维护的经验,很多性能的问题都是 WordPress 使用不当造成的,比如安装太多效率低下的插件,使用代码质量低下的主题,没有正确处理 WordPress 的缓存等等,所以提高 WordPress 性能,就要从这些方面入手。
今天就给大家讲讲自己多年总结的 WordPress 优化经验和技巧:
动静态分离
不管 WordPress 博客还是其他 CMS 建的站点,优化的第一步一定是动静态分离,这也是你看到新浪,腾讯等门户,他们图片的域名和网站的域名不是同一个的原因。
网站的静态文件一般有两种:第一种是网站的 CSS,JS 和一些主题的常用背景图片和按钮文件,这些图片如果网站不进行改版或者其他改动,基本上是不会修改的,第二种是每天更新的网站内容中上传的图片或者附件,这些图片文件也是基本不会改动的。
解决好静态文件存储和加速,网站性能就首先能得到基本的保证了,WordPress 构建的网站和博客也是一样的。对于这些静态文件来说,最好的解决方案永远是使用 CDN 网络进行加速,这样服务器的压力将大大降低,因为访问页面只有当前页面是在自己的服务器上,其他所有图片, JS 和 CSS 都是从 CDN获取的。
从使用便捷性和性价比角度来说,个人推荐 WordPress 博客最方便使用的七牛云存储,我也写了一个七牛镜像存储的 WordPress 插件,让你可以一键实现 WordPress 博客静态文件 CDN 加速。
服务器优化
优化好静态文件之后,就要开始对网站的动态内容进行优化,优化动态内容,首先要有一个稳定网络环境,稳定的主机供应商和服务器性能的优化。
选择一个靠谱的主机托管商,个人推荐 BGP 或者多线机房,让全国用户访问都能有不错的速度,然后尽量选择独立的服务器,再不济,也得 VPS, 因为你没有服务器的 Root 权限很多东西是无法进行的。这里推荐:美团云。
服务器问题解决之后,服务器可以做如下优化:
MySQL 设置 MySQL Query Cache,可以保存保存查询结果,同样的查询不再从数据库检索,对速度有很大的提升。
PHP 开启 OPCache:把经过编译后的 PHP 代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用。
安装 Memcached 和 PHP Memcached 扩展:使用 Memcached 来缓存 WordPress 数据。
WordPress 缓存
要彻底明白和搞懂 WordPress 性能优化,首先要理解 WordPress 缓存机制,WordPress 默认是一种叫做 WordPress Object Cache 的对象缓存机制,它是把需要缓存的内容按照 Key-Value 这样的模式进行缓存(和 No-SQL 的 key-value 的有点类似),当然它还支持按照 Group 来划分和避免缓存的内容冲突。
所以最基础的 WordPress 缓存插件就是,把 WordPress 产生的 Key-Value 存起来,如果是使用 Memcached,就是存到内存,如果使用 Flie 就是存到硬盘中,当然高级的 WordPress 插件还能做更多,比如 WP Super Cache把整个页面缓存到硬盘中,下次直接访问静态的 HTML 文件,让服务器直接绕过 PHP,节约 CPU 时间。 Batcache 会把整个页面当做一个对象存到内存里面。我个人推荐使用 Memcached 和 Batcache 进行缓存。
对于已登陆的用户,Memcached 会把 WordPress 的对象存到内存里面,服务器的内存足够大,读取和存储速度也够快,并且内存缓存命中率也大于 97%。另外我们 WordPress 程序经过优化之后,每个页面的查询一般在 2 条左右,所以整个网站效率很高,首页甚至做到 0 SQL,页面生成只需要 0.0013秒。
对于未登录的用户,Batcache 会把整个页面当做一个对象存到内存里面,未登录用户访问的时候,整个页面从内存中取出,速度奇快。
WordPress 程序优化
WordPress 程序优化是基于 WordPress Object Cache 的机制对 WordPress 插件和主题进行优化,主要经验有以下几点:
只使用必须的 WordPress 插件,安装太多的 WordPress 插件很容易引起性能问题。
从正规站点下载 WordPress 主题,这样下载的主题才能保证质量和安全。
WordPress 主题和插件尽量使用模板函数,因为 WordPress 模板函数如果可能都已经做好了 WordPress Object Cache。
比如 get_the_terms 和 wp_get_object_terms 这两个函数,功能基本一样,但是 get_the_terms 直接从对象缓存中取数据,无查询,而 wp_get_object_terms 每次都从数据库中取数据。
WordPress 插件和主题如果一定要直接查询数据库,请做好 Object Cache,将查询的结果使用 wp_cache_set 存到 Object Cache 中,下次直接使用 wp_cache_get 获取。
选择好的服务器和托管商,对 WordPress 程序进行优化,并且做好缓存,WordPress 效率其实很高的,加上 WordPress 本身的灵活性和功能强大,WordPress 作为各种建站绝对是非常不错的选择,所以我一直使用 WordPress 建站。
如何利用robots.txt 优化 wordpress博客?
笔者在百度站长平台检测自己的博客时,出于优化的惯性,对博客的Rbots进行了检测,进而在百度搜索了wordpress博客robots的写法设置问题,看了很多wordpress高手对robots优化设置后,终于有所领悟,在此也分享给一些wordpress新手看看如何去善用robots.txt对wordpress博客进行优化。
一、先来普及下robots.txt的概念:
robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不能被搜索引擎的漫游器获取的,哪些是可以被(漫游器)获取的。这个文件用于指定spider在您网站上的抓取范围,一定程度上保护站点的安全和隐私。同时也是网站优化利器,例如屏蔽捉取站点的重复内容页面。
robots.txt目前并不是一种标准,只是一种协议!所以现在很多搜索引擎对robots.txt里的指令参数都有不同的看待。
二、使用robots.txt需要注意的几点地方:
1、指令区分大小写,忽略未知指令,下图是本博客的robots.txt文件在Google管理员工具里的测试结果;
2、每一行代表一个指令,空白和隔行会被忽略;
3、“#”号后的字符参数会被忽略;
4、有独立User-agent的规则,会排除在通配“*”User agent的规则之外;
5、可以写入sitemap文件的链接,方便搜索引擎蜘蛛爬行整站内容。
6、尽量少用Allow指令,因为不同的搜索引擎对不同位置的Allow指令会有不同看待。
三、Wordpress的robots.txt优化设置
1、User-agent: *
一般博客的robots.txt指令设置都是面对所有spider程序,用通配符“*”即可。如果有独立User-agent的指令规则,尽量放在通配“*”User agent规则的上方。
2、Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-includes/
屏蔽spider捉取程序文件,同时也节约了搜索引擎蜘蛛资源。
3、Disallow: /*/trackback
每个默认的文章页面代码里,都有一段trackback的链接,如果不屏蔽让蜘蛛去捉取,网站会出现重复页面内容问题。
4、Disallow: /feed
Disallow: /*/feed
Disallow: /comments/feed
头部代码里的feed链接主要是提示浏览器用户可以订阅本站,而一般的站点都有RSS输出和网站地图,故屏蔽搜索引擎捉取这些链接,节约蜘蛛资源。
5、Disallow: /?s=*
Disallow: /*/?s=*
这个就不用解释了,屏蔽捉取站内搜索结果。站内没出现这些链接不代表站外没有,如果收录了会造成和TAG等页面的内容相近。
6、Disallow: /?r=*
屏蔽留言链接插件留下的变形留言链接。(没安装相关插件当然不用这条指令)
7、Disallow: /*.jpg$
Disallow: /*.jpeg$
Disallow: /*.gif$
Disallow: /*.png$
Disallow: /*.bmp$
屏蔽捉取任何图片文件,在这里主要是想节约点宽带,不同的网站管理员可以按照喜好和需要设置这几条指令。
8、Disallow: /?p=*
屏蔽捉取短链接。默认头部里的短链接,百度等搜索引擎蜘蛛会试图捉取,虽然最终短链接会301重定向到固定链接,但这样依然造成蜘蛛资源的浪费。
9、Disallow: /*/comment-page-*
Disallow: /*?replytocom*
屏蔽捉取留言信息链接。一般不会收录到这样的链接,但为了节约蜘蛛资源,也屏蔽之。
10、Disallow: /a/date/
Disallow: /a/author/
Disallow: /a/category/
Disallow: /?p=*&preview=true
Disallow: /?page_id=*&preview=true
Disallow: /wp-login.php
屏蔽其他的一些形形色色的链接,避免造成重复内容和隐私问题。
10、Sitemap:http://***.com/sitemap.txt
网站地图地址指令,主流是txt和xml格式。告诉搜索引擎网站地图地址,方便搜索引擎捉取全站内容,当然你可以设置多个地图地址。要注意的就是Sitemap的S要用大写,地图地址也要用绝对地址。
上面的这些Disallow指令都不是强制要求的,可以按需写入。也建议站点开通谷歌管理员工具,检查站点的robots.txt是否规范。
好了,以上就是对利用robots.txt对wordpress博客进行优化的详细内容,希望可以帮助和我一样刚接触wordpress博客的同学。