WordPress外贸网站优化的碎碎念2023

date
Sep 7, 2023
slug
wordpress-website-access-speed-optimization-2023
status
Published
tags
Website
Wordpress
summary
随着这些年来WordPress建站程序的不断更新和升级,目前已经推出了6.3版本。在过去的五年里,互联网经历了从Web时代向移动互联网时代的转变,因此WordPress在中国大陆的市场份额大幅下降,使用和分享该网站程序的人数也减少了许多。然而,WordPress在每一次更新中的功能日趋完善,也变得越来越臃肿。
type
Post
category
notion image

前言

随着这些年来WordPress建站程序的不断更新和升级,目前已经推出了6.3版本。在过去的五年里,互联网经历了从Web时代向移动互联网时代的转变,因此WordPress在中国大陆的市场份额大幅下降,使用和分享该网站程序的人数也减少了许多。然而,WordPress在每一次更新中的功能日趋完善,也变得越来越臃肿。
在过去的一个月里,我亲自从零开始,使用WordPress建立了一家外贸网站,并通过相对简单的操作将访问速度优化到了令人满意的程度。现在我回过头来复盘并整理了这篇文章,供大家参考。

一、优化服务器选择对网站搭建起着重要作用(背景)

1、基于VPS主机自主搭建

到了2023年的今天,当谈到网站搭建时,选择合适的云主机VPS(如阿里云、腾讯云、AWS等)成为了首要任务,我也不例外。考虑到外贸网站的目标客户主要位于东南亚地区,因此我毫不犹豫地选择了新加坡的数据中心。在选择阶段,我对易用性和稳定性进行了权衡,并最终决定使用AWS的轻量云(AWS Lightsail)。我配置了两台机器,每台机器的配置为1G2C*2,操作系统选用了Ubuntu。其中一台服务器(服务器A)使用Oneinstack部署了Nginx、PHP、SSL和phpMyAdmin,另一台服务器(服务器B)部署了MySQL。通过内网连接,确保了A和B之间的稳定性和安全性。服务器A的防火墙只开放了SSH、HTTP和HTTPS的端口,服务器B的防火墙只开放了SSH和MySQL的端口。通过熟练的命令行配置,我成功安装了WordPress程序,并绑定了域名,完成了网站的搭建。

2、基于半托管类型的虚拟主机搭建

在云主机VPS大行其道之前,虚拟主机是一种流行的操作方式。通过在一台配置良好的宿主机上安装Nginx或Apache等环境,大家可以共享服务器资源。然而,近年来技术不断更新和需求的变化使得当前的虚拟主机产品已经非常成熟。除了满足基本的共享需求外,它们还提供了许多高附加值的服务。

3、现在我用什么?

在着手搭建网站的第一时间,轻量云(AWS Lightsail),一台运行nginx和php,另外一台运行mysql。两台服务器的运行和搭建本身没有问题,使用也非常方便。但在搭建网站和优化网站的过程中,我碰到了轻量云(AWS Lightsail)的一些致命缺陷。轻量云(AWS Lightsail)的CPU是积分制,而运行php托管wordpress网站的时候,CPU的占用会有峰值暴涨的情况,但是轻量云(AWS Lightsail)的积分制大大限制了CPU的峰值占用。这个限制反映到网站访问的体验是:打开网站,响应慢。
于是,我考虑再三后,将网站迁移到了半托管类型的虚拟主机。之所以迁移到半托管类型的虚拟主机而不是升级服务器的配置,考量原因有二。
  1. 升级到CPU突发占用更高的服务器,月均开销会翻倍
  1. 在自己部署服务时,已经厌倦了。我不想再做运维的事情,专业的事情交给专业的人
经过服务器性能、综合价格、管理面板、增值服务的综合考量,我最终选择了:Hostginger 用以托管我的站点。之后有时间我再单独写一篇文章分享我的横向对比过程。Hostinger打动我的特点有这么几个
  1. 管理后台是自行开发的hPanel,不再是通用的DirectAdmin或者是cPanel,相比而言更加简洁,功能更纯碎
  1. 包含域名邮箱(Domain email)服务,供应商是Titian email
  1. 包含WebBuilder建站功能,非常方便!
  1. 可以建立上百个子站,而且子站的开通逻辑是一个域名(domain)对应是个子目录

二、服务器CDN(内容分发网络)的使用

