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

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_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网站等待时间长的主要内容,如果未能解决你的问题,请参考以下文章

长帖子内容上的 Wordpress 崩溃

点击加载更多帖子wordpress [关闭]

如何在 WordPress 中为 Google +1 按钮设置填充/边距?

wordpress 网站图片不显示求解

Wordpress Cron作业未运行

wordpress怎样搭建网站