SEO优化技术

Web3运营服务商,NFT项目管理,技术咨询

如何针对WordPress的网站做速度优化?

在上一篇中,我们已经提到了为何网站速度会变慢,以及如何检测自己的网页速度。我们给出了“2秒钟以内”的目标,如果你决心按照这个标准进行优化,这里可以给你一些建议。 译者注:这部分长达5000+字,你可以收藏慢慢阅读。

巩固网站基础 在第一部分中,我们将讨论的是基本的加快WordPress网站的方法,并设法减少加载时间。

01.投资高质量的主机

最基本的提升网站性能的方法,就是挑选更好的主机。很多主机诚然很便宜,但网站托管这个领域是一分钱一分货,如果你需要足够的速度,那就要接受相应的价格。 那怎么挑选主机? 如果你刚开始挑选主机,那请先尽可能避免共享主机,这样可以消除同主机上“坏邻居”网站的风险。而相反,除非你的网站规模庞大,并且拥有足够的人力物力支持,否则你也远不需要去购买一个独享的服务器。 一般来说,VPS(虚拟主机)是最好的选择,它很好地平衡了速度、性能和成本,中小型网站非常适合使用VPS。而另一个选择是针对WordPress的,由于巨大的用户量,很多服务器推出了专门针对WordPress的托管服务,它做了专门的优化,提升了WordPress的性能,最可喜的是你甚至不用额外搭建任何环境。后者的数量正在激增,价格正在下降。

02.保持核心技术更新

第二个措施是保持核心技术——如HTML、PHP和其他网络技术——的更新,你要知道它们的改进是有原因的:改进老功能,增加新功能和提升运作效率。因此保持更新是很重要的。 优质的服务商会处理这方面的问题,但并不意味着你不需要检查,往往服务商更新版本后并不会自动帮你调整(这可以防止一些版本变换带来的Bug),你需要经常检查PHP配置和其他的选单,并决定是不是该修改PHP版本。 再次提醒,一些旧的代码(包括旧版本的WordPress)可能无法在新的环境下(如新版本的PHP)运行,所以在更新时务必确保你有办法撤销这个操作。做好备份是最基本的保护措施。

03.及时更新WordPress和组件

不仅是服务器软件和环境,WordPress也会面临更新问题。每个CMS版本都会有新功能,并修补一些Bug和缺陷。这有助于你的网站运行地更高效,防止你的速度随着他人的更新而相对落后。 另外,保持WordPress版本更新不仅是速度问题,还有安全问题。你的任何WordPress版本、主题以及插件,都可能存在漏洞,而使用最新版本可以最大限速地避免它。你没有任何理由不做更新。

04.选择适当的主题

说到主题,它也可能是影响网站速度的决定性因素。有些主题臃肿混乱,它们提供了如此多的功能,而这些都意味着代码的加载,使得你的网站不堪重负。如果你不是真的需要这么多功能,那又是何必呢? 处于这个原因,你应该视图找到一个你真正需要的主题,而不是一个强大的主题。甚至有可能的话,选择一个轻量的主题,通过插件来完成需要的功能。这样可以帮助你精简网站,你会在加载时间上看到效果的。

05.执行常规数据维护

WordPress的程序会随着时间推移变得臃肿,数据库也是这样,它很容易积攒无用的数据。卸载插件、修改帖子等操作都会在数据库里增加无用的信息。 处于这个原因,你应该定期维护数据库,保持它的精简和可用性。很多工具可以帮助你,比如WP-Optimize和Wp-Sweep(前者是译者也在使用的)。 另外,听我一句劝,减少文章的修改次数!

06.开启监控

有一句话是这么说的:先有调查数据,后有管理整改。只有你知道问题存在,才有可能去纠正他。 前面提到过的Pingdom等工具可以为你提供自动监控服务,如果你的网站速度太慢还会给你发邮件。国内的选择如360云检测、百度云观测等也可以进行尝试。

前端性能优化

到这一步为止,关于加速WordPress,我们的基础知识就讲完了。当然我们还有更多的事情可以做,比如前端优化。

为什么要优化前端而不是后台?根据性能工程师Steve Souder的说法,80-90%的最终用户响应时间都发生在前段上。那么,我们就在这方面进行一些讨论。

01.减少服务器请求

