在WordPress网站上漫长的等待时间

时间:2016-04-29 16:56:55

标签: php wordpress wordpress-plugin wordpress-theming

我遇到了一个我为WordPress构建的自定义主题的问题。网站上的等待时间约为20秒+。

我尝试了以下但没有成功:

  • 所有插件均已停用。
  • 从主题中删除了所有脚本,包括WordPress脚本。
  • 切换到其他主持人。

任何人都知道可能是什么问题?我知道Firebug中的等待时间意味着等待服务器响应,但无法解决问题。

Firebug showing long waiting time for page request

2 个答案:

答案 0 :(得分:2)

你应该运用这些规则来获得一些运气:

  1. 使用W3 Total Cache插件(它的利基中最好的)或任何其他缓存插件。
  2. 如果您的主题有一些,请使用优化的图片。
  3. 压缩所有CSS和JavaScript文件。
  4. 使用延迟加载插件快速加载文本,但背景中的图像。
  5. 在大多数情况下,请确保您没有使用任何减慢页面加载时间的框架。
  6. 使用内容分发网络(CDN)。
  7. 向静态资源添加Expires标头。
  8. 尽可能使用静态HTML,因为它加载速度很快。
  9. 确保主题中没有不必要的额外代码或文件。
  10. 应用所有这些提到的步骤,并进一步阅读页面优化技术,以获得良好和长期的结果。

答案 1 :(得分:2)

听起来像是一个PHP问题。您是否尝试绕过PHP以查看其实是否存在问题?为了测试这个,我建议安装一个像Cache Enabler这样的缓存插件,然后在原始服务器上实现advanced snippet,以便在检索插件生成的缓存HTML时绕过PHP。

Apache的高级代码段:

# 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_URI}index-webp.html.gz -f
 RewriteRule ^(.*) /wp-content/cache/cache-enabler/%{HTTP_HOST}%{REQUEST_URI}index-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_URI}index.html.gz -f
 RewriteRule ^(.*) /wp-content/cache/cache-enabler/%{HTTP_HOST}%{REQUEST_URI}index.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_URI}index.html -f
 RewriteRule ^(.*) /wp-content/cache/cache-enabler/%{HTTP_HOST}%{REQUEST_URI}index.html [L]
</IfModule>
# End Cache Enabler

Nginx的:

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_uri}index.html';

    # webp html file
    if ($http_accept ~* "image/webp") {
        set $cache_enabler_uri '${custom_subdir}/wp-content/cache/cache-enabler/${http_host}${cache_uri}index-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;
    }

    ...

}