Perfmatters是一个轻量级的Web性能插件。访问速度缓慢的WordPress网站跳出率会很高,转化率会很低,Perfmatters插件旨在加快WordPress的网站速度!使用该插件,可以将请求减少了10%,页面速度加快12%。请注意Perfmatters不是缓存插件,推荐与WP Rocket(火箭)配合使用。
Perfmatters插件优点
速度优化
通过减少HTTP请求,禁用插件,去除代码并优化数据库来提高站点速度。
轻量级的
干净,有效和轻量级的代码,启用插件后,在网站前端不会增加额外静态资源。以Perfmatters v2.1.0为例,含多语言的安装包仅339KB。
兼容性
可以与所有编码规范的主题和插件一起使用,完美兼容WP Rocket、WP Super Cache、W3 Total Cache等缓存插件。
安装Perfmatters汉化版插件
下载最新Perfmatters汉化版,在“WordPress后台>插件>安装插件>上传插件”进行安装,安装完成后点击“启用插件”按钮。
常规设置
在“WordPress后台>设置>Perfmatters”进入到常规设置页面,如下图:
Perfmatters 常规设置
上图为Perfmatters插件的常规功能设置界面,以上推荐设置供参考。
常规功能设置详解
- 禁用表情符号:不论是否使用表情,WordPress默认会加载一个JavaScript文件
wp-emoji-release.min.js
,该文件约4.6KB,开启该选项后,会在WordPress前端移除该文件,达到网页加速的效果。 - 禁用面板图标:未登录时,禁止加载仪表盘。部分主题或插件也许会在前端使用到它,如果禁用后出现问题,可以再开启,该文件约57KB。
- 禁用嵌入:WordPress从4.4版开始,新增了嵌入功能,该功能可在编辑时自动将YouTube视频,推文和URL转换为预览。如果不需要使用该功能,则可以禁用它,这样在前端就不会加载
wp-embed.min.js
文件,该文件大约1.3KB。 - 禁用XML-RPC:XML-RPC可允许远程连接,除非使用移动设备发布到WordPress,否则这个功能弊大于利,它会使网站面临很多安全风险。
- 移除jQuery迁移:即jquery-migrate.min.js文件,其实大多数最新的前端代码和插件都不需要
jquery-migrate.min.js
,该文件约11KB。注意:如果正在运行诸如Divi,Elementor或Thrive Architect之类的页面构建器,建议保留jQuery Migrate,否则会引起一些错误。 - 隐藏WP版本:默认情况下,每个WordPress网站页面中都会显示标记:
<meta name="generator" content="WordPress 6.2.2" />
,它显示了正在运行的WordPress版本,移除这行代码可以让网页的体积变小,同时还能让黑客无法轻易获取WordPress版本信息。 - 删除wlwmanifest链接:这个链接是Windows Live Writer使用的,如果您不知道使用Windows Live Writer(猜测您没有),那么这就是不必要的代码。
- 删除RSD链接:这是供客户端使用的链接,如果通过浏览器编辑网站,则不需要此功能。
- 移除短链接:默认情况下,WordPress会在文章页面中添加<link rel=’shortlink’ href=’https://domain.com?p=168′ />这样的代码,如果使用了伪静态,则这样行代码也是没用的。
- 禁用 RSS 源:默认情况下,WordPress会为站点生成所有类型的不同RSS源。如果是博客、新闻或资讯类型的网站,从SEO的角度来说,不建议禁用。
- 移除RSS源链接:与WordPress生成RSS的方式类似,它还会为网站的页面/帖子,评论,标签等生成RSS链接。
- 禁用 Self Pingbacks:pingback本质上是在另一个博客链接到您时自动创建的评论。基本上,Pingbacks会产生大量垃圾信息,而且会浪费资源。
- WordPress提供的REST API,允许开发人员通过远程发送和接收JSON对象与网站进行互动。
- 禁用 REST API:WordPress提供的REST API,允许开发人员通过远程发送和接收JSON对象与网站进行互动。如果存在以下情况的,不能完全禁用REST API:
- 使用Yoast SEO或Ryte仪表板小部件
- 一些特定的WooCommerce仪表板小部件
- 当进行页面/文章后期编辑时,新的Gutenberg块编辑器将使用REST API进行通信。如果完全禁用它,则会出现错误:“更新失败。”
- 移除 REST API 链接:将移除页面上的
<link rel='https://api.w.org/' href='https://domain.com/wp-json/' />
这一行代码。 - 某些WordPress主题和插件内置了Google Maps API,但不幸的是有时没有办法将其关闭。
- 禁用谷歌地图:某些WordPress主题或插件内置了Google Maps API,有时没有办法将其关闭,这会拖慢网页加载速度。
- 禁用谷歌字体:在国内的用户尽量不要使用谷歌字体了,就算一定要用,也请使用本地缓存或第三方镜像吧。
- 禁用密码强度尺:在最新版本的WooCommerce和WordPress中引入了一个集成的密码强度表,该强度表可强制用户使用强密码。
/wp-includes/js/zxcvbn.min.js
与/wp-admin/js/password-strength-meter.min.js
,两个文件约400KB。 - 禁用评论:如果不想处理审核大量的垃圾评论,最好完全禁用WordPress评论功能。
- 移除评论的URL:这将完全删除WordPress评论中的链接和网站字段,如果禁用了评论,该选项就没关系了。
- 禁用 Heartbeat:Heartbeat API是内置于WordPress的简单服务器轮询API,允许近实时前端更新。页面加载后,客户端心跳代码会设置一个间隔(称为“滴答声”),每15-60秒运行一次。但它也会导致较高的CPU使用率和疯狂的PHP调用。例如,如果将仪表板保持打开状态,它将每隔15秒钟定期向该文件发送POST请求。
- 限制帖子修订:可以关闭或设置允许存在多少个修订版本,这可以让数据库体积更小。
- 自动保存时间间隔:推荐设置为3-5分钟。
- 更改登录网址:此处为修改后台登陆地址,默认情况下,WordPress使用
https://yourdomain.com/wp-admin/
,问题在于,机器人,黑客等在寻找漏洞和进入站点的入口点时都会扫描它,出于安全考虑,建议将其设置成其它自定义URL(但请牢记新的后台登陆URL)。
预加载设置
Perfmatters 预加载设置
即时页面
即时页面功能可实现当用户将鼠标悬停在链接上时,后台自动预取该 URL。这样一来,当用户点击该URL的时候,网页将瞬间呈现,感觉网站速度非常快,提升用户体验。
这个功能使用的是由 Alexandre Dieulot 开发的instant.page库。
预加载资源
对于网页中有加载额外字体文件或Font Awesome图标的情况,预加载资源可以缩短用户等待时间、消除渲染阻塞资源警告。
也可以预加载一些重要的图片、CSS、或JS,不过一般情况不推荐,因为预加载的资源多了,效果就不好了。
预加载关键图片
这和上面的设置原理一样,都是预加载资源,不过这里设置的数字是预加载网页中最前面的几张图,这有助于减少Core Web Vitals 中的Largest Contentful Paint (LCP) 时间。
网页中最前面的几张图片通常是在移动设备中首屏需要呈现的内容,例如顶部的Logo,特色图片。
预连接
Preconnect 允许浏览器在 HTTP 请求之前建立预先连接,从而消除往返延迟并为用户节省时间。
如果网页中调用了外部URL资源或使用了CDN,建议将外部URL或CDN的域名添加到预连接中,注意要添加https或http前缀,例如:https://cdn.laipang.com
。
DNS预取
DNS 预取允许您在用户单击链接之前解析域名(在后台执行 DNS 解析),这是通过在 WordPress 站点的标头中添加一个 rel=”dns-prefetch”
标签来完成的。
常见用途是 CDN URL、Google 字体、Google Analytics 或 Google Tag Manager 等(未使用的不要添加到DNS预取列表中):
//cdn.domain.com
//fonts.googleapis.com
//www.google-analytics.com
//www.googletagmanager.com
DNS预取列表中不要添加http或https前缀,但要加上两个反斜杠。
延缓加载
延缓加载也可以称作懒加载(lazyload)或延迟加载,开启后,图片、视频、或多媒体资源不会立即加载,仅在用户屏幕可视范围内需要呈现时才加载,这对于提升网页加载速度起到很重要的帮助。
Perfmatters lazyload 延缓加载
这里重点介绍从延迟加载中排除选项,因为在用户浏览网页的时候,如果将首屏需要呈现的图片或其它内容延缓加载的话,那么会让用户感觉网页很慢。所以这部分内容需要从延缓加载中排除。
排除的方法有两种,一种是选择排除签到图像,例如选择“2”,一般网页的Logo和特色图片就排除在外了。
另一种方式是基于文件名匹配或CSS选择器匹配排除,文件名匹配的话输入文件名即可,例如:logo.png。
CSS选择器的话,可以在浏览网页前端的时候,对需要排除的图片点击右键,再点“检查”菜单,如下图:
在浏览器中检查CSS选择器
HTML脚本
找到其中的class选择器名称,如上图所示其中class="gb-image-fdc3040e"
代表选择器为gb-image-fdc3040e
,将gb-image-fdc3040e
添加到从延迟加载排除的列表中即可,每行一个。注意如果仅排除特色图片,需要注意的是它的class选择器名称是否是唯一的,否则具有相同选择器的图片都会从延缓加载中排除。
优化字体
如果使用谷歌字体,Perfmatters提供了相关的优化选项:
Perfmatters 字体优化
由于一些特殊原因,Google字体在国内的加载很慢或根本无法加载,但一些WordPress主题或插件会使用到Google字体。Perfmatters给出了两种优化方案,一种是直接禁用谷歌字体,网页上不再加载,从而提高网页加载速度。但是字体会被替换成系统默认字体。
另外一种就是将谷歌字体本地化,也就是将原本需要通过Google调用的字体文件下载到自己的服务器上或CDN,这样用户访问的时候加载的是本地服务器或CDN的字体文件,速度大幅提升。
还有在部分国家,直接使用Google 字体违反了 GDPR,在本地服务器上加载则不会违规。
显示 Swap 选项则是 font-display: swap
的开关,开启的话可以预加载您的 Google 字体并根据需要添加 CSS 属性,还可以消除有关 Core Web Vitals 的警告。
CDN 链接重写
Perfmatters设置CDN Url重写
这个功能并不是开启CDN,只是将源URL替换成CDN的URL,例如上图的设置,会将前端页面中wp-content与wp-includes目录下,除了PHP文件之外的所有URL重写成https://cdn.zhanzhangb.com/文件名,例如:
https://www.xiciw.com/wp-includes/css/dist/block-library/style.min.css?ver=5.6.1
被重写成:
https://cdn.xiciw.com/wp-includes/css/dist/block-library/style.min.css?ver=5.6.1
如果需要排除其它文件类型,只需添加其扩展名即可,例如排除css样式文件,添加.css
,多个文件类型中间用英文,
隔开。
开启此选项之前,请先配置好相应的CDN缓存域名与缓存服务,确保通过CDN域名可以正常访问静态文件,否则导致网页加载出错或排版错乱。
注意:如果使用了WP Rocket(火箭)且启用了CDN,此处不用重复开启。
优化谷歌分析(Google Analytics)代码
Perfmatters Analytics优化
该功能主要是将Google Analytics的统计代码本地化,达到快速加载的效果。(如果开启了CDN功能,还可以通过CDN加载)
在Script Type选项中,可以选择的选项有:
- analytics.js(默认):analytics.js文件有18.4 KB,是包含所有功能的标准Google Analytics(分析)脚本,这是默认选项。
- Minimal:analytics-minimal.js是一个较小且经过优化的开源脚本,仅1.5 KB。支持统计浏览量,用户,位置,设备,流量来源和实时信息。但不具有analytics.js的所有功能,例如:站点速度监视。
- Minimal Inline:将analytics-minimal.js内联在页面中,将减少对文件的HTTP请求,但会增加HTML页面的总大小。
- gtag.js v4:是51.5 KB,是Google Analytics(分析)的最新版本。可以跟踪事件和点击次数,而无需任何其他代码,并且可以使用Google全新的分析界面。
- 最小的 v4:analytics-minimal-v4.js 是一个更小且经过优化的开源脚本,只有1.6 KB。页面浏览量、用户、位置、设备、流量来源和实时报告都可以正常工作。
总结
不论是什么类型的WordPress网站,我们都推荐使用Perfmatters插件进行优化,它提供的所有功能都非常实用,根据本文所推荐的设置进行优化后,WordPress的前端速度应该可以提升30%及以上。
如果要达到网站秒开的极速体验,请继续阅读:Perfmatters使用教程:静态资源优化,提升WordPress速度