每当我们的浏览器加载网页资源的时候,就会发生服务器请求,比如向服务器要求下载JS文件、CSS样式表或图像。 加载网站所需的服务器请求数量和总容量越多,加载时间就越长。因此减少请求是应该尝试的,这些措施可以帮到你: 在单一页面上显示更少的帖子 在帖子列表里只显示摘录,甚至只显示标题,而不是完整文档(在设置-阅读下你可以找到这个选项) 将较长的帖子分成几页 如果评论很多,那么把评论分页加载(设置-讨论) 减少页面上的图像和其他元素的数量 卸载不必要的,尤其是速度慢的插件(使用P3 (Plugin Performance Profiler)这个插件可以快速把它们找出来) 对于不需要一直开启的插件(比如上文提到的WP-Optimize),把它暂时关闭 使用Lazy-Load技术来延迟加载图像 如果不需要,就不要使用网络字体 根据Pingdom或GTmetrix的分析报告,你可以看到服务器收到了哪些请求,并花费了多久去完成它。你可以针对性采取措施,加速或消除请求。下一个优化措施就是这方面的。

02.压缩图片

图片通常是我们页面里体积最大的那一部分,毕竟正文和样式都是文本而已,数据的体量是不同的。因此,为了加速WordPress,优化图片是至关重要的。 最好的办法之一就是压缩图片,然后再进行上传。例如,在Photoshop理,你可以使用“储存为Web格式”来输出图片。当然,在线压缩网站TinyPNG也可以为你代劳。 这个过程可以自动化,你可以选择WP Smush或EWWW Image Optimization等插件,来优化上传到您网站的任何图片。同样,不用时请关掉。 你需要注意,在你上传一张图片的时候,WordPress会默认为你创建多个尺寸的图片,这是为了在一些特定场合使用(比如文章列表是缩略图),一些主题还会额外创建更多这样的图片。 一个全尺寸的图片上传后,会生成一个小图片和一个缩略图(默认设置下分别是300px和150px的宽度)。这会让你的网站更臃肿,但它就是在发生着。

03.避免将媒体文件放在自己网站上,尤其是视频 还是多媒体的话题,视频也是个大问题。

虽然WordPress完全可以托管视频,但是不推荐你这么做。首先它会消耗大量流量,这已经很重要了,毕竟很多托管服务的流量都不是无限供应的。其次,它会让你的网站更大,更难备份。 而反过来说,很多视频托管网站服务非常优质,比你的服务器好得多。通过嵌入上传在那些网站上的视频,你就可以完成你的帖子。当然了,对于图片你也可以这么处理。国外你可以选择YouTube,Vimeo或DailyMotion,国内你可以选择腾讯,优酷(已经不支持自动生成iframe代码,但你可以手动生成)等。

04.开启缓存

我们提到过,WordPress是动态加载页面的,但最终的加载结果其实还是一个静态的HTML。 既然动态比较慢,那这个完成的HTML就不能被保存下来吗?毕竟这样可以节约很多步骤。 不错,这就是缓存的意义所在,也可以说是加速WordPress的最佳方法之一。很多CMS插件提供了解决方案,我尤其推荐WP Super Cache,W3 Total Cache和WP Rocket(后面这个比较高级,功能复杂),选择其中一个即可。 如果有足够的技术,你可以使用.htaccess来完成。除此之外,很多服务区也提供缓存功能,但你必须有权限进行主机管理才能进行设置(虚拟主机一般是不行的,但ECS都可以)。如果你使用的是专门的WordPress托管主机,那么很可能服务商已经自动提供了缓存功能,你不需要做任何事情。 译者注:缓存是非常重要的,尤其对中型以上的站点来说。当你进行闭站维护准备重新上线的时候,务必执行一步预热操作,即将你的大部分页面进行一次缓存,否则上线后很容易因为大量蜘蛛爬取而导致CMS处理跟不上速度,进而导致服务器崩溃。

05.内容交付网络(CDN)技术

记不记得我们讨论过服务器的位置很重要?一般情况下,访问者和服务器离得越远,那页面加载的就越慢。 而CDN技术就是用来解决这个问题的。它允许你讲网站的静态文件托管在多个服务器上,而服务器遍布全球各地,这样就减轻了距离问题——当有人请求访问的时候,最近的服务器可以进行响应,这样就减少了加载时间。 国外的CDN服务有MaxCDN,Amazon Cloudfront和Cloudflare等,后者甚至有针对个人网站的免费计划。在国内,译者推荐腾讯的CDN,当然你也可以选择阿里云CND或百度云加速等。 除了整站加速之外,你还可以选择部分内容的专门CDN托管。比如Jetpack提供的Photon免费图像CDN,你只需要安装激活就可以了。国内你可以选择将图片上传到七牛等图床上,译者强烈建议你支持一下七牛。

 