1、启用CDN:Cloudflare

不论是VPS主机或者是半托管类型的虚拟主机,你的网站最终都会有一个ipv4或是ipv6的地址。举个例子,你有一个来自俄罗斯圣彼得堡的客户,你的网站托管在香港的机房。用户访问到你网站的路径是:
💡
圣彼得堡→俄罗斯国家网络出口→(海底光缆的中转地区)→香港
你可以确定的是,圣彼得堡→俄罗斯国家网络出口这一段的速度不会有太大的问题。但国际间的传输有可能会有意想不到的问题。那我们怎么弱化这个不确定性呢?答案是:选用CDN服务,关于CDN是什么,请阅读Cloudflare的这篇文章:
简单来说,CDN提供了位于全球各地的N多服务器作为跳板供用户访问。按照上述例子,俄罗斯圣彼得堡的客户访问路径则变成了:
💡
圣彼得堡→圣彼得堡CloudflareCDN节点(CDN节点→俄罗斯国家网络出口→(海底光缆的中转地区)→香港)
看到区别了?客户已经不需要自己去香港的服务器读取内容了。由此一来,CDN便起到了快的作用和隐藏你服务器所在地的作用。

2、优化CDN的功能

Cloudflare提供的功能非常强大,仅免费版的套餐就够我们好好研究一番了。关于CDN的特性和优势请阅读这篇文章:
  • 启用SSL/TLS :将Speed-Optimization的所有可选项启用
notion image
  • 启用速度优化设置
notion image
  • 启用页面CSS/JS/HTML压缩
notion image
  • 启用HTTP协议的支持:将Protocol Optimization标签页的所有可选项全部开启
notion image
三、Wordpress程序的优化

1、减少插件的使用

Wordpress网站程序本就是一个功能强大,且繁杂的网站系统。程序的设计满足了多种多样的网站建设需求的需要,但是也造就了程序的复杂和累赘。借用奥卡姆剃刀的”简单有效原理“:如无必要,勿增实体。在Wordpress里面就是”如无必要,勿装插件。
每一个Wordpress的插件都是一个迷你的系统闭环,一个简单的功能依赖一个插件是可以完美时间需求的,但是也隐性的增加了一些不必要的资源的加载或者依赖。因此,能少装插件就少装,可以通过基本的代码功能实现的,就放到主题的function.php去实现。
notion image
例如,我的某个站点安装了以上插件,分别是:
  1. Contact Form 7 提供表单填写的功能,必要
  1. LiteSpeed Cache 缓存插件,必要
  1. Polylang 多语言插件,必要
  1. Slider Revolution 幻灯片插件,严重影响网站的加载速度,我已经不再使用了
  1. WP Mail SMTP 使用SMTP发信的SMTP插件,可以使用代码最小化的实现,可以放弃使用

2、停用不必要的Wordpress功能.

如上文所说到的,Wordpress提供了太多的冗杂的功能,我们用不到的,可以通过代码在function.php中关闭它们,并且可以一些wordpress的指纹信息,降低安全风险。下面是我使用的一个合计范本,您也可以跟我一样使用。

3、减少页面布局中的动态效果

根据GTmetrix和Pagespeed网站测试的数据指标反馈,网站使用的动态效果会大幅影响网站的加载速度以及客户访问的效果。因此,从优化的角度上来说,网站不适合采用JS功能实现的图片轮播、或者是幻灯片动态效果。同时,为了实现动态效果需要加载额外的JS库文件,严重影响网站加载速度。因此,请谨慎使用动态效果的使用,比如:减少Slider Revolution插件的使用。

4、动态优化引用图片资源的格式,采用Webp或AVIF格式

Webp和AVIF格式是两种高压缩率,且效果保留率比较高的两种图片格式。相对于传统的JPG和PNG而言,在70%视觉画质保留的情况下,体积可以压缩到原有的20%左右。资源的体积越小,客户访问的网站时的加载速度则越快。以下是几种实现Webp和AVIF的方法
  • 采用软件讲图片压缩成Webp或者AVIF后再上传网站,例如:
  • 使用静态资源存储和分发的OSS服务或是CDN实现,例如:
  • 更高阶的用法是部署自己的静态资源CDN并且自动根据客户终端的情况自动适配压缩文件格式,之后再单独写一篇文章更新

© loveisbug 2015 - 2024 Friendly 🔗 Links

💜 nobelium