Site built with Wordpress slower than when RVSiteBuilder was used

I previously built a website using RVSiteBuilder and recently rebuilt it to look the same using Wordpress. The typical load times of each page have at least doubled. Granted, the Wordpress built site has more functionality. Is this just the bloatiness of Wordpress or is there something specific I can change looking at my test results. I am using Cloudflare as the CDN and within Wordpress I am using the W3 Total Cache plugin. Disabling every plugin has no effect and does not speed up the page loads. I don’t know enough to decipher the results, but the following two items, no matter what page I test, have the longest load time lags by a large factor according to the waterfall charts:

First Byte Time for

  1. Page itself: “http://www.flaminghellmet.com/launch/

  2. The following: “http://www.flaminghellmet.com/live1/wp-admin/admin-ajax.php?action=siteorigin_panels_post_css&post=22&layout=45a6f3d2&ver=1.5.3

Here is a typical test result:

http://www.webpagetest.org/result/141107_XD_11FE/1/details/

WordPress can be made quite quickly with CF, at least in my case when all pages are static html and served from the CF data centre.

If I were you, I’d do a few things to start with (random order):

  1. Disable all plugins and re-enable them one-by-one to see which plugin makes the admin-ajax.php call. Then remove that plugin.

  2. Combine the css into one file. You can use a FireFox plugin like Dust Me to further reduce the css file sizes because you probably have a lot of redundant CSS code (but delete thoughtfully). Dequeue the styles set by plugins once you’ve combined everything (Google WordPress’ wp_deregister_style and wp_dequeue_style).

  3. Test to see if your JavaScript can be loaded asynchronous or deferred.

  4. Combine the Javascript into one or two files. You’ll need to dequeue the scripts set by WordPress for that (Google for wp_deregister_script that can be placed in functions.php).

  5. I’d personally also remove the webfonts and replace them with websafe fonts that don’t require resources (see http://www.cssfontstack.com/ for an overview of websafe fonts you can use).

  6. You also call Google Analytics twice (ga.js, resource 37, and analytics.js, resource 27). You only need one, and ga.js is asynchronous so I’d use that one.

  7. I’d set the caching of the static assets (js, css, png, etc) far in the future, like one year. You can set that on the ‘Browser Cache’ settings page of W3TC.

Thanks for the reply and pointing me exactly where to look.

  1. Disable all plugins and re-enable them one-by-one to see which plugin makes the admin-ajax.php call then remove that plugin.
    [color=#006400]That didn’t work because the ajax code shows up at random and unpredictable times, however I found a very recent plugin support thread for this issue, and the author of the plugin is currently working on fixing the problem. This is the main speed killer of my site.
    [/color]

  2. You also call Google Analytics twice (ga.js, resource 37, and analytics.js, resource 27). You only need one, and ga.js is asynchronous so I’d use that one.
    [color=#006400]Looking through the webpagetest results I see that a plugin is calling its own Google Analytics code, not me. That’s pretty sneaky.
    [/color]

  3. I’d set the caching of the static assets (js, css, png, etc) far in the future, like one year. You can set that on the ‘Browser Cache’ settings page of W3TC.
    [color=#006400]I see that there are multiple caching type options in this section, and they are all turned off. Guessing that you meant to turn on the “Set Expires Header” option and associated “Expires Header Lifetime”, that is what I did. [/color] [color=#FF0000]However I am still getting an “F” grade for “Cache Static Content” with a “no max-age or expires” for each item. The only way I can change this is to activate Cloudflare, and then it uses its own “Minimum Expire TTL” setting of 4 hours. How do I fix that?
    [/color]
    I really don’t know enough about the other items yet to attempt fixing them, but maybe I will research them in the future.[/color]

EDIT: Updated 11-08-2014

[quote=“pjc123, post:3, topic:9073”]
[color=#FF0000]However I am still getting an “F” grade for “Cache Static Content” with a “no max-age or expires” for each item. The only way I can change this is to activate Cloudflare, and then it uses its own “Minimum Expire TTL” setting of 4 hours. How do I fix that?
[/color][/quote]
In the Page Rules you can set ‘respect existing headers’, and then it uses the expire headers set by W3TC in the .htaccess file. Or if you don’t want to use Page Rules, the minimum expire TTL can be set in Settings → Performance Settings tab → Minimum expire TTL.

I set up the page rule, and I am now seeing opening web site First Byte Times way lower than I have ever seen before, as in an order of magnitude lower on some test runs, so that is fantastic. I am still getting an “F” for static content, but the page rule eliminated the opening page url static cache error (I gather that is what fixed the long opening page First Byte Times); all that is left is the google font static cache error, but you already showed how to take care of that. I am still getting Warnings (not Errors) for the 4 hour cloudflare page expires, but I suspect that is not important.

Once they patch the Page Builder plugin, I will be good to go.

EDIT #1: (11-17-2014): SOLVED: Page Builder 1.5.4 was released today and between that fix and some of the other fixes that JMTC suggested I am now seeing speeds comparable to my previous RVSiteBuilder built site.

EDIT #2: (11-28-2014): FURTHER SPEED ENHANCMENT: I was able to get another big speed increase by following this guide, which has recommended settings for W3 Total Cache when used in conjunction with Cloudflare: