Hey There,
According to the Firefox Developer Console, the webpage is initially 125.90 KB on first load and about 31.98 KB on additional loads. The CSS is about 93.99 KB. I believe this console is showing the size of the request after it has been unzipped and extracted. The gzip size of the home page on initial load appears to be 25.7 KB and 5.8 KB on additional loads.
According to netindex, the average global download speed is 11.3 MBps, which corresponds to 11,300 KBps. Thus, 25.7 KB / 11,300 KBps = 0.00227 seconds or 2.27 milliseconds.
I have been doing my tests on a cable connection (5/1 Mbps = 625 kBps = 5000 Kbps) on your website. Thus, 25.7 KB / 5000 KBps = 0.0514 seconds or 5.14 milliseconds.
Initial Webpage Load:
Start Offset: 0.370 s
Initial Connection: 118 ms
SSL Negotiation: 252 ms
Time to First Byte: 332 ms
Content Download: 15 ms
Bytes In (downloaded): 25.7 KB
Bytes Out (uploaded): 0.3 KB
Additional Webpage Load:
Start Offset: 0.393 s
DNS Lookup: 3 ms
Initial Connection: 121 ms
SSL Negotiation: 263 ms
Time to First Byte: 145 ms
Content Download: ms
Bytes In (downloaded): 5.8 KB
Bytes Out (uploaded): 0.6 KB
Of course, my calculations are theoretical in a perfect world and actual results are a bit slower as indicated above.
Start Offset: 0.370 s and Initial Connection: 118 ms
I cannot do much about these unless I have a server closer to the user right?
SSL Negotiation: 252 ms
I don’t think my intermediate certificate is setup correctly at the moment so I expect this time to improve a bit. When I run some tests on your testing software, I can see that when SSL negotiations start, a request is made to startSSL.com. It is not apparently on all requests though but I think it might be happening behinds the scenes?
Time to First Byte: 332 ms vs Time to First Byte: 145 ms
I suppose the first TTFB could be up a bit because it establishes SESSION variables and sends a cookie to the user. I expect this value to increase when I do the actual ColdFusion programming behind the scenes.
Content Download: 15 ms
I do not think this will get much better. I pretty much send text and css during my webpage request and then load additional requests (images, javascript, etc) via AJAX. I was actually able to get a perfect score in the Google PageSpeed Insights tool by loading external resources such as AdSense scripts via AJAX. Advertisements should always be loaded last in my opinion anyway. I am all about user experience.
I was not even going to put ALL inline CSS in the HTML HEAD on initial load but there was a flicker that happened for about a tenth of a second and also the Insights tool showed what the screen looked like before AJAX was loaded so I decided to just include the CSS. From my results thus far, it does not seem to effect things too much.
I might even apply the technique I mentioned in the previous post to other elements on my website. Maybe I can pre-load some images via AJAX so that they appear right way when a user reaches the inner pages of my website. I might as well if the browser is idle and it does not effect anything at that point.
Patrick, do you think this is an outdated approach: I remember awhile back (a few years ago actually) that we had a discussion where using subdomains such as img1.example.com, img2.example.com, image3.example.com, etc may open up additional connections since some older browsers are limited to 2 connections per website. Do you think that is worth doing at this point in time or have we moved on to a point where the 2 connection limit does not apply anymore? The reason I ask is because I believe a new connection (and maybe even SSL negotiation) would have to be established for each image subdomain.
Thanks again for any advice - always a pleasure!
Sincerely,
Travis Walters