推56论坛

 找回密码
 立即注册(限中文)

QQ登录

只需一步,快速开始

    查看: 453|回复: 0

    [WordPress教程] WordPress网站速度优化:WP加速图文教程(三)

    [复制链接]
    发表于 2019-9-20 11:45:19 | 显示全部楼层 |阅读模式
    七、增加 WordPress 内存使用上限并限制 WordPress 修订版本数量每次在 WordPress 里无论是创建 Page(页面)或 Post(文章),还是编辑,又或者是 Save Draft(保存草稿)或 Publish(发布)或 Update(更新),WordPress 都会自动保存一份修订版本。如果文章编辑的次数很多的话,在数据库里面会存在很多个没用的修订版本,浪费数据库的空间。

    我们可以限定 WordPress 修订版本的数量,只不过在后台设置里没有这项设置。
    另外,WordPress 如果安装了功能较多的主题或者较多的插件,会造成内存资源使用增大。我们需要给 WordPress 分配更多的内存数值上线。SiteGround 最大内存值是 768M,注意 WordPress 内存上限没必要设置得太高,因为要留内存给数据库和 PHP 以及其他应用。
    我们可以在网站文件根目录下的 wp-config.php 里,添加 2 行代码:
    defile('WP_MEMORY_LMIT', '256M');
    define('WP_POST_REVISIONS', 3);
    代码的作用是给予 WordPress 最高 256M 内存,只保留最近的3个修订版本。
    从 SiteGround 后台的 Cpanel 面板里的 File Manager 可以找到网站根目录,用 code edit 方式打开编辑,添加上面这行代码即可。也可以FTP工具下载到本地用代码编辑器编辑修改再上传。
    位置:粘贴在 define(‘DB_COLLATE’, ”);  这一行下面,保存即可。

    八、减少外部资源 HTTP 请求数量我们使用在线网站测速工具测试,经常会发现自己的网站有很多 HTTP 请求。主题功能越多,插件安装得越多,不知不觉调用的 CSS 文件和 JS 文件也越来越多。

    过多的WordPress插件会降低网站速度。 有的插件可能仅用于某一个特定页面。但是,由于插件开发者欠考虑或代码质量欠佳,这些插件通常会出现在每个页面上,即使它没有被使用。
    很多 WordPress 网站都加载了很多其实无需加载的文件,这会导致额外的和不必要的请求,这些文件(主要是CSS和JavaScript文件)以及内嵌的代码,都会累加到页面的总体积上,从而减慢网站速度。
    页面加载缓慢或失败,或者 JavaScript 出现错误的代码,或者与其它插件产生冲突,这些都会造成 Google 搜索排名不佳。
    Asset CleanUp 插件的使用
    我们可以安装一个名为 Asset CleanUp 的插件,Asset CleanUp 是一个优化前端性能的插件,让你可以选择在网页上禁用不需要在网站上加载的文件,并将剩余的加载的文件组合成更少的文件,这最终将大大减少HTTP请求的数量,优化网页加载速度。

    假设:你有一个页面,其中加载了 30 个文件(CSS 和 JS),总大小为 1.5 MB。 使用 Asset CleanUp,您可以通过不加载页面上无用的其他 18 个文件,将数量减少到 12 个文件。于是,页面的总体积减小到 0.7 MB,这样可以减少下载资源的时间,从而加快页面加载速度。
    如果你不确定是否需要在页面上加载某些 CSS 或 JavaScript 文件,并且担心某些内容可能会破坏网站的功能或布局,那么可以使用“Test Mode”。
    激活此选项后,Asset CleanUp 中设置的所有规则仅对已登录后台的管理员(你)生效,常规访问者看不到测试模式下的页面,看到的还是正常的网站页面。你可以在插件的设置页(Settings)下开启 Test Mode。当你在测试模式下,你可以开启设置页下的使用偏好(Plugin Usage Preferrences),然后启用 Manage in the Front-end(在前台页面管理)。
    这样,每个页面你都可以拖到最下面,查看加载的 CSS 和 JS 文件,选择不加载哪些文件。等一切设置好后,关闭“测试模式”,你所做的更改也将对未登录的网站访客生效可见。
    不过说实话,我觉得这个针对页面精准控制禁止加载哪些文件有点太讲究了。大多数外贸人不是极客,不会做这种精细活儿。所以,我就只介绍一下,不讲具体操作了。
    实际上,我只是体验过特别针对网站首页去前台页面禁止加载某些文件,确实减少了一些 Requests。比如,首页我不需要加载表单插件的 JS。

    实际上,每个 Page 或者 Post 编辑区下方,都会显示出加载了哪些文件资源。你都可以进行单独的设置,对我这样喜欢折腾的人来说,太舒服了!
    当然,我建议你不用学我,这里可以不折腾。因为实际上缓存部分已经有压缩CSS,合并CSS等功能,其实跟着这篇教程做到这里,你的网站已经优化得非常不错了,至少 Pingdom 测测能得 A grade 了!不信你测试看看?
    引起我注意的是,这个插件有几个其他的小功能特别棒,都是 SG Optimizer 插件里没有的功能,正好补全了。比如:
    1)Site-Wide 不加载文件设置
    2)Fonts 字体文件的预加载
    3)Google Fonts 字体的合并处理

    Site-Wide Common Unloads 这里,按照截图中的设置去启用相应功能。禁用 Emojis(没什么鸟用)、禁用网页嵌入(不安全)、禁用新款的古藤堡 Block 编辑器的 CSS 库(反正还是经典编辑器舒服)。
    Local Fonts 这里,需要预加载的字体文件,可以在 Preload Google Font Files 文本区内填入字体的地址。
    如何排查没能顺利加载的字体呢?可以用 F12 开发者工具,刷新网页,选择 Console,注意看哪些字体文件 Fall back,把 URL 记录下来。
    然后根据插件 Exmaples 的提示,跟你本地网站上调用的主题的字体有关,就粘贴到 Local Fonts 的 Preload Local Font Files 里;跟 https://fonts.gstatic.com 有关的字体就填写到 Google Fonts 那里。

    在 Google Fonts 那里,把 Combine Multiple Requests Into Fewer Ones 和 Preconnect? 这两个都开启。

    点击 Update All Settings。然后测试一下,你已经起飞了!
    Pingdom 的 Performance 和 GTMetrix 的 PageSpeed 都是 A!
    Pingdom检测,得分A grade 93,加载速度 1秒以内(原来评分为 C,加载速度 3.4 秒):

    GTMetrix检测,得分双A grade,请求数 33,页面加载时间 1.5S;
    未速度优化之前,得分 B(85%) 和 C(76%),请求数 36,页面加载时间2.1S。

    九、启用CDN加速一般国内网站建站做速度优化,还会做一下动静分离。动静分离是将网站静态资源(HTML,JavaScript,CSS,img 等文件)与后台 PHP 应用分开部署,提高用户访问静态文件或代码的速度,降低对后台应用访问。比如把静态文件全部放在一个二级域名上,如 static.xyz.com 或 img.xyz.com,给静态文件做缓存,并对二级域名开启 CDN 加速。

    这种用单独的二级域名存放静态文件,Yahoo 的 YSlow 则之为 cookie-free domain。
    当然,也有不做动静分离,直接全站 CDN 加速的。对于我们使用虚拟主机的建站者来说,动静分离在虚拟主机上是不太好弄的,其实也不需要动静分离这么多复杂的技术活,直接全站开启 CDN 即可。
    CDN的原理
    前面我们讲到了客户端浏览器的缓存,只是对访问过的资源,提升二次或重复访问的速度。而对于首次访问的加速不起作用,所以从网络层考虑,最常见的手段就是CDN(Content Delivery Network,内容分发网络)加速。CDN 通过骨干网络把一组服务器连接起来,存储客户数据或内容的副本(缓存)。

    而通过将静态资源缓存到离用户很近的相同网络运营商的CDN节点上,不但能提升用户的访问速度,还能节省服务器的带宽消耗,降低负载。
    不同地区的用户会访问到离自己最近的相同网络线路上的CDN节点,当请求达到CDN节点后,节点会判断自己的内容缓存是否有效,如果有效,则立即响应缓存内容给用户,从而加快响应速度。如果CDN节点的缓存失效,它会根据服务配置去源站获取最新的资源抓取到CDN节点上,呈现给访问用户。并且,它会把内容缓存下来,以便响应给后续访问的用户。

    之所以不同地区的用户访问同一个域名却能得到不同 CDN 节点的 IP 地址,这要依赖于 CDN 服务商提供的智能域名解析服务,浏览器发起域名查询时,这种智能 DNS 服务会根据用户 IP 计算并返回离它最近的同网络 CDN 节点 IP,引导浏览器与此节点建立连接以获取资源。
    使用CDN的好处
    使得分布在各个地方的访客都能从离得最近的 CDN 节点服务器上获取网页内容。另外,如果是全站 CDN,那么对于源站,相当于是套了一层防护,可以抵御流量攻击,更安全。
    废话不多说,来说说具体怎么使用 CDN,如何操作和设置吧。我们所用的 SiteGround,登录后台之后,在 Information & Settings 那里,有个 Cloudflare CDN。这是免费的方案。如果要购买付费的方案,要点击 Get Plus 按钮。

    点击后跳转到 Cpanel 下的 Cloudflare CDN 界面,点击 Activate Free 按钮。

    在弹出的窗口里,确认你的邮箱作为 Cloudflare CDN 账户。激活 Free account 后,你邮箱会收到一封提示邮件,告知你,你的域名已经添加到 Cloudflare 里了。
    点击 Manage 按钮,

    在管理设置页面,找到 Speed。开启 CSS 和 HTML 的 Auto Minify,以及 Railgun(这个是加快 Cloudflare 去你的 SiteGround 上的源站资源的)。

    SSL Support 选择 Full (strict),点击 Change 按钮。我就不截图了。很简单的设置,强制所有连接必须为 https。
    OK,CDN免费账户设置完成!
    不过 CDN 免费的服务全球节点有限,如果你要开通付费的 CDN 服务,则需要付费。每个月 20 美金左右,觉得需要的话还是可以开通这个付费 CDN 服务的,付费以后 CDN 线路和节点多很多。
    如果预算足够,建议升级付费的 Cloudflare PLUS
    建站预算不那么紧张的,建议升级付费的 CDN 吧。付费的 Cloudflare CDN 才是真 CDN,节点服务器多了几倍;Cloudflare 免费的 CDN 对于网站全球加速的效果,真的只能说呵呵。
    检查CDN解析是否生效
    我们看一下 CDN 智能解析生效了没有。在本地电脑命令提示符中,输入网址:ping www.xyz.com 返回 www.xyz.com.cdn.cloudflare.net [ CDN 节点 IP ]

    OK,大功告成!
    最后再用 GTMetrix 测一下:


    本版积分规则

    关闭

    推56站长论坛推荐上一条 /1 下一条

    站长QQ
    在线咨询
    咨询热线
    QQ:405327411

    QQ|免责声明|小黑屋|站长论坛 ( 豫ICP备11018337号-5 )

    王宝臣旗下网站 推56论坛(www.tui56.com)站长论坛 SEO论坛 网络营销论坛 新手站长论坛 网络推广论坛 站长社区 站长网

    Powered by Discuz! X3.4 Licensed

    ©2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表