WordPress网站等待时间长
Posted
技术标签:
【中文标题】WordPress网站等待时间长【英文标题】:Long waiting time on WordPress website 【发布时间】:2016-04-29 16:56:55 【问题描述】:我为 WordPress 构建的自定义主题一直存在问题。网站上的等待时间约为 20 秒+。
我尝试了以下方法但没有成功:
禁用所有插件。 从主题中删除了所有脚本,包括 WordPress 脚本。 已切换到其他主机。有人知道可能是什么问题吗?我知道 Firebug 中的等待时间意味着等待服务器响应但无法找出问题所在。
【问题讨论】:
哪些文档需要很长时间才能加载? @PedroLobito 所有网站页面 您使用的是共享主机还是 vps ? 你可能想看看这个博客codefear.com/wordpress/speed-wordpress-website 【参考方案1】:听起来是 php 问题。您是否尝试过绕过 PHP 以查看这是否真的是问题所在?为了测试这一点,我建议安装一个像 Cache Enabler 这样的缓存插件,然后在你的源服务器上实现 advanced snippet 以在检索插件生成的缓存 html 时绕过 PHP。
Apache 的高级 sn-p:
# Start Cache Enabler
<IfModule mod_rewrite.c>
RewriteEngine On
<IfModule mod_mime.c>
# webp HTML file
RewriteCond %REQUEST_URI /$
RewriteCond %REQUEST_URI !^/wp-admin/.*
RewriteCond %REQUEST_METHOD !=POST
RewriteCond %QUERY_STRING =""
RewriteCond %HTTP_COOKIE !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %HTTP:Accept-Encoding gzip
RewriteCond %HTTP:Accept image/webp
RewriteCond %DOCUMENT_ROOT/wp-content/cache/cache-enabler/%HTTP_HOST%REQUEST_URIindex-webp.html.gz -f
RewriteRule ^(.*) /wp-content/cache/cache-enabler/%HTTP_HOST%REQUEST_URIindex-webp.html.gz [L]
# gzip HTML file
RewriteCond %REQUEST_URI /$
RewriteCond %REQUEST_URI !^/wp-admin/.*
RewriteCond %REQUEST_METHOD !=POST
RewriteCond %QUERY_STRING =""
RewriteCond %HTTP_COOKIE !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %HTTP:Accept-Encoding gzip
RewriteCond %DOCUMENT_ROOT/wp-content/cache/cache-enabler/%HTTP_HOST%REQUEST_URIindex.html.gz -f
RewriteRule ^(.*) /wp-content/cache/cache-enabler/%HTTP_HOST%REQUEST_URIindex.html.gz [L]
AddType text/html .gz
AddEncoding gzip .gz
</IfModule>
# default HTML file
RewriteCond %REQUEST_URI /$
RewriteCond %REQUEST_URI !^/wp-admin/.*
RewriteCond %REQUEST_METHOD !=POST
RewriteCond %QUERY_STRING =""
RewriteCond %HTTP_COOKIE !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %DOCUMENT_ROOT/wp-content/cache/cache-enabler/%HTTP_HOST%REQUEST_URIindex.html -f
RewriteRule ^(.*) /wp-content/cache/cache-enabler/%HTTP_HOST%REQUEST_URIindex.html [L]
</IfModule>
# End Cache Enabler
server
set $cache_uri $request_uri;
# bypass cache if POST requests or URLs with a query string
if ($request_method = POST)
set $cache_uri 'nullcache';
if ($query_string != "")
set $cache_uri 'nullcache';
# bypass cache if URLs containing the following strings
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)")
set $cache_uri 'nullcache';
# bypass cache if the cookies containing the following strings
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in")
set $cache_uri 'nullcache';
# custom sub directory e.g. /blog
set $custom_subdir '';
# default html file
set $cache_enabler_uri '$custom_subdir/wp-content/cache/cache-enabler/$http_host$cache_uriindex.html';
# webp html file
if ($http_accept ~* "image/webp")
set $cache_enabler_uri '$custom_subdir/wp-content/cache/cache-enabler/$http_host$cache_uriindex-webp.html';
location /
gzip_static on; # this directive is not required but recommended
try_files $cache_enabler_uri $uri $uri/ $custom_subdir/index.php?$args;
...
【讨论】:
【参考方案2】:你应该应用这些特定的规则来获得一些运气:
-
使用 W3 Total Cache 插件(它是同类产品中最好的)或任何其他缓存插件。
如果您的主题有优化图像,请使用优化图像。
压缩所有 CSS 和 javascript 文件。
使用延迟加载插件可以快速加载文本,但在后台加载图像。
确保您没有使用任何会在大多数情况下减慢页面加载时间的框架。
使用内容交付网络 (CDN)。
将
Expires
标头添加到静态资源。
尽可能使用静态 HTML,因为它加载速度很快。
确保您的主题中没有不必要的额外代码或文件。
应用所有这些提到的步骤并进一步阅读页面优化技术以获得良好和长期的结果。
【讨论】:
以上是关于WordPress网站等待时间长的主要内容,如果未能解决你的问题,请参考以下文章