WordPress 博客网站优化 - 提高访问速度等

在使用群晖nas 的时候,发现群晖nas有提供 wordpress 博客系统,使用起来也很方便,但是因为群晖的硬件配置实在太低,加上的我入门级4盘位DS423+,性能更是低的可怜,只有2G的内存,所以访问wordpress博客,还是感觉速度比很慢,于是我就查找资料,分析原因,看还有没有优化的可能,于是我就找到了wordpress 官方推荐的文章,翻译如下:

目录

性能因素

托管服务

共享主机

虚拟主机和专用服务器

服务器的数量

硬件性能

地理上的距离

服务器负载

扫描二维码关注公众号,回复: 15348455 查看本文章

软件版本和性能

WordPress配置

图形的大小

性能测试工具

如何提高WordPress的性能

优化你的WordPress网站

尽量减少插件

优化内容

升级硬件

优化软件

缓存

缓存插件

服务器端高速缓存

浏览器缓存

持久对象缓存

进一步阅读

压缩

数据库调整

清洁您的数据库

添加服务器

自动加载选项

其他资源


 无论你是运行一个高流量的WordPress安装,还是在一个低成本的共享主机上运行一个小博客,你都应该优化WordPress和你的服务器,以尽可能有效地运行。这篇文章提供了一个关于WordPress优化的广泛概述和具体的推荐方法。然而,它并不是对每个方面的详细技术解释。

如果你现在需要快速修复,直接去看缓存部分,你会在那里以最小的麻烦获得最大的好处。如果你想立即开始一个更彻底的优化过程,去看《如何提高WordPress的性能》。

在下面的 "什么影响性能 "和 "如何衡量性能 "中,包含了对性能这个主题的广泛概述。这里讨论的许多技术也适用于WordPress多站点(MU)。

性能因素

有几个因素可以影响你的WordPress博客(或网站)的性能。这些因素包括,但不限于,主机环境、WordPress配置、软件版本、图形数量和它们的大小。

这些性能下降的因素中的大部分都在本文中得到解决。

托管服务

你可用的优化技术将取决于你的主机设置。

共享主机

这是最常见的托管类型。你的网站将和其他许多网站一起被托管在一个服务器上。托管公司为你管理网络服务器,所以你对服务器设置等的控制非常少。

与这种类型的主机最相关的领域是: 缓存、WordPress性能和内容卸载。

虚拟主机和专用服务器

在这种托管情况下,你可以控制你自己的服务器。该服务器可能是一个专用的硬件或许多虚拟服务器之一,共享相同的物理硬件。

最关键的是,你可以控制服务器的设置。除了上述领域(缓存和WordPress性能),这里感兴趣的关键领域是: 服务器优化和内容卸载。

服务器的数量

当处理非常高的流量情况时,可能有必要采用多个服务器。如果你到了这个级别,你应该已经采用了上面列出的所有适用技术。

WordPress的数据库可以很容易地移到不同的服务器上,只需要对配置文件做一个小的改动。同样,图像和其他静态文件也可以移到其他服务器上(见内容卸载)。

亚马逊的弹性负载平衡器可以帮助将流量分散到多个网络服务器上,但需要更高层次的专业知识。如果你采用了多个数据库服务器,HyperDB类提供了一个标准WPDB类的替代品,并且可以处理复制和分区结构的多个数据库服务器。

硬件性能

你的硬件能力将对你的网站性能产生巨大影响。处理器的数量,处理器的速度,可用内存和磁盘空间的数量以及磁盘存储介质都是重要的因素。托管供应商通常以更高的价格提供更高的性能。

地理上的距离

你的服务器和你的网站访问者之间的距离也对性能有影响。内容交付网络或CDN可以在不同的地理区域镜像静态文件(如图像),以便你的所有网站访问者都有最佳性能。

服务器负载

你的服务器上的流量以及它如何配置来处理负载也会产生巨大的影响。例如,如果你不使用缓存解决方案,当额外的页面请求进来并堆积起来时,性能将减慢到停止,往往会使你的网络或数据库服务器崩溃。

如果配置得当,大多数主机解决方案可以处理非常高的流量。将流量卸载到其他服务器也可以减少服务器的负载。

滥用流量,如登录暴力攻击、图像热链接(其他网站从高流量页面链接到你的图像文件)或DoS攻击也可以增加服务器负载。识别和阻止这些攻击是非常重要的。

软件版本和性能

确保你使用的是最新的软件也很重要,因为软件的升级经常会修复错误并提高性能。确保你正在运行最新版本的Linux(或Windows)、Apache、MySQL/MariaDB和PHP是非常重要的。

WordPress配置

你的主题将对你网站的性能产生巨大影响。一个快速的、轻量级的主题将比一个沉重的、充满图形的、低效率的主题执行得更有效。

