网站速度很重要已经不是什么秘密了。如果网站没有在2秒之内打开,所有用户都会离开 – 特别是Google。
除了常见的策略和优化技术之外,优化WordPress 网站依然还有很多的选择。本优化指南全文约为4万字,分为上下2个部分。
遵循本指南的先决条件是基本的键盘鼠标操作技能和识字能力。
本指南适用于任何人,但要充分利用该指南,必须严格安装本教程来操作,这将有助于你进一步熟悉和使用WordPress。
部分操作我们推荐使用插件,另一部分操作则为代码的复制和粘贴,它们都非常简单,不用担心太多。
现在,让我们开始吧。
第一步:网站测速工具
如果对于网速速度优化没有头绪,第一步建议使用网站测速工具对网站做一个综合的诊断,然后根据测试工具给出的各种建议进行针对性的优化,当前市面上最流行的测速工具有3个:GOOGLE PAGESPEED Insight, PINGDOM TOOLS 和GTMETRIX。下面是这几款工具的效果页面。
- GOOGLE PAGESPEED
- PINGDOM TOOLS
- GTMETRIX
这些工具的使用过程都非常简单,输入网站地址,点击测速等待几分钟即可看的你网站的速度评分和各种优化建议。
第二步:选择速度快的服务器
选择快速的Web服务器是最简单的,也是您可以采取的最有影响力的决策之一,可以提高您的网站速度。
衡量主机质量的最常用方法是检查TTFB。 TTFB或第一个字节的时间是服务器响应所需的时间,表示服务器的速度。
要测试TTFB访问,访问ByteCheck并在那里输入您的网站地址。
基于多年的实际体验和对市面是各种主机的实际测速,我们建议您选择Siteground来进行服务器托管。
除了优质的服务外,他们的付费计划对各种规模的博主来说都是实惠的。 它们也是WordPress官方推荐的优质服务器提供方。
第三步:选择一个高性能的主题
安装完WordPress之后就是选择一个适合你站点的主题,市面上有很多外观漂亮,功能丰富的WordPress主题,但是不是每一个都为了网站速度做了专门的优化。
要创建一个在GOOGLE中高排名的站点,您必须优先考虑安装高性能的主题。
无论您选择什么主题,始终优先考虑性能(加载速度快)而不是功能。
选择相关主题时,参考别人的评价或者使用上面提到的测速工具把主题模板测试过后再选择。
第四步:减少WordPress Page 页面使用
多使用Post 帖子来发表文章,尽量少使用Page页面来发表内容。
在WordPress 4.0 时代,使用较多的Page页面发表内容容易引起内存耗尽的系统问题,虽然现在已经是Word Press 5.0 时代了,这个问题也得到较好的解决。但是因为加载机制不同,过多的Page页面依然会从后端影响整个网站的载入。
Post帖子类型的文章通常更好管理和归类。
如果您已在网站上创建了大量页面,则可以使用Post Type Switcher插件将现有页面转换为自定义帖子类型。该插件还支持批量转换操作。
第五步:更新您的WordPress,主题和插件
这是保持WordPress网站快速和安全的最简单方法。我们始终建议您将WordPress安装,所有主题和插件更新到最新版本。这不仅可以提高您网站的速度,还可以帮助您保持网站的安全。
唯一的要注意的是,有大版本更新的时候要先观察一下。4.0升级到5.0版本的时候可以先看看评论再更新。现在已经是WordPress 5.2 版本了,经过多轮更新,这个版本已经很稳定了,可以放心更新。
第六步:使用PHP 7及更高版本
PHP或Hypertext Preprocessor是构建WordPress的服务器端脚本语言。 您可以将WordPress视为完成的房子,而PHP代表建筑材料。
您使用的建筑材料越好,您的房子就越坚固。 同样,您服务器使用的PHP版本越新,WordPress就会表现越好。
遗憾的是,只有1.5%的WordPress安装使用PHP 7.2,这是PHP的最新版本,而高达39.6%的WordPress网站仍使用PHP 5.6,该版本于2014年8月28日发布。
甚至WordPress官方现在建议您使用PHP 7.2或更高版本。
想象一下2014你在用什么样的手机,和现在手上的手机对比一下,你就能明白差距有多大了。
解决方案是选择支持PHP 7.2的主机,并主动保持其系统组件,包括WordPress,是最新发布的。
通常服务器后台控制面板会有更新PHP和SQL的选项,也可以联系技术支持要求他们帮助更新。
同样,我们建议使用Siteground主机,使用最新的PHP版本并定期更新其服务器以支持更新版本。
第八步:启用SSL
虽然使用SSL不会直接影响WordPress的速度,但我们仍然建议您这样做。您应该使用SSL的原因有很多。
首先也是最重要的一点是,Google已经开始在搜索结果中优先展示带有SSL的网站了。虽然今天的差异可能很小,但明天可能就不一样。如果您对Google更新非常熟悉,那么您知道它们会在没有任何警告的情况下发布算法更新。因此,如果明天谷歌突然决定大幅度提高SSL网站权重,您仍将保持优势。
谷歌Chrome浏览器会在用户访问网站时出现新的提示。如果您的网站不带SSL(不安全),您的用户将在地址栏中看到一个巨大的红色标志,表示“非安全”。如果您希望在用户眼中保持信任,则避免此消息至关重要。有关更多详细信息,请参阅此文章。
第二个原因是消费者信任。由于具有SSL的网站在地址栏中显示绿色挂锁标志,因此它们看起来更安全并增强了信心。信任对于您网站上的任何转化都至关重要,因此无论您是运营博客还是电子商务网站,都应该切换到SSL。
第三个原因是安全。根据最近的GDPR规定,数据隐私和安全性至关重要。不遵守规定的网站可能会被罚款高达2400万美元或其年收入的4%,以较高者为准。在欧洲地区开展业务时这一点至关重要。在您的网站上安装SSL证书将加密传输到您的网站和从您的网站传输的数据,这将使您的网站更安全。
现在很多的服务器已经集成了SSL安装和使用了,只需一键点击就可以开启,配合WordPress插件Real Simple SSL表现更佳。另外如果服务器不带SSL快捷开启则需要自己安装SSL,使用CDN服务也可以解决这个问题,具体参考后文的CDN的使用方法。
第九步:注意插件的使用
WordPress性能低下的最常见原因之一是使用了太多的插件。插件会占用系统的很多资源,导致网站的性能下降。但是为了保持网站的美观和功能性,安装一定的插件也是必须的。所以我们在安装插件的时候要谨慎选择。
我们在选择插件时要优先考虑的原则就是,选择带有多个功能插件,从性能角度来看,最好使用一个可以执行许多工作的插件,而不是执行单个任务的多个插件。
插件的最常见功能是Ajax搜索,延迟加载,社交媒体共享,分页,广告管理,相关内容推荐,滑块,侧边栏管理等等。
您应该找到一个处理所有或大部分任务的插件,而不是使用多个执行这些任务的插件。
选择一个好的主题也可以解决这个问题,很多优秀的WordPress主题本身就自带了丰富的功能,不需要安装第三方插件就可以使用。
使用插件时要记住的另一个重要事项是确保它们与PHP 7及更高版本兼容。原因与我们在上面一节中讨论过的原因相同。
第十步:使用缓存来加速WordPress
缓存是一个WordPress插件通过在访问者到达之前处理所有代码来呈现页面的过程。 这样可以节省WordPress通过从数据库和其他资源中提取内容来载入网站所需的时间。
缓存是一种强大的技术,可以使您的WordPress加载时间达到之前的几分之一。
使用插件实现WordPress缓存,并且在WordPress中建立缓存的最佳插件之一是W3 Total Cache。 它是一个包含大量配置和选项的综合插件。
以下就是本站使用W3 Total Cache之后取得的效果。
可以参考我们的W3 Total Cache配置综合指南。 使用这个插件是一个循序渐进的教程,我们将解释W3 Total Cache中的每个设置,如何配置它,以及配置将在何种情况下产生效果。
我们建议您在网站上安装W3 Total Cache并根据我们的指南对其进行配置,然后再继续后面的优化。
第十一步:图像优化
图像是一个网站最基本的元素之一,也是影响网站加载速度最多的因素之一。优化图像可以节省宝贵的网站加载时间。
有许多方法可以优化图像,以下是方法简介:
选择正确的图像格式
选择正确的图像格式至关重要。 最常用的图像格式是JPG,PNG和GIF。 GIF主要用于动画图像,JPG和PNG则是静止的图像文件。
通常情况下,JPG格式适用于具有大量颜色的照片和图像,而PNG图像最适合具有有限颜色和透明背景的图像。
以下是JPG和PNG格式的同一图像的比较。
如你所见,同样的图片,尺寸的差异是巨大的。 因此,选择正确的图像格式非常重要。
如果你很难决定选择哪种图像格式,那么就有一个简单的解决方案。 选择像XnConvert这样的批量图像处理软件,它可以在几分钟内批量调整几百张图片的大小,裁剪,更改格式以及更多操作。
压缩图片
JPG和PNG图像都支持压缩。 在某些软件中,压缩也用质量表示。
创建图像时,它们通常具有100%的质量。 如果降低图像质量(压缩),图像的大小会下降。 通常,您可以将JPG图像压缩到85-90%而不会发生任何眼睛可见的更改。
如果您不知道如何压缩图像,可以再次使用XnConvert。 XnConvert具有质量设置,您可以使用该设置来更改图片质量。
如果您不想在电脑本地压缩图像,那么您可以选择一个WordPress插件来为您执行此操作。有很多插件可以为您压缩图像,但我们推荐ShortPixel图片优化插件。
它是一个很方便的插件,有很多选项可以通过多种方式来压缩图像。使用免费版本,您每月可以压缩多达100张图像,如果您需要压缩更多图像,您只需4.99美元即可购买5,000张图像压缩套餐。
作为替代方案,您还可以使用LiteSpeed Cache Plugin来压缩图像。使用这个插件是免费的, LiteSpeed是一个缓存插件,它会调用免费的Google Pagespeed插件进行图像压缩。
您可以使用LiteSpeed压缩的图像没有限制,所有图像都在它自己的服务器上压缩。这意味着即使您的网站上有数千张图片,您的服务器也不会受到额外负担。
LiteSpeed的唯一限制是它不会一次压缩所有图像,而是批量压缩它们。如果您的网站上有很多图像,则可能需要耗费一些时间来完成压缩。
如果您对一体化性能和图像压缩插件感兴趣,那么您也可以尝试Perfmatters。它是一个高级性能优化WordPress插件,可以一键提供所有优化,您可以轻松优化您的网站。它的最低售价为每年19.95美元起。
第十二步:使用CloudFlare CDN
CloudFlare是一个免费的CDN和反向代理缓存工具。 使用它可以提高你的网站速度。
CloudFlare通过获取您的网站数据并将其存储在它自己的服务器上来提高您的网站速度。
用户访问你的网站时,CloudFlare会优先展示离客户最近的服务器上的内容,重新你的网站就会加载更快。
设置CloudFlare并不复杂,之前已经展示了如何在W3 Total Cache一文中安装和配置CloudFlare。 以下是基本步骤。
安装CLOUDFLARE
第一步是在WordPress插件市场上下载并安装CloudFlare官方插件。 安装完成后,转到“设置”>“CloudFlare”。
主页
以下是我们的推荐设置
设置页面
在设置页面中,有两个选项卡。 以下是“速度”标签的设置。
以下是“安全”部分的推荐设置。
CLOUDFLARE中的设置
除了插件中的设置外,您还可以在CloudFlare帐户中进行一些设置。 登录您的CloudFlare帐户,并使用屏幕截图中的“速度”和“缓存”选项卡设置。 其余设置可以保留默认值。
以下是“速度”选项卡的设置。
以下是“缓存”选项卡的设置。
第十三步:延迟加载YouTube视频和图片
简单来说,你的一篇文章中包含了20张图片,用户再访问这篇文章的时候,即使只读到一半,这个页面上的图片还是会被全部加载。这样就会大大拖慢用户访问网站的速度。
延迟加载是一种通过仅在用户访问哪部分就加载那部分图片或视频来节省加载时间的技术。 如果做得好,它可以大大提高网站速度。
很多优秀的WordPress主题都内置了延迟加载功能,您所要做的就是从设置中启用它们。
对于其他没有内置该功能的主题,市场上也有几个插件可以完成这项工作。 两个比较流行的插件是BJ Lazy Load和A3 Lazy Load。
以下是配置A3 Lazy Load插件的方法。
1.安装插件
在插件菜单中搜索“A3 Lazy Load”并安装它。
2.配置插件
前往插件的设置。
它有很多设置项,所有设置都很容易理解。
以下是配置A3 Lazy Load的理想设置。
开启延迟加载
延迟加载图像
延迟加载视频和iFrame
脚本加载优化
WordPress移动模板插件
效果和风格
图像加载时间
使用这类型的插件时,注意一个前提就是当前已经安装的主题和插件没有延迟加载的功能,能不安装第三方插件就不安装第三方插件。另外就是多做测试,每启用一个选项就刷新网站测试一下效果,延迟加载是一个复杂的技术,有时候会让你的页面出现错误。出现错误后退回到初始状态即可。
第十四步:指定图像尺寸
此优化与速度无关,但与用户体验有关。 为获得最佳用户体验,您必须在页面的HTML中指定图像的尺寸。
要理解为什么这很重要,让我们解释一下网页是如何加载的。
加载页面时,会立即加载所有文本,并设置页面布局。 然后逐个下载图像。 在加载图像时,浏览器查找图像尺寸并调整页面的布局。 对于每个后续图像加载,浏览器必须在图像尺寸上重新创建页面。
这不仅浪费资源,而且随着页面不断变换,访问者可能会无法阅读文本。
通过指定图像尺寸,浏览器预先为图像设置空间,并且不需要多次更改页面。
要手动指定图像尺寸,您必须首先查找图像的尺寸,这可以在WordPress媒体库中完成。
打开图像以查找右侧的图像大小。
获得图像大小后,必须进入页面的HTML版本并将大小附加到img标记。
如果你在很多页面上有很多图像,那么手动实现这一点可能会很麻烦。 要自动执行此过程,您可以使用指定图像尺寸的插件来扫描您的网站并自动添加所有图像的尺寸。
第十五步:提供缩放图像
此优化仅适用于某些网站。 许多主题未针对处理图像进行优化,它们会加载全尺寸图像,然后使用HTML和CSS进行缩放。
例如,如果您上传宽度为2000像素的照片,则主题会每次加载整个图像,然后缩小以适合您网站的各个区域。 这浪费了带宽和宝贵的资源。 理想情况下,它应该更改为自动执行此操作,但如果不能,则可以使用Force Regenerate Thumbnails插件重新创建缩略图。 在使用插件之前,请务必为缩略图设置正确的尺寸。
确保为图像上传正确尺寸的最佳方法是使用备忘清单。 转到您的WordPress设置>媒体,并记下您的主题使用的图像大小。
添加到其他图像大小(导航主图,侧边栏等)并创建一个备忘单。 下次创建图像时,请参考此备忘单调整图像大小。
如果您使用比较好的WordPress主题,则无需执行任何操作。 上传时,主题会自动调整大图像的大小。 这意味着您的图片将始终是您帖子中的合适尺寸,而不是浪费带宽。
第十六步:Gravatar头像优化
Gravatar(全球头像)是一项服务,可让您和您的网站评论者在他们的个人资料上有头像图片。 使用Gravatar有许多优点,但最大的缺点是拖累加载时间。
当您使用Gravatar时,每个评论的个人资料图片都会从Gravatar服务器中获取,这需要不少时间。 最重要的是,Gravatar还引入了多个重定向,这进一步减慢了您的网站速度。
为了摆脱Gravatar下载的耗时,您可以使用以下几个选项:
在您的网站上禁用Gravatar
从帖子中删除垃圾邮件和过多评论
配置WordPress一次只显示几条评论
使用Gravatar的缓存插件,如Optimize Gravatar Avatar
第十七步:延迟加载Disqus
Disqus是一个广受欢迎的评论服务工具,许多博主在全球范围内使用它。 它拥有先进的审核功能和高效的垃圾邮件防护。 安装即用,Disqus会自动消除99%的垃圾评论。
这些优点会耗费加载时间。 每次在您的网站上加载Disqus时,它都会创建10个以上的HTTP请求,从而大大影响加载时间。
现在有一个解决方案。 一个名为Disqus条件加载的插件已由开发人员创建,该插件有助于延迟加载您网站上的Disqus评论。
我们在上一节中解释了延迟加载。 延迟加载是一种技术,我们的网站资源(图像,脚本,视频)不会预先加载页面,而是在用户滚动它们时才加载。
Disqus条件加载插件为Disqus提供延迟加载,因此,仅当访问者滚动到页面末尾时才会加载注释,从而节省宝贵的加载时间。
第十八步:限制发布修订
默认情况下,WordPress将保存帖子的修订版,就算改动一个字都会出现一个新的修订版。修订版的意思类似于保存草稿, 在频繁编辑/更新的帖子中,这可能导致创建帖子的数十个副本。 最终,这将使您的数据库充满大量不需要的数据,这将导致服务器速度下降。
为了避免这个问题,限制帖子修订的数量是明智的。 确切的数字取决于您的偏好,但我们认为3-5应该足够了。
define(’WP_POST_REVISIONS’,3);
将上面的代码粘贴到wp-config.php文件中。
将它放在代码require_once之前(ABSPATH。’wp-settings.php’);出现。
这会将最大修订数更改为3.您还可以更改上面代码中的数字以调整修订数。
要完全禁用后期修订,您可以使用以下代码:
define (‘WP_POST_REVISIONS’, false);
将上述代码粘贴到wp-config.php文件中以完全禁用修订。
请注意,这两个代码都将限制新帖子的修订,现有帖子的修订将保持不变。
要删除旧帖子的多余修订,我们建议您使用数据库清理插件。 有几个有用的插件,这里有一些建议。
WP-Optimize
Advanced Database Cleaner
在您使用上述任何插件删除旧帖子的修订后,您可以从您的网站删除该插件。
第十九步:使用AMP(加速移动页面)
在现在,拥有一个移动友好的网站是必须的。 使用AMP可以帮助您。 AMP或Accerelated Mobile Pages是开源Web标准,旨在加速移动设备上的内容和广告的传送。
该项目于2015年10月由Google宣布推出。 自2016年以来,网络上已使用AMP标准提供了数百万页内容,最新报告称AMP页面的加载速度传统页面提高了75%,带宽消耗减少了十倍。
随着速度和带宽的惊人改进,显然您也应该选择加入AMP。 我们将向您展示两种为您的网站设置AMP的方法。
使用CLOUDFLARE设置AMP
如果您已设置CloudFlare,则只需单击一下即可在您的网站上启用AMP。 登录您的CloudFlare帐户,进入速度设置,然后滚动到“启用AMP”部分。
该功能仍处于测试阶段,因此应该会出现一些小问题。 要开始使用AMP,请启用这两项设置。
用插件设置AMP
您还可以使用插件在您的网站上设置AMP。 WordPress已经推出了一个可以使用的官方AMP插件,但也有一些其他的插件。 这是另一个AMP插件的例子。
安装插件后,您可以访问网站上的外观> AMP以打开AMP版本进行编辑。 由于AMP使用准系统页面,因此您没有很多选项来配置页面,因此请配置所有可用选项并点击保存。 该页面的AMP版本将被保存并在AMP URL处访问。
如果页面的常规URL是 http://example.com/post1/
那么AMP网址就是 http://example.com/post1/amp/
该插件还将向页面添加元标记,类似于:<link rel =“amphtml”rel =“noopener”href =“http://example.com/post1/amp/”/>
这里告诉Google AMP版本页面所在的位置。
测试你的AMP
在实施AMP之后,您应该测试您的页面以了解它们是否按预期运行。 最简单的方法是查看您的Google Search Console帐户。
登录Search Console,打开一个已验证站点,您将看到左侧的“AMP 加速移动页面”。
第二十步:限制搜索引擎爬虫和其他爬虫
搜索引擎爬虫和网络爬虫是资源消耗大户,有时甚至超过您的用户。
除了搜索引擎蜘蛛之外,还有很多其他类型的爬虫,电子邮件爬虫,垃圾邮件程序,它们会以恶意的方式抓取您的网站。 它们不仅不会为您的网站提供任何价值,而且您的服务器还必须花费资源来为它们提供服务。
在您的网站上管理机器人活动是明智的,这样的网络爬虫过程(甚至合法机器人)不会影响您的用户。
GoogleBot是最耗费资源的爬虫机器之一。 您可以直接在Google Search Console帐户中控制GoogleBot的抓取速度。
但是,只有在GoogleBot减慢您的网站速度时才应该这样做。 降低抓取速度将限制Google为您的网站编制索引的能力,这将影响您的搜索引擎排名和流量。
您可以对Bing Webmaster Tools中的Bing Bot执行相同的操作。
如果您的网站因恶意机器人活动而变慢,那么您可以采取一些步骤来防止这些机器人。
首先,您可以参考HackRepair.com上的Bad Bot .htcacess文件。 这是一个.htaccess文件,可以阻止你网站上的大多数已知恶意爬虫机器人。
其次,您可以参考BotReports.com的Bad Bot报告。 他们列出了一个全面的恶意爬虫机器人列表,这些爬虫机器人爬取的网站用途不明。 您可以使用此数据来阻止您网站上的这些爬虫机器人。
第三,您可以使用流行的安全插件WordFence的速率限制功能。 它有很多功能来限制访问者和爬虫机器人,你也可以手动阻止IP地址访问。
第二十一步:使用不带Javascript的社交分享按钮
社交分享按钮在您的网站上有很多用途,使用它们的原因有很多。 但是你应该知道大多数社交分享按钮都带有Javascript。 这意味着可能出现如下情况。
他们通过网络跟踪用户
它们需要很长时间才能加载到您的网站上
它们在下载时消耗更多带宽
如果没有优化,它们会阻止页面的完整呈现
要防止出现所有这些问题,您应该使用不含Javascript的社交分享按钮。 使用这种按钮将消除上述潜在风险,并有助于缩短加载时间。
安装功能完善的主题可以解决这个问题,对于其他不带该功能的主题,您可以删除现有的按钮/插件,并使用像Sharingbuttons.io这样的服务
第二十二步:禁用Emojis
Emojis可以增强您的网站上的趣味性,但会浪费您宝贵的加载时间。 除非有充分的理由保持启用表情符号,否则您应该禁用在您的网站上使用表情符号Emojis。
/** * Disable the emoji's **/ function disable_emojis() { remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_action( 'admin_print_styles', 'print_emoji_styles' ); remove_filter( 'the_content_feed', 'wp_staticize_emoji' ); remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' ); add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' ); } add_action( 'init', 'disable_emojis' ); /** * Filter function used to remove the tinymce emoji plugin. * @param array $plugins * @return array Difference between the two arrays */ function disable_emojis_tinymce( $plugins ) { if ( is_array( $plugins ) ) { return array_diff( $plugins, array( 'wpemoji' ) ); } else { return array(); } }
将上面的代码放在functions.php文件中以禁用emojis。
如果您对编辑网站核心文件感到恐惧,那么您可以使用可执行相同操作的插件。 一个非常棒的免费插件可以禁用表情符号并进行许多其他优化,这是Autoptimize。
第二十三步:禁用WordPress中的嵌入
与您在帖子中嵌入YouTube视频,推文或Facebook帖子的方式类似,您的帖子也可以嵌入其他网站。
此功能是在WordPress 4.4中引入的,并且从那时起一直存在。
嵌入可能是一个有用的功能。 但是,大多数网站从未使用过此功能,很可能他们将来也不会使用它。
如果这是您第一次阅读嵌入,那么您可能也不需要该功能。 如果您不需要使用该功能,那么在服务器上额外花时间加载是不值得的。
网上可以找到禁用代码,复制该代码到你的网站中使用,如果您对编辑网站代码感到不舒服,那么您可以使用插件为您执行此操作。 可以执行此操作的两个插件是禁用嵌入和WP禁用。
第二十四步:删除查询字符串
WordPress中的许多CSS和JS文件附加了一个类似于scripts.js?ver = 2.7.9的查询。
“?ver = 2.7.9”是表示应加载的特定文件版本的查询字符串。
查询字符串的问题在于大多数服务器不会使用查询字符串来缓存文件。 这意味着对于每个请求,必须从服务器下载具有查询字符串的所有文件。 这浪费了大量带宽和系统资源,从而增加了加载时间。
您可以通过完全禁用查询字符串来缩短网站的加载时间。 删除查询字符串可以缓存文件,从而减少加载时间。
网上可以查询到禁用代码复制到你网站的funcition.php文件中来禁用这个功能。也可以使用 W3 Total Cache 和 Autoptimize 来禁用它。
第二十五步:禁用XML-RPC
XML-RPC是一种用于标准化各种应用程序之间通信的协议。 当您使用官方WordPress移动应用程序,WordPress客户端或连接到WordPress的任何其他应用程序时使用它。
如果您不使用任何这些功能,则可以安全地禁用它们以缩短加载时间。
add_filter( 'xmlrpc_enabled', '__return_false' );
将上面的代码添加到主题的functions.php文件中以禁用XML-RPC。
要验证是否已禁用该服务,可以使用WordPress XML-RPC验证工具。 在那里输入您的网站地址,然后按“检查”按钮。
禁用PINGBACKS
Pingback是您链接到任何其他WordPress博客时创建的一种WordPress评论方式。 如果启用此功能,则只要有任何其他博客链接到您的站点,您也会收到Pingback通知。
在WordPress的早期使用了Pingbacks,现在很少使用它们。 您可以安全地禁用Pingbacks功能以缩短加载时间。
要在WordPress中禁用Pingback,请转到WordPress管理员中的“设置”>“讨论”,然后取消选中以下设置。
这将仅在新帖子上禁用Pingback,但旧帖子上的Pingbacks将保持启用状态。 要在较旧的帖子上禁用Pingback,请按照下列步骤操作:
转到帖子>所有帖子
批量选择所有帖子
在批量操作下拉列表中,选择“编辑”,然后选择“应用”
在Pings下拉列表中,选择“不允许”
单击更新
阻止访问XMLRPC.PHP
我们上面使用的方法禁用了XML-RPC,但仍然可以访问xmlrpc.php文件。 最好禁用对文件的访问以防止出现黑客攻击。
<Files xmlrpc.php> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </Files>
将以上代码添加到.htaccess文件以禁用对xmlrpc.php的访问。
第二十六步:删除RSD链接
RSD是一种发现服务,可帮助在WordPress博客上发现Pingback和XML-RPC。 如果您禁用了XML-RPC和Pingback,那么您也可以安全地禁用RSD。
remove_action( 'wp_head', 'rsd_link' ) ;
将上面的代码添加到主题的functions.php文件中
第二十七步:删除jQuery Migrate
jQuery Migrate是您网站每个页面上的Javascript文件(jquery-migrate.js和jquery-migrate.min.js),为使用旧版jQuery的主题提供支持。
如果您的网站有10,000个访问者,则服务器必须为jQuery Migrate文件提供10,000次服务。 这不仅会浪费带宽,还会增加您的加载时间。 如果您使用最新的主题,则可以安全地禁用jQuery Migrate。
要禁用jQuery Migrate,您可以安装Remove jQuery Migrate Plugin。 该插件非常小,安装它不会给您的服务器带来任何负担。
第二十八步:隐藏WordPress版本
默认情况下,WordPress在您网站的每个页面上都包含一个名称标签,用于显示当前的WordPress版本。
删除额外的代码行将减少页面加载几个字节。 您可能在想是否值得保存几个字节? 但请记住,当您每天为数千名访问者提供服务时,这几个字节会累加起来。
不仅如此,显示WordPress版本是一种糟糕的安全措施。 如果在特定的WordPress版本中发现安全漏洞,此元名称标签将帮助黑客识别他们可以侵入的网站,包括您的网站。
// remove version from head remove_action('wp_head', 'wp_generator'); // remove version from rss add_filter('the_generator', '__return_empty_string'); // remove version from scripts and styles function shapeSpace_remove_version_scripts_styles ($src) { if (strpos($src, 'ver=')) { $src = remove_query_arg('ver', $src); } return $src; } add_filter('style_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999); add_filter('script_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999); // remove version from head remove_action('wp_head', 'wp_generator'); // remove version from rss add_filter('the_generator', '__return_empty_string'); // remove version from scripts and styles function shapeSpace_remove_version_scripts_styles($src) { if (strpos($src, 'ver=')) { $src = remove_query_arg('ver', $src); } return $src; } add_filter('style_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999); add_filter('script_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999);
将上面的代码添加到主题的functions.php文件中
第二十九步:删除wlwmanifest链接
wlwmanifest标记是另一个元标记,显示在每个WordPress网站上。
该标签由Windows Live Writer使用,这是一个几乎过时的应用程序,用于直接发布到WordPress。 您可以删除此代码以略微缩短加载时间。
remove_action(‘wp_head’, ‘wlwmanifest_link’);
将上面的代码添加到主题的functions.php文件中
第三十步:删除RSD链接标记
在优化步骤26中,我们禁用了RSD服务,但其元标记仍显示在您网站的每个页面上。
由于RSD服务已禁用,您可以安全地从网站标题中删除此标记。
<?php remove_action(‘wp_head’, ‘rsd_link’); ?>
将上面的代码添加到主题的functions.php文件中
第三十一步:删除短链接标记
短链接标记也出现在您网站的每个页面上,其中包含指向带有pageID的帖子的链接。
如果您仍然使用简短且精确的URL,则此标记是不必要的,应该删除。
add_filter(’after_setup_theme’,’remove_redundant_shortlink’);
function remove_redundant_shortlink(){
//删除HTML元标记
// <link rel =’shortlink’rel =“noopener”href =’http://example.com/?p = 25’/>
remove_action(’wp_head’,’wp_shortlink_wp_head’,10);
//删除HTTP标头
//链接:<https://example.com/?p=25>;相对= shortlink
remove_action(’template_redirect’,’wp_shortlink_header’,11);
}
将上面的代码添加到主题的functions.php中以删除短链接标记。
第三十二步:禁用RSS源
RSS或Rich Site Summary是一种以机器可读格式共享博客内容的方式。 它主要由聚合器应用程序(如Feedly)用于收集和显示来自许多网站的内容。
如果您没有任何用户使用您的RSS源来使用您的内容,那么您可以完全禁用RSS功能。
function itsme_disable_feed() {
wp_die( __( ‘No feed available, please visit the <a rel=”noopener” href=”‘. esc_url( home_url( ‘/’ ) ) .'”>homepage</a>!’ ) );
}
add_action(‘do_feed’, ‘itsme_disable_feed’, 1);
add_action(‘do_feed_rdf’, ‘itsme_disable_feed’, 1);
add_action(‘do_feed_rss’, ‘itsme_disable_feed’, 1);
add_action(‘do_feed_rss2’, ‘itsme_disable_feed’, 1);
add_action(‘do_feed_atom’, ‘itsme_disable_feed’, 1);
add_action(‘do_feed_rss2_comments’, ‘itsme_disable_feed’, 1);
add_action(‘do_feed_atom_comments’, ‘itsme_disable_feed’, 1);
将上面的代码添加到主题的functions.php中以禁用RSS源。
WordPress还在页面标题中嵌入了RSS源的链接。 如果您禁用了RSS源,那么您还应该使用以下代码禁用它。
remove_action(’wp_head’,’feed_links_extra’,3);
remove_action(’wp_head’,’feed_links’,2);
将上面的代码放在主题的functions.php中,以禁止RSS链接显示在head部分中。
第三十三步:禁用自我Pingbacks
当您链接到网站上的某个帖子时,会创建自我Pingback。 它们没有提供任何价值,应予以禁用。
function no_self_ping(&$ links){
$ home = get_option(’home’);
foreach($ links as $ l => $ link)
if(0 === strpos($ link,$ home))
unset($links[$l]);
}
add_action(’pre_ping’,’no_self_ping’);
将上面的代码添加到主题的functions.php中以禁用自我Pingbacks。
第三十四步:删除REST API链接
WordPress REST API使WordPress能够与其他应用程序通信,并允许开发人员创建创造性的解决方案。 但是,大多数网站不使用此功能,可以禁用它。
您网站上的每个页面都会在标题中包含一个应该禁用的链接。
<link rel =’https://api.w.org/’rel =“noopener”href =’https://domain.com/wp-json/’/>
使用以下代码来解决这个问题。
add_action(’after_setup_theme’,function(){
remove_action(’wp_head’,’rest_output_link_wp_head’,10);
});
将上面的代码添加到主题的functions.php文件中以删除REST API链接。
第三十五步:禁用Dashicons
许多WordPress主题现在与基于图标的字体捆绑在一起。 其中最常见的是Dashicons Icon Library。
dashicons.min.css是包含图标样式的文件,大小约为30kb。 当您将其乘以访问者数量时,您可以了解此单个文件导致的带宽和服务器负载量。
如果您不使用Dashicons,那么您应该删除它。 但是,您无法从WordPress安装中删除该文件。 如果您的主题以需要Dashicons的方式编码,那么它可能会破坏您网站的布局。
要避免该问题,请使用以下代码。
// remove dashicons
function wpdocs_dequeue_dashicon() {
if (current_user_can( ‘update_core’ )) {
return;
}
wp_deregister_style(‘dashicons’);
}
add_action( ‘wp_enqueue_scripts’, ‘wpdocs_dequeue_dashicon’ );
将上面的代码添加到主题的functions.php文件中以禁用Dashicons
第三十六步:停用Google地图
许多主题和插件都将Google Maps API与它们捆绑在一起,加载Google Map需要耗费不少时间,这可能会破坏您的性能优化工作。 虽然Google Maps API是在异步中加载的,但它确实会大幅增加页面的总加载时间。
/*
* Remove Google Maps API Call
*/
function disable_google_map_api($load_google_map_api) {
$load_google_map_api = false;
return $load_google_map_api;
}
$plugins = get_option(‘active_plugins’);
$required_plugin = ‘auto-location-pro/auto-location.php’;
if ( in_array( $required_plugin , $plugins ) ) {
add_filter(‘avf_load_google_map_api’, ‘disable_google_map_api’, 10, 1);
}
要在您的网站上停用Google地图,请将以上代码添加到主题的functions.php文件中。
或者,您可以使用以下代码。
add_filter(’avf_load_google_map_api’,’__ return_false’);
显然,这将禁用整个网站上的Google地图,如果您有包含嵌入地图的网页,它们也会中断。
第三十七步:禁用Contact Form 7 的 JS / CSS
Contact Form 7是WordPress最流行的联系表格插件之一。 如果您使用Contact Form 7,那么您应该知道他们的CSS和JS文件会加载到您网站的每个页面,无论该页面是否包含表格。 这是不必要的资源浪费。
要在每次加载页面时禁用加载文件,请使用此代码。
add_filter(’wpcf7_load_js’,’__ return_false’);
add_filter(’wpcf7_load_css’,’__ return_false’);
将上面的代码添加到主题的functions.php文件中。
第三十八步:禁用Heartbeat
WordPress使用Heartbeat API来建立和维护浏览器与服务器之间的连接。当WordPress自动在后台保存您的帖子时,您已经体验过这一点。
从表面上看,Heartbeat API是一个有用的功能。但是,从性能的角度来看,这并不是一个很好的权衡,因为WordPress每15秒向服务器发出一次AJAX调用,然后导致一些代码在服务器上执行。如您所知,这不是CPU资源的明智使用。
您可以禁用Heartbeat API以降低CPU使用率和释放资源。
add_action(’init’,’stop_heartbeat’,1);
function stop_heartbeat(){
wp_deregister_script( ‘心跳’);
}
将上述代码粘贴到主题的functions.php文件中以禁用Heartbeat API。
禁用API之前的警告。 Heartbeat API还用于一些基本功能,例如在管理员编辑时锁定帖子,禁用API也会禁用该功能。
如果您的网站上有多位作者或在禁用Heartbeat后遇到问题,请删除您添加的代码并使用Heartbeat Control Plugin来管理API,而不是完全禁用它。
以下网站优化选项只适用于安装了Woocomme插件的站点
第三十九步:禁用WooCommerce小部件
WooCommerce默认预先加载了许多小部件。 大多数主题都有自己的功能来替换这些小部件,并且保持它们的启用会增加加载时间,同时不提供任何价值。 您应该禁用默认小部件以改善网站加载时间。
add_action( ‘widgets_init’, ‘remove_woo_widgets’ );
function remove_woo_widgets() {
unregister_widget( ‘WC_Widget_Recent_Products’ );
unregister_widget( ‘WC_Widget_Featured_Products’ );
unregister_widget( ‘WC_Widget_Product_Categories’ );
unregister_widget( ‘WC_Widget_Product_Tag_Cloud’ );
unregister_widget( ‘WC_Widget_Cart’ );
unregister_widget( ‘WC_Widget_Layered_Nav’ );
unregister_widget( ‘WC_Widget_Layered_Nav_Filters’ );
unregister_widget( ‘WC_Widget_Price_Filter’ );
unregister_widget( ‘WC_Widget_Product_Search’ );
unregister_widget( ‘WC_Widget_Top_Rated_Products’ );
unregister_widget( ‘WC_Widget_Recent_Reviews’ );
unregister_widget( ‘WC_Widget_Recently_Viewed’ );
unregister_widget( ‘WC_Widget_Best_Sellers’ );
unregister_widget( ‘WC_Widget_Onsale’ );
unregister_widget( ‘WC_Widget_Random_Products’ );
}
在主题的functions.php文件中使用此代码可禁用默认的WooCommerce Widgets。
第四十步:删除WooCommerce Meta Boxes
当您安装WooCommerce时,它会在您网站的后端添加许多Meta Boxes元框。 这些Meta Boxes元框用途很少,您可以禁用它们以改善后端加载时间。
add_action(‘edit_form_after_title’, ‘my_custom_post_edit_form’, 100);
/**
* remove all meta boxes, and display the form
*/
function my_custom_post_edit_form($post) {
global $wp_meta_boxes;
// remove all meta boxes
$wp_meta_boxes = array(‘my_custom_post_type’ => array(
‘advanced’ => array(),
‘side’ => array(),
‘normal’ => array(),
));
// show my admin form
require dirname(__FILE__) . ‘/views/my-custom-post-edit-form.php’;
}
将上面的代码添加到主题的functions.php中以禁用元框。
第四十一步:在本地避免使用Google字体和服务器字体
Google字体是一款令人惊叹的产品,可让您轻松访问数百种字体。 唯一的问题是它会增加您网站的加载时间。
谷歌字体本身非常快。 但是,当您的网站从Google获取字体时,您的服务器必须执行DNS查找,下载字体,然后再渲染它。
如果您将该过程与简单地从您的网站加载字体进行比较,很明显这种方法更快。
这就是为什么建议采用您网站使用的所有字体,并在本地提供它们。
为了使该过程更加高效,您可以为字体实现localStorage缓存。
为此,您可以使用LocalFont服务。 只需将字体拖放到页面上即可开始。
该网站将处理您的字体并为您创建必要的CSS和Javascript。 复制并使用您网站上的代码,在您的字体中使用LocalStorage本地存储。
或者,您可以使用Autoptimize插件中的Extra Settings来实现此目的
第四十二步:使用WOFF2字体而不是WOFF
WOFF(Web开放字体格式)是专门为Web设计的Web格式。它是与元数据和压缩相结合的OTF或TTF字体格式。
WOFF2是下一代WOFF字体。新标准平均比WOFF格式提供多30%的压缩。这将进一步减少字体的大小。
我们建议您在网站上切换到WOFF2字体,以节省带宽并加快网站速度。如果您的服务器在本地提供字体或使用Google字体无关紧要,您可以轻松地将这些字体转换为WOFF格式。让我们演示如何使用Google Font示例执行此操作。
在Google字体上找到您喜欢的字体。我们选择了Nanum Gothic
从Google字体下载字体,它将为您提供该字体的TTF版本。
打开Transfonter.org并在那里上传字体。确保选择WOFF格式,然后转换字体。
Transfonter将生成一个包含WOFF2版本字体和CSS文件的zip文件。
将字体上传到子主题的’fonts’目录。如果它不存在,请创建它。
将CSS代码添加到子主题的样式表中
使用您网站上的字体
虽然WOFF2是一种现代的高性能字体格式,但并非所有浏览器都完全支持它。为了解决这个问题,我们建议您也在网站上传WOFF2格式的WOFF格式。我们使用的“@ font-face”会自动指示浏览器使用支持的最新格式。
第四十三步:优化Font Awesome图标
Font Awesome是另一个广泛使用的图标库。 使用Font Awesome时,会在服务器上创建一个必须重复加载的CSS文件。
为了加快Font Awesome的加载速度,您可以使用KeyCDN专用于Font Awesome的免费CDN。
以下是如何设置它。
编辑主题的header.php文件。
https://opensource.keycdn.com/fontawesome/4.6.1/font-awesome.min.css
将上述代码粘贴在<head>标记之间。
使用<i>标记在您的网站上使用Font Awesome图标。 这是一个例子。
<i class =“fa fa-database fa-la”> </ i>
第四十四步:连接CSS和Javascript
当您的网站在浏览器中加载时,Javascript文件和CSS将单独下载。 您可以通过将两个文件合并为一个文件来优化此过程。 该过程可能会增加需要下载的文件大小,但是权衡它是值得的,因为它可以使服务器免于发出另一个HTTP请求。
优化此过程的另一种方法是并行下载这两个文件,这样可以减少完成该过程所需的总时间。
哪种方法在您的网站上最有效,取决于很多因素,如果不对其进行测试,就无法确定哪种方法效果最好。 我们建议您尝试在您的网站上使用每种方法,并选择产生更好结果的方法。
要自动化组合CSS和Javascript文件,我们建议您使用以下插件。
Autoptimize