Products
GG网络技术分享 2025-03-18 16:14 0
我们光算科技官网是使用WordPress框架搭建的,有没有发现我们的网站非常快,而你的WordPress网站比较慢呢?那是因为我们的网站经过了优化。
为什么很多人都会觉得 WordPress 很慢?
这里不得不吐槽一下,作为外贸圈独立站建站最通用的建站系统 WordPress 来说,在设计上的确是有点问题的,除了经典的引用大量海外墙外资源,国内访问极慢,甚至打不开的情况;还有就是数据库结构也比较简单,把所有文章数据都丢到一张表;wordpress有一套完善的插件生态系统,让使用wordpress的人实现某些功能确实非常简单,但是相对应的是,搞wordpress开发的人,不一定都有良好的编程代码习惯,总是弄些臃肿不堪的插件出来,作为使用者又没有能力去修改,只知道去添加,关键是wordpress框架是全动态的运行机制,而且每次都要加载全部的后台插件,跑个很简单的页面都要全部遍历一下。这样搞法,显然不是明智的,也难怪大多数 WordPress 网站都有有速度慢的问题。
导致WordPress网站访问速度慢的原因有以下几点:
所以我们要想提高 WordPress 的速度和性能,就要从这些方面入手。
没有人喜欢加载速度缓慢的网站,尤其是Google。
速度是PC端以及移动端谷歌SEO排名的重要因素之一。它影响着用户体验、对流量有直接的影响!
说直白的:如果你的网站打开速度慢,那么排名和流量与你无缘,谢谢
推荐使用谷歌官网推荐的测速工具PageSpeed Insights (谷歌对网站的速度评分也是以该工具的结果为准,直接集成到谷歌官方站长后台)
测试结果大概如下图
优秀的网站,测速分值应该在90分以上,好的网站,测速分值起码也应该在80分以上
请注意:PC端和移动端的分数是分开的。按现在互联网的情况来说,移动端分数更为重要。
下面给大家讲讲我们多年经验总结出来的优化WordPress速度的实战技巧:
1、选择一台好的服务器,并进行服务器调优
2、选择一套速度快的模板主题,或者优化模板主题的js和css
3、去掉不必要的插件
4、图片优化
5、做好缓存
6、挂CDN
好的服务器很重要,首先是结合你的业务区域,选对地区,例如你是做美国市场,就上美国的服务器,配置性能方面,起步2核2G以上即可
【如果不知道去哪里买服务器好,推荐光算旗下的光算云服务器哦,但凡买光算云服务器的外贸客户,我们免费做wordpress服务器调优^_^】
然后服务器软件方案建议采用nginx+php7.4以上(千万不要选择老掉牙的php5.2之类的),同时还要进行以下操作:
这些就不展开细说了,展开讲的话每一个主题都是长篇大论
好的模板主题非常重要。我们做网站最重要的目的不是为了好看,其实是为了流量,有流量才有成交啊,对吧
说白了,就是要SEO做得好。
市面上很多模板其实只是单纯设计好看,模板的作者为了自己省事,往往引入大量的js甚至外部js
这时候你能否选择一套好的模板直接决定了你网站的打开速度基础。
关于什么模板主题快,我建议搭建可以搜索 “速度最快的WordPress主题” 这个关键词,网络上大把推荐了。
我们内部建议和推荐的话是:Neve 3.3.0以下版本(有些主题越升级越卡哦,经过多年实践,3.3.0到头了,再升就呵呵了)
这套模板非常轻量级和简约,js也非常少,框架功能也完全够用,初始模板也简单大气上档次
再配合elementor做单页,妥妥地适合做外贸独立站
当然,如果你不是全新做站,有历史包袱。那么你唯一能做的就是找你们公司的it运维人员进行网站模板js优化,或者干脆换模板或者重新做站了。
wordpress这套程序的框架有个问题,就是他每次启动入口,都会把所有插件都过一遍。这是大家抱怨他卡,性能慢的一个重要原因。
所以,如果你后台安装了很多插件,不管你有没有用,只要你安装并启用了,你网站每次被人访问,你的插件都要被重新加载一遍。
所以,为了速度,请你去掉不必要的插件,尽量精简。
图片优化是必须的!
因为你网页的大小,其实主要取决于你的图片大小
优化图片有2个方向,一是格式,二是质量
格式上,选用先进的图片格式,例如webp
质量上,主要是根据你的实际需要去上传图片或者使用插件优化图片,因为你不可能为了展示一个很小的图就上传一张分辨率几K的,完全没必要,浪费空间,也大大降低了加载速度
图片优化方面的插件我们推荐:Converter for Media
wordpress这套程序跟以前国内一套应用很广泛的cms《dedecms》很不一样,他是本质是纯动态的,原生的wordpress从不生成真正的静态html页面。
就算你用了伪静态使网站url看起来是静态html,但是他本质的运行机制还是全动态的跑php。
wordpress的插件市场也没有生成纯静态页面的好用的插件,大多数只有缓存插件。
基于这样的机制,想优化速度,安装好的缓存插件非常重要。
我们推荐使用:Autoptimize+W3 Total Cache 这2组合拳
W3 Total Cache的低阶应用的话,直接按软件设置就可以了。但是想要更快,更爽的速度体验的话,一定要配合服务器伪静态配置,做到直接的服务器级别重定向到缓存文件。这样可以避开wordpress天然的跑遍全站的php机制,极大幅度提升用户体验。
挂上这两兄弟的组合拳,模板又没什么大问题的话,网站谷歌速度评分基本上60分是没跑的了(不挂的话你试试,最多就20-30分,满分100分哦)
当然,wordpress网站插件调优其实远远不止利用上面2个插件做一下组合拳这么简单。我们真正优化wordpress网站的速度体验,用到的相关插件接近7-8个。这些都是经过大量项目网站测试对比试验得到的宝贵经验数据。远远不是打几句话能说清楚明白的。再加上每个网站本身的插件框架,功能实现并不一样,所以最靠谱的调优方案还是找专业人士调优。
ps:我们光算流量研究院的工程师就很专业哦。欢迎下单O(∩_∩)O
专业人士调优,一般都能通过各种组合拳帮你网站做整体速度优化,正常来说调优完成之后谷歌速度评分基本上90分左右了,再差也得有80分
不要少看这30分的差距,只有谷歌速度评分达到90分左右的,谷歌才会给你网站做页面优质评价,排名和流量才能咔咔地来O(∩_∩)O
这个没什么好说的,就是加速全球节点速度,还有缓存点图片内容
我们推荐使用全球知名CDN龙头供应商:Cloudflare
ps:这个CDN外网很快,国内由于众所周知的原因,卡成狗哦!
所谓术业有专攻。wordpress速度优化说起来原理不难,但是细节很难。
牵扯到服务器,网站程序,数据库,模板插件,js优化等等方方面面的操作。不懂技术或者没在专业领域沉淀个三五年,基本上你没有能力搞得好!
我们大部分做外贸独立站的老板,都是以项目运营为核心目的,以达成SEO效果,提升用户体验为目标。
去研究各种技术,显然不是各位老板应该做的事情!
所以,我们真心建议,对于wordpress速度优化这件事,你可以交给专业人士去做,更加事半功倍!
我们光算科技也有这个专业的wordpress速度优化的服务 - 简称《优速包》
一站式专业帮你搞定全套复杂麻烦的调优操作,保证你的网站可以做到谷歌速度评分90分以上
而您仅需要支付一点费用表示一下对技术的尊重而已O(∩_∩)O
本站用的WordPress程序,尝试过安装各种缓存插件(super cache, w3 total cache等)加速运行,但是低配的vps依然难以支持这么大的访问量。通过日志可以看到随着访问量的增加,php-fpm进程增多,Mysql的连接和线程增多,接着出现OOM,然后系统kill掉占用内存最大的Mysql进程,于是网站进入503宕机模式。
买更好的vps能解决访问量大的问题,但是要花更多的钱。做为一个技术宅,首先想到的当然是如何榨干现有机器来支撑大流量。做过的尝试包括切换到比WordPress性能更好的Ghost,参考:尝试Ghost 。但是相对于WordPress,Ghost的生态远没有那么成熟,最终放弃了。
左思右想下,终极解决办法是用Nginx缓存,最初的文章可参考:Nginx配置fastcgi cache。fastcgi_cache的好处是大部分用户的请求不用后端php-fpm打交道,直接发送缓存的静态页面,速度上甩各种WordPress插件好几条街!相比之下wordpress的各种插件还要执行php,也避免不了访问数据库,弱爆了!
自从使用了nginx缓存,网站平稳运行,再也没有出现过宕机的现象。同时vps的cpu和内存占用率直线下降,再也无需担心vps的配置问题,感觉再来10倍流量博客也撑得住!
因为nginx稳如狗的体验,所以现在对于博客类读多写少的产品都是强推nginx缓存(fastcgi缓存或者proxy缓存)。鉴于可能帮到一些网友,现贴出 /etc/nginx/nginx.conf 配置文件供网友参考(包含ssl设置和gzip部分):
# 文件: /etc/nginx/nginx.conf # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main \'$remote_addr - $remote_user [$time_local] \"$request\" \' \'$status $body_bytes_sent \"$http_referer\" \' \'\"$http_user_agent\" \"$http_x_forwarded_for\" \"$request_time\"\'; access_log /var/log/nginx/access.log main buffer=32k flush=30s; server_tokens off; client_max_body_size 100m; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # ssl配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384; ssl_ecdh_curve secp384r1; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_session_tickets off; ssl_stapling on; # Requires nginx >= 1.3.7 ssl_stapling_verify on; # Requires nginx => 1.3.7 add_header Strict-Transport-Security \"max-age=63072000; preload\"; #add_header X-Frame-Options DENY; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection \"1; mode=block\"; # 请按照自己的需求更改 fastcgi_cache_path /var/cache/nginx/tlanyan levels=1:2 keys_zone=tlanyan:10m inactive=30m use_temp_path=off; fastcgi_cache_key $request_method$scheme$host$request_uri; # note: can also use HTTP headers to form the cache key, e.g. #fastcgi_cache_key $scheme$request_method$host$request_uri$http_x_custom_header; #fastcgi_cache_lock on; fastcgi_cache_use_stale error timeout invalid_header updating http_500; fastcgi_cache_valid 200 301 302 10h; fastcgi_cache_valid 404 10m; fastcgi_ignore_headers Expires Set-Cookie Vary; # gzip 配置 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_comp_level 7; gzip_types text/css text/plain text/javascript application/javascript application/json application/x-javascript application/xml application/xml+rss application/xhtml+xml application/x-font-ttf application/x-font-opentype application/vnd.ms-fontobject image/svg+xml image/x-icon application/rss+xml application/atom_xml image/jpeg image/gif image/png image/icon image/bmp image/jpg; gzip_vary on; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; } |
以及用于WordPress站点的网站配置文件(/etc/nginx/conf.d/tlanyan.conf):
server { listen 80; listen [::]:80; server_name www.tlanyan.me tlanyan.me; # 请换成自己的域名 rewrite ^(.*) https://$server_name$1 permanent; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name www.tlanyan.me tlanyan.me; # 请换成自己的域名 charset utf-8; ssl_certificate /etc/nginx/conf.d/tlanyan.pem; # 请换成自己的证书和密钥 ssl_certificate_key /etc/nginx/conf.d/tlanyan.key; set $host_path \"/var/www/tlanyan\"; # 请改成自己的路径 access_log /var/log/nginx/tlanyan.access.log main buffer=32k flush=30s; error_log /var/log/nginx/tlanyan.error.log; root $host_path; # 缓存标记 set $skip_cache 0; if ($query_string != \"\") { set $skip_cache 1; } if ($request_uri ~* \"/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|sitemap(_index)?.xml\") { set $skip_cache 1; } # 登录用户或发表评论者 if ($http_cookie ~* \"comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in\") { set $skip_cache 1; } location = / { index index.php index.html; try_files /index.php?$args /index.php?$args; } location / { index index.php index.html; try_files $uri $uri/ /index.php?$args; } location ~ ^/\\.user\\.ini { deny all; } location ~ \\.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_cache tlanyan; fastcgi_cache_valid 200 301 302 30m; fastcgi_cache_valid 404 10m; fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_cache_lock on; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ \\.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar|jpeg)$ { expires max; access_log off; try_files $uri =404; } } |
上述配置对最新版的Nginx测试有效,详细配置指令请参考Nginx官方文档。
以上就是怎么使用Nginx缓存加速WordPress站点的详细内容,更多请关注网站的其它相关文章!
Demand feedback