Using Hummingbird to Resolve Pingdom C Rating

Hi.

I ran an optimization Test at:

https://tools.pingdom.com/#5a1fa4513cc00000

Note: I am running Hummingbird. I am wondering how Hummingbird can be better utilized to reduce the problem points reported below:

I get these issues:

Grade Suggestion
F0 Make fewer HTTP requests

Decreasing the number of components on a page reduces the number of HTTP requests required to render the page, resulting in faster page loads. Some ways to reduce the number of components include: combine files, combine multiple scripts into one script, combine multiple CSS files into one style sheet, and use CSS Sprites and image maps.

F0 Use cookie-free domains

When the browser requests a static image and sends cookies with the request, the server ignores the cookies. These cookies are unnecessary network traffic. To workaround this problem, make sure that static components are requested with cookie-free requests by creating a subdomain and hosting them there.

F0 Add Expires headers

Web pages are becoming increasingly complex with more scripts, style sheets, images, and Flash on them. A first-time visit to a page may require several HTTP requests to load all the components. By using Expires headers these components become cacheable, which avoids unnecessary HTTP requests on subsequent page views. Expires headers are most often associated with images, but they can and should be used on all page components including scripts, style sheets, and Flash.

E60 Reduce DNS lookups

The Domain Name System (DNS) maps hostnames to IP addresses, just like phonebooks map people's names to their phone numbers. When you type URL http://www.yahoo.com into the browser, the browser contacts a DNS resolver that returns the server's IP address. DNS has a cost; typically it takes 20 to 120 milliseconds for it to look up the IP address for a hostname. The browser cannot download anything from the host until the lookup completes.

  • Adam Czajczyk
    • Support Gorilla

    Hello David

    I hope you're well today and thank you for your question!

    Let me address each of the issues separately below :slight_smile:

    F0 Make fewer HTTP requests

    This could be significantly reduced by Hummingbird by using three of its tools: Asset Optimization and Page Caching.

    If you got Asset Optimization enabled and set up, there's an "Advanced" mode switch next to "clear cache" page on "Hummingbird -> Asset Optimization" page. Once you switch it to the "Advanced" mode you'll notice that there's more options for each resource available. One of them is "combine" option and the goal is to enable as many of these "combine" button's there as possible without breaking the site. The way to do it is to enable them pretty much "one by one" each time checking the site and - if it breaks - "undoing" that last one. This might take some time but once you got as many of them enable as possible, it will cause multiple CSS/JS files to be "merged" into the less number of files, which in turn will efficiently reduce the number of HTTP requests.

    The second tool is "Page Caching" and that, if enabled and you let the cache built-up, would also reduce the number of requests as such cached content doesn't have to be build up "dynamically" meaning that it requires less "back-and-forth" communication between site and browser.

    On top of it would be "Browser Caching" that should be enabled. It's causing some parts/resources of the site to be cached in the user browser so browser simply doesn't request them from server on each and every site/page reload. However, I admit I'm not sure if Pingdom Tools check is able to actually detect how this affects HTTP requests number. But it would definitely decrease that number.

    F0 Use cookie-free domains

    There are two things here that should help. One is to use "WPMU DEV CDN" for the Hummingbird's "Asset Optimization" as the resources served from our CDN are served from such "cookie-less" domains. This is partial solution only as it affects only some CSS/JS resources.

    Then, if you're using our Smush plugin you could enable CDN option in it so it would affect images also.

    If it still detects some resources that "should use cookie-free domains" they'd probably be not JS/CSS and not images resources and in such case you'd want to actually implement this solution:

    - create a subdomain of your domain (e.g. static.yourdomain.com)
    - set its root folder to point to the /wp-content folder of your site so the the /wp-content/ folder in a root folder of the main domain
    - add these lines to the "wp-config.php" file

    define("COOKIE_DOMAIN", "www.yourdomain.com");
    define("WP_CONTENT_URL", "https://static.yourdomain.com");

    Make sure that you used your actual domain instead of "yourdomain.com" :slight_smile:

    F0 Add Expires headers

    In most cases enabling Browser Caching in Hummingbird should help with it.

    E60 Reduce DNS lookups

    This is something less related to the Hummingbird or even WordPress itself and more to the "infrastructure". The DNS response time can be different and can sometimes "slow things down".

    What could be done to speed that up a bit:

    1. On "Hummingbird -> Advanced Tools -> General" page you'll find a "Prefetch DNS Requests" setting. There should already be some popular host entries added but you might need to review those:

    - there's no need to keep those that are not used at all (for example if you are absolutely sure that your site is not using any Google Fonts at all - nor the theme neither any plugins) you can remove "//fonts.googleapis.com" from there

    - there might be some that should be added there; for example, if you're using any embeds or plugins that related to Facebook you might want to include hosts used by them there (to find out about these hosts you might need to check "Network" tab of the browser Developer Console)

    2. Page Caching and Browser Caching - as already explained above - can cause a smaller number of requests from browser to the site, so that would also cause smaller number of necessary DNS requests and while that won't "speed up" DNS it might affect "overall resolution time"

    3. Implement a CDN such as e.g. CloudFlare;

    A "Content Delivery Network" (even a free CloudFlare plan should help) means that your sites content/resources will be efficiently "distributed across the various end-points around the globe" and when a user requests the site that request will be re-routed to the closest/fastest (from the user perspective) end-point over the DNS system - so that should improve DNS lookups number and DNS response speed.

    That being said, I'm not sure how the site is currently configured so I'm not sure which of these suggestions are already implemented and how and which not and what else could be improved. Take a look at my response please and in case you'd needed more assistance, let me know, please.

    Kind regards,
    Adam

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.