插件的数量和它们的性能也会对你的网站的性能产生巨大的影响。停用和删除不必要的插件是提高性能的一个非常重要的方法。

跟上WordPress的升级也很重要。

图形的大小

确保你的文章中的图片为网络优化,可以节省时间、带宽并提高你的搜索引擎排名。

性能测试工具

Webpagetest是一个从不同地点、浏览器和连接速度测试真实网站性能的工具。
谷歌PageSpeed Insights是测量你的WordPress网站性能的方法,并收到关于如何进行改进的清晰、具体的反馈。
内置的浏览器开发工具(如Firefox或Chrome)都有性能测量工具。

如何提高WordPress的性能

优化你的WordPress网站

尽量减少插件

提高WordPress性能的第一个也是最简单的方法是看一下插件。停用和删除任何不必要的插件。尝试有选择地禁用插件,以衡量服务器性能。

你的某个插件是否严重影响了你的网站的性能?看看插件的文档或在适当的插件支持论坛上寻求支持。

优化内容

  • 图像文件
    • 是否有任何不必要的图像?(例如,你可以用文字取代一些图像吗?)
    • 确保所有的图像文件都经过优化。为每张图片选择正确的格式(JPG/PNG/GIF)和压缩。
       
  • 总文件数/大小
    • 你能减少在你的网站上显示普通页面所需的文件数量吗?
    • 当仍然使用HTTP1时,建议将多个文件合并为一个优化文件。
    • 将CSS和JavaScript文件最小化。

        你也可以卸载内容来优化你的主题。

升级硬件

在你的主机供应商处支付更多的钱以获得更高的服务水平可能是非常有效的。增加内存(RAM)或切换到具有固态硬盘(SSD)的主机,例如Digital Ocean,可以带来很大的变化。增加处理器数量和处理器速度也会有帮助。在可能的情况下,尽量将具有不同功能的服务--如HTTP和MySQL--分离在多个服务器或VPS-es上。

优化软件

确保你正在运行最新的操作系统版本,如Linux、Windows Server和最新的网络服务器,如Apache或IIS,数据库,如MySQL服务器和PHP。

也许你无法执行这些任务,并跟进下面的提示,。只需要求你的托管服务提供商为你做这些事情。一个好的托管服务商会升级或将你的账户转移到一个升级的服务器,以配合建议。如果需要,你可以切换到一个管理的WordPress托管解决方案。

DNS: 不要在你的WordPress服务器上运行一个DNS。使用DNS的商业服务,如亚马逊的Route 53或你的域名注册商的免费产品。使用像亚马逊这样的服务也可以使维护或紧急情况下的备份服务器之间的切换更加容易。它还提供了一定程度的容错。如果你把你的DNS托管在外部服务器上,这将减少你的主网络服务器的负载。这是一个简单的变化,但它将卸载一些流量和cpu负载。

网络服务器: 你的网络服务器可以被配置以提高性能。有一系列的技术,从网络服务器缓存到设置缓存头,以减少每个访问者的负载。搜索你的特定网络服务器的优化(例如,搜索 "apache优化 "以获得更多信息)。一些网站服务器有更高的速度版本,你可以付费购买,如Apache Litespeed。也有一些方法可以根据你的特定主机和网站配置来调整Apache以获得更高的性能,例如Memcache。

PHP: 有各种PHP加速器,可以极大地提高你的PHP文件的性能。这将适用于所有的PHP文件,而不仅仅是你的WordPress安装。搜索PHP优化以获得更多信息,例如APC或OPcache。下面介绍的W3 Total Cache插件,提供了对Memcache、APC和其他Opcode缓存的集成支持。

MySQL/MariaDB:MySQL或MariaDB优化本身就是一门黑色艺术。对查询缓存设置做一些简单的修改就可以对WordPress的性能产生巨大的影响,因为WordPress在每次请求中都会重复大量的查询。现在,由于InnoDB是MySQL的默认存储引擎,你必须确保使用它。InnoDB可以被优化和微调,搜索 "mysql优化"、"mysql innodb性能 "或 "innodb优化 "或获取更多信息和例子。搜索 "mysql convert myisam to innodb",了解如何将旧的MyISAM表转换为InnoDB。

Iliya Polihronov在WordCamp San Francisco 2012上介绍了一个关于WordPress如何优化的好例子。Iliya做的事情之一是为WordPress.com做服务器优化。

不要在你的WordPress服务器上运行一个邮件服务器。对于你的联系表,使用像联系表7这样的东西与免费的Mailgun。

缓存

缓存插件

缓存插件(在插件目录中搜索 "cache")可以很容易地安装,它将把你的WordPress文章和页面缓存为静态文件。这些静态文件然后被提供给用户,减少服务器的处理负荷。对于相当静态的页面,这可以提高几百倍的性能。

