简单介绍:
本篇文章为玩技博客站长经过多年来积攒的wordpress网站优化经验分享,期间很多的优化可能大部分站长都亲身经历过或者优化过,如有不足欢迎大家再评论区留言补充。
优化目的:
大家都知道,网站的打开和访问速度决定了大部分流量和seo相关收录的先决条件,所以做好一个网站最基础的就是要保证网站访问和打开的速度。文章源自玩技e族
-https://www.playezu.com/674426.html
开始优化:
问题一
场景分析:常规的优化大家可能都进行过,其中最基础的就是谷歌字体的引入导致国内访问和打开的速度过慢。文章源自玩技e族
-https://www.playezu.com/674426.html
解决办法:将下面代码添加到主题functions.php文件中:文章源自玩技e族
-https://www.playezu.com/674426.html
function coolwp_remove_open_sans_from_wp_core() { wp_deregister_style( open-sans ); wp_register_style( open-sans, false ); wp_enqueue_style(open-sans,);}add_action( init, coolwp_remove_open_sans_from_wp_core );
2、之后,再次登录后台速度明显提升。代码取自 Remove Open Sans font from WP core 插件,也可以直接安装启用该插件。文章源自玩技e族
-https://www.playezu.com/674426.html
3、相似功能的插件:Disable Google Fonts 因Google字库中只有英文,对国人无任何用处,换用国内某字体服务的方法同样意义不大,禁掉最实用。文章源自玩技e族
-https://www.playezu.com/674426.html
4、上述方法对前台主题加载Google字体无效,国外主题也多采用外链Google字体,自行手动修改模板删除相关代码。文章源自玩技e族
-https://www.playezu.com/674426.html
5、以Wordpress默认主题Twenty Fourteen为例,打开主题functions.php模板文件,查找并删除:文章源自玩技e族
-https://www.playezu.com/674426.html
//fonts.cat.net/css
6、其它主题类似,但可能不在functions.php模板中,只能逐一文件查找,只搜索google关键字就可以了。文章源自玩技e族
-https://www.playezu.com/674426.html
7、注:这已是目前国内使用Wordpress所必须做的,建议国内主题设计者直接集成在主题中,不然刚接触WP的新手,会因此放弃!文章源自玩技e族
-https://www.playezu.com/674426.html
问题二
场景分析:插件或主题引用了大量的外链或者其他站外资源等等。文章源自玩技e族
-https://www.playezu.com/674426.html
解决办法:如遇到安装插件之前网站速度非常快,但是安装主题或者插件之后网站突然变得很慢。那么就完全可以确定是是有插件或者主题导致的。文章源自玩技e族
-https://www.playezu.com/674426.html
1、我们首先可以使用浏览器自带的开发者工具进行请求分析,查看是哪个请求导致的网站加载速度比较缓慢。(这里以谷歌浏览器为例,开发者快捷键F12)文章源自玩技e族
-https://www.playezu.com/674426.html
文章源自玩技e族
-https://www.playezu.com/674426.html
2、其次我们可以根据图中第二个查看下具体是哪些请求链接时间过长,然后根据做出具体的优化文章源自玩技e族
-https://www.playezu.com/674426.html
3、专业工具进行分析例如:pagespeed 或者 pingdom 查看推荐优化的指标项或者静态资源(此处不多说,需要大家自行研究)文章源自玩技e族
-https://www.playezu.com/674426.html
文章源自玩技e族
-https://www.playezu.com/674426.html
方式一:文章源自玩技e族
-https://www.playezu.com/674426.html
比如:加载的外部样式或者脚本文件css、js,我们可以将其下载并上传到本地服务器资源,然后再对面引用的页面位置将站外的引用链接地址改为站内,站内可以应用绝对路径或者相对路径。文章源自玩技e族
-https://www.playezu.com/674426.html
方式二:文章源自玩技e族
-https://www.playezu.com/674426.html
CDN:使用国内大厂的cdn加速或者其他你认为速度很快的CDN,然后通过wordpress插件或者代码的形式引入到站内使用,wp-super-cache 或者 litespeed-cache 或者 CDN Enabler插件。文章源自玩技e族
-https://www.playezu.com/674426.html
(高手推荐:litespeed-cache)
(新手推荐:wp-super-cache)
插件:前两款插件可以静态加速外和css、js压缩,本身集成了cdn的功能所以更方便入手,最后一个推荐使用1.0.9版本,因为高版本之后只能使用他们自己的加速服务。
(litespeed-cache的css压缩)
(litespeed-cache的js延迟和压缩)
tips:当然了还有很多站外的免费加速cdn等等,根据实际情况选择,我推荐的只不过是适合新手和自己实际测试过。
问题三
场景分析:(图片资源站等等)大量的图片资源导致网站的打开速度过慢
解决办法:可以压缩图片或者是懒加(延迟)载资源实现。
插件:推荐使用litespeed-cache插件,因为插件本身集成了懒加载功能(也叫延迟加载),懒加载的插件有很多,大家可以根据需求自行测试下哪款比较好用。(这里可以百度下同步加载和异步加载的方式)
(litespeed-cache的图像压缩)
(litespeed-cache的图像延迟加载)
其他:如何知道是否启用成功了可以查看对应图片位置是否有lazy字样即可
问题四
场景分析:主题自带的模板页面模块过多或文章发布较多导致的网站卡顿
解决办法:模块过多要精简首页的模块加载个数,因为资源加载的越多导致需要引入的静态资源就过多,过多就会导致每个用户访问的时候都会加载并占用大量带宽,并发量过大的时候会导致网站直接崩溃或者cpu 100%等问题。
方法:文章发布过多请参考
WordPress文章过多导致跳转文章时加载过慢的问题优化
问题五
场景分析:之前安装过插件之后导致网站慢,卸载插件之后还是慢无法再像过去那样快。
问题分析:插件和主题中会有大量的字段会存在wp-option这张表中,在wp-options表里面主要是存贮WP的全局数据设置方面的信息, 如博客名、博客地址、基本设置、插件设置、主题设置等等。在你不经意间,这个表里面的数据可能就会瞬间增长,比如,建站大概两年的时候,开启了wp-rocket加速插件,感觉不好用,就关闭了,之后发现问题,网站被人cc就挂了,一直再找问题,后来准备重新安装环境的时候才发现原来是数据库里面的wp-options表数据过大,导致cc攻击的时候访问数据库压力剧增,cpu直接爆炸,就宕机了。
该表包含以下字段,我们在性能方面更关心其中一个字段:
- option_id
- option_name
- option_value
- autoload
了解wp_options表的重要事项之一是autoload字段。这包含是或否值(标志)。这基本上控制它是否由wp_load_alloptions() 函数加载。自动加载的数据是在WordPress网站的每个页面上加载的数据。就像我们向您展示了如何禁止某些脚本在站点范围内加载一样,同样的想法在这里也适用。默认情况下,开发人员的自动加载属性设置为“yes”,但并非每个插件理论上都应该在每个页面上加载他们的数据。
WordPress网站可能遇到的问题是wp_options表中有大量自动加载的数据。这通常是以下原因造成的:
- 数据由插件自动加载,而实际上它应该设置为“no”。一个很好的例子就是联系表单插件。它需要在每个页面上加载数据还是只在联系页面上加载数据?
- 插件或主题已从WordPress站点中删除,但它们的选项仍留在wp_options表中。这可能意味着每次请求都会查询不必要的自动加载数据。
- 插件和主题开发人员正在将数据加载到wp_options表中,而不是使用他们自己的表。这方面存在争议,因为一些开发人员更喜欢不创建额外表的插件。但是, wp_options表也不是为保存数千行而设计的。
太多自动加载的数据是多少?这当然可以变化,但理想情况下,您希望它在300KB 到1MB之间。一旦开始接近3-5MB 范围或更多,很可能可以优化或删除自动加载的内容。任何超过10MB 的内容都应该立即解决。这并不总是意味着它会导致问题,但这是一个很好的起点。
对wp_options表中的自动加载数据进行故障排除
如果您的WordPress网站运行缓慢,可能是由于旧WordPress插件遗留的查询或自动加载数据。下面我们将向您展示如何检查数据库中自动加载的大小,以及深入了解实时站点的数据并分享我们为清理它所做的工作。
检查自动加载的数据大小
首先要做的是检查WordPress网站上当前自动加载的大小。为此,请登录到phpMyAdmin。单击左侧的数据库,然后单击SQL选项卡。然后输入以下命令并点击“Go”。
SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload=yes;
之后我会写一篇专门讲解的文章(wp-option)
解决办法:可以直接访问phpMyAdmin打开wp_options的表查看是否有卸载过后插件的名称或者类似的字段值,因为有些插件卸载不干净,字段存在的话仍然会调用一些插件的缓存文件导致网站过慢。
数据操作:有两种办法可以解决,一种就是不确定是否是这个option_name影响的速度可以将后面的autoload直接设置为no,或者直接将这个字段删除。
图中的例子为:旧版的wp菜单的存在方式,每次访问页面的时候都要加载所有菜单所以玩技之前的网站很慢。这里可以直接删除或者设置为否就可以了。
如果说你的网站建立没多久那么可以直接将这个表里的所有字段删除,然后新建个同样名字的网站,然后再将新网站的wp-option表中的数据导入到源站即可。
推荐插件:advanced_db_cleaner高级版,插件中自带排查孤立文件,可以一键删除无关联的数据表和关联字段。(站长用的破解版大家可以下载)
源站提供下载链接地址
(插件自动扫描无用或无关联的数据表)
(扫描插件卸载后的无用表,插件自带一键删除功能)
(wp-option单独操作的表,可以晒出无用的字段名字)
tips:操作数据时切忌一定要备份、一定要备份、一定要备份、一定要备份、一定要备份、一定要备份、
本文将长期更新未完待续。。。