上述的方法大多数人都可以执行,技术性并没有那么强,以基本设置和简单的技术实践为主。但接下来的设置会比较复杂,别害怕,试一试吧!

01.合并文件

上面提到,应该尽可能减少服务器请求。而一个很好的办法,就是把文件合并,使得数量更少(当然同时体积更大)。这种技术被称为串联。 它有明显的优势,因为一个大文件通常比几个小文件下载更快,特别是不允许多线程下载的时候。 如果你懂得开发,可以使用Gulp等工具来实现,即便你不懂也可以借助Autoptimize。它可以将所有的HTML、CSS和JavaScript文件合并成一个,你安装这个插件并激活就可以了。你可以调整一些选项,比如下面这个……

02.代码压缩

你可能没听说过所谓代码压缩,但它的概念是很简单的。 比如,如果你读过一个代码文件,就拿CSS样式表来距离,它通常排列整齐,使得比较容易阅读(至少对开发人员来说是的)。但是电脑根本不在乎,只要格式正确(而不是整齐优美),那它一概都接受,而且执行地同样完美。 而关键在于,整齐的排列用到了更多的字符(比如换行符和缩进),这使得文件变大了,从而使得下载时间更长。那如何缩小呢?把它们去掉就可以啦!Autoptimizecan和W3 Total Cache两款插件都可以做到,而开发者还可以选择Gulp和Grunt。

03.启动Gzip压缩

关于图象优化我们已经提到过压缩了,你计算机里的zip文件也是压缩,那你不必惊讶于你的网站也可以用这个技术吧? 毕竟,WordPress网站也不过是一堆文件嘛!压缩对于重复数据的效果非常好,而代码往往是大量重复的,这也是为什么压缩对网站来说非常理想。 在一切操作的基础上,再来一个压缩,使得网站更小,下载也更快了。不用担心,所有的现代浏览器都可以解释压缩文件,所以开启它是你的绝佳选择。 Gzip很容易启动,上面提到的缓存插件就可以做到。如果不能,你也可以在.htaccess文件里加入这样的代码: # Compress HTML, CSS, JavaScript, Text, XML and fonts AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml   # Remove browser bugs (only needed for really old browsers) BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent

这段代码加在哪里都可以,只要不把现有的代码切断……如果你不放心,加在.htaccess最后就可以了。

你可以用这个网站测试Gzip有没有启动:https://checkgzipcompression.com。

04.不要直传图片 直传图片指的是你讲图片直接上传到自己的托管服务器上,也就是你的媒体库里。这种情况下,其他网站或许会通过Hotlinking引用这张图片,这将导致其他网站被浏览的时候,你的服务器收到传输图片的请求。这样,你不仅损失了带宽,还没拿到流量…… 你可以选择将图片上传到图床,然后在自己的网站上引用。同时,在.htaccess里加入下面的代码可以禁止盗链,也就是禁止其他网站引用你的图片:

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)example.com/.*$ [NC] RewriteRule \.(gif|jpg|jpeg|bmp|zip|rar|mp3|flv|swf|xml|php|png|css|pdf)$ – [F]

注意,文件里的example.com要换成你的真实域名! 译者注:当然,有一些插件可以帮你实现反盗链,比如Copyright Pro。CDN也可以,比如百度云加速的防盗链技术。 H那么,你准备好加速WordPress网站了吗! 网站速度是你网站的重要参数,它对跳出率、转化率、排名等有至关重要的影响,即使只差几秒钟,也是天壤之别。 你有很多事情可以去做,上面的技术其实也只是你的一部分选择,请相信它们是有效的。 你可能要问——这些你必须现在全部来一遍?不不不…… 网站最重要的永远是内容。速度不是一切,而速度优化,是你可以慢慢做的,这里面很多优化方式不是一蹴而就的,而是你需要长期维护的。 如果你有其他加速WordPress的方式,欢迎留言讨论。 部分内容(尤其是针对国内的部分)由译者Kamilet添加。

原文出自[卡米雷特的小站(kamilet.cn)],转载请附带原文链接: https://www.kamilet.cn/how-to-speed-up-wordpress/3/

相关文章