当与系统级的页面缓存(如Varnish)相结合时,这可能是相当强大的。如果你的文章/网页有很多动态内容,那么配置缓存就会更加复杂。

服务器端高速缓存

网络服务器缓存 "比较复杂,但在流量很大的网站中使用。有各种各样的选择,超出了本文的范围。最简单的解决方案是从服务器本地缓存开始的,而更复杂和涉及的系统可能会在WordPress应用程序实际运行的Web服务器的 "前面 "使用多个缓存服务器(也被称为反向代理服务器)。在你的服务器上添加一个像Alternative PHP Cache(APC)这样的操作码缓存,将使PHP的性能提高许多倍。

Varnish Cache与W3 Total Cache协同工作,在内存中存储预先建立的页面并快速提供它们,而不需要执行Apache、PHP、WordPress堆栈。

正如里面所描述的,使用Discuz这样的评论插件而不是原生的WordPress评论可以帮助Varnish,因为它不需要你的读者登录到WordPress,并增加Varnish可以从缓存中提供的页面浏览量。

浏览器缓存

浏览器缓存可以通过减少每个页面的请求数量来帮助减少服务器的负载。例如,通过在不改变的文件上设置正确的文件头(静态文件如图像、CSS、JavaScript等),浏览器就会在用户的电脑上缓存这些文件。这种技术允许浏览器检查文件是否有变化,而不是简单地请求它们。其结果是你的网络服务器可以回答更多的304响应,确认一个文件没有变化,而不是200响应,因为后者需要发送文件。

查看HTTP Cache-Control(特别是max-age)和Expires头文件,以及Entity Tags,了解更多信息。

W3 Total Cache集成了对浏览器缓存和ETags的支持。

持久对象缓存

持久对象缓存通过节省从你的网络服务器到数据库的行程来帮助加快页面加载时间。例如,你的网站的选项数据需要在每个页面上都能看到。如果没有持久性对象缓存,你的网络服务器必须从数据库中读取这些选项来处理每个页面视图。这些对数据库的额外访问会减慢你的网络服务器的响应时间(TTFB),并且在流量高峰期会迅速压垮你的数据库服务器。

为了让你的网站使用持久性对象缓存,你的主机提供商必须为你提供一种特殊类型的服务器,即缓存服务器。流行的缓冲服务器是RedisMemcached。请你的主机提供商帮助你安装和配置持久性对象缓存,他们会推荐合适的插件,例如:

Memcached对象缓存- 为WordPress对象缓存提供一个持久的后端。需要一个memcached服务器和PECL memcached扩展。
Redis对象缓存- 为WordPress提供一个一致的Redis对象缓存后端,可以与各种Redis客户端一起工作。需要一个Redis服务器。

进一步阅读

使用Amazon S3 / Cloudfront来卸载图片: Amazon S3和CloudFront与WordPress、
减少你的网站的带宽使用

压缩

有许多方法可以压缩您服务器上的文件和数据,从而使您的网页更快地传送到读者的浏览器上。上面描述的W3 Total Cache集成了对大多数常见压缩方法的支持。

W3 Total Cache支持Minify和Tidy来压缩和组合你的样式表和javascript文件。它还支持输出压缩,如zlib,请参见输出压缩

压缩您的媒体文件--即图片,也是很重要的。WP Smushit插件可以帮助实现这一点。

数据库调整

清洁您的数据库

WP优化插件可以帮助您减少您数据库中的额外杂乱。

你也可以指示WordPress尽量减少它对你的文章和网页的修订次数。

添加服务器

虽然这需要额外的专业知识,但增加服务器可以是提高性能的一个强大的方法。我强烈推荐阅读《在AWS中架构一个高度可扩展的WordPress网站》 使用亚马逊的关系数据存储(RDS)构建一个更昂贵、高度可扩展的AWS实施的指南。

你可以使用亚马逊的弹性负载平衡器将流量分散到多个网络服务器上,你可以使用HyperDB或亚马逊的RDS来运行更多的可扩展或多个数据库服务器。

自动加载选项

自动加载选项是插件和主题的配置设置,在WordPress的每个页面加载时都会自动加载。每个插件和主题都定义了它们自己的选项,以及哪些选项是自动加载的。有太多的自动加载选项会拖慢你的网站。一般来说,你应该尽量把你网站的自动加载选项保持在800kb以下。

默认情况下,自动加载的选项被保存在wp_options表中。自动加载功能可以在这个表中逐个选项关闭。关于查看和改变自动加载选项的分步说明,请向你的主机提供商查询。

如果你使用持久性对象缓存,选项(无论是否自动加载)的加载速度更快,效率更高。

其他资源

First published

October 27, 2018

Last updated

June 13, 2023

猜你喜欢

转载自blog.csdn.net/sensor_WU/article/details/131222368