我在使用wordpress网站时遇到问题,我获得了大约8秒的TTFB。
我的服务器是debian 7,带有apache,3go RAM,托管在gandi cloud IAAS
如果我安装了一个缓存模块(如SuperCache),当一个页面在缓存中时一切正常,页面加载速度非常快
但是对于新页面或禁用缓存模块,它的加载时间为8..9秒。
我的apache2.conf配置如下:
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 3
MaxClients 10
MaxRequestsPerChild 3000
</IfModule>
<IfModule mpm_worker_module>
StartServers 1
MinSpareThreads 5
MaxSpareThreads 15
ThreadLimit 25
ThreadsPerChild 5
MaxClients 25
MaxRequestsPerChild 200
</IfModule>
free-m请求说:
total used free shared buffers cached
Mem: 2858 1772 1085 0 166 1152
-/+ buffers/cache: 453 2404
网站的网址为https://www.super-taux.com
如果有人有了主意......非常感谢你。
答案 0 :(得分:3)
这就是WordPress的本质。代码和页面生成通常是可怕的
您的TTFB不是问题。对于WordPress来说,这是非常好的。
您的服务器非常快,18,766,667字节/秒。并且使用gzip压缩,有效速度为104,249,275字节/秒。
总页面加载时间是问题。
通常使用WP加载CSS和JS文件的顺序会延迟Start Render。如果您在webpagetest.org测试页面加载,并查看瀑布,您将看到加载页面和开始渲染的大量时间。
基页(第1行)加载时间为562毫秒,“开始渲染”为2.789秒。
注意第22行是.woff2字体文件,其开始偏移量为2.511秒。
然后开始渲染开始渲染。这一件事花费你超过2秒。
每次浏览器运行可以改变页面布局的资源(例如CSS和字体)时,浏览器都会重新启动渲染。同时,在最后一个CSS之前加载的每个JS文件都停止渲染,因为浏览器会解析JS。
如果SuperCache为您工作,那么您必须拥有静态网页。使用静态页面,您不必拥有WP动态生成页面。
如果您需要WP来设计您的页面,那么复制WP渲染的页面并将它们用作静态页面。
这可能需要您将链接从一个页面更改为另一个页面。
然后,您还可以更正<head>
中资源的顺序,并将所有CSS和字体移到任何JS之上,并将相应的JS移动到页面底部。
运行Google PageSpeed Insights
点击链接以消除上层内容中的渲染阻止JavaScript和CSS
您需要修复服务器配置。最好将它添加到httpd.conf,但快速修复是创建一个包含以下内容的.htaccess文件:
AddCharset utf-8 .html .css .php .txt .js .svg
Header unset ETag
FileETag None
ExpiresActive On
ExpiresByType image/* A31536000
ExpiresByType text/* A2592030
ExpiresByType application/* A2592030
<FilesMatch "\.(js|xml|gz)$">
Header set Cache-Control "max-age=2592030, public"
Header append Vary: Accept-Encoding
</FilesMatch>
<ifModule mod_headers.c>
Header set Connection keep-Alive
</ifModule>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|svg|swf)(\.gz)?$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>
<FilesMatch "\.(html|js|css|xml|gz)$">
Header set Cache-Control "max-age=86401, public"
Header append Vary: Accept-Encoding
</FilesMatch>
答案 1 :(得分:1)
您的网站有很长时间来启动渲染(当用户看到某些内容时)和整个页面。
1)你正在加载很多CSS,这会延迟渲染。其中大部分(193 KB GZipped!)看起来像Bootstrap和库以支持swipebox。你真的需要所有这些吗?例如:
2)您正在加载大量Javascript文件(可能来自插件)。这些也延迟了渲染。如果你可以将它们限制在需要的页面或使它们异步,那么它们不会延迟渲染(但它们仍会使页面变慢)。
3)使用SSL / TLS会导致很多延迟。你真的需要为每一页吗?两个建议:
4)你使用了很多小图片。考虑使用精灵。这样,只会下载一些图像,从而节省了大量的HTTP连接(使用SSL / TLS时会额外受到惩罚)。