Posted by Tom-Anthony

Most of us have done site hurrying examinations, or viewed scrutinies to be undertaken by others. These can be really helpful for businesses, but I often find they’re relatively narrow-minded in focus. Frequently we use well-known tools that throw up a bunch of things to look at, and then we dive into things from there.

However, if we delve deeper, there are often other ideas on how site velocity can be improved. I often recognize plenty of possibilities that are never covered in site quicken examines. Most site accelerate betters are the result of a bunch of small changes, and so in this post I’m going to cover a few themes that I’ve never seen in any area race investigation, all of which can make a difference.

A different direction on image optimization Consider optimized SVGs over PNGs

I was recently looking to book some tickets to investigate Frozen 2( because of, erm, my boys …) and so shored on this page. It offsets call of three SVG portraits for tote icons 😛 TAGEND

SVG idols are vector images, so they’re well-suited for things like icons; if you have images displayed as PNGs you may want to ask your decorators for the original SVGs, as there can be significant savings. Though not always better, consuming an SVG can save 60% of the filesize.

In this case, these icons come in at about 1.2 k each, so they are quite small. They is very likely fly under the radar of site velocity investigations( and neither Page Speed Insights or GTMetrix mention these epitomes at all for this page ).

So you may be thinking, “They’re less than 5k mixed — you should look for bigger matters! ”, but let’s take a look. Firstly, we can run them all through Jake Archibald’s SVG compression tool; this is a great free tool and on large SVGs it can make a big difference.

In this case the data are small, so you may still be thinking “Why bother? ” The tool constricts them without any loss in character from~ 1240 bytes to~ 630 bytes — a good fraction but not much of an overall saving.

However … now that we’ve squeezed them, we are unable to review differently about delivering them…

Inline likeness

GTMetrix makes recommendations around inlining small bits of CSS or JS, but doesn’t mention inlining likeness. Images can also be inlined, and sometimes this can be the right approach.

If you consider that even a small epitome file is in need of terminated round trip( which can have a very real impact on race ), even for small files this can take a long time. In the case of the Cineworld transport portrait above, I simulated a “Fast 3G” tie-in and visualized 😛 TAGEND

The site is not use HTTP2 so there is a long wait period, and then the persona( which is 1.2 kb) takes almost 600 ms to laden( no HTTP2 also signifies this is blocking other askings ). There are three of these epitomes, so between them they can be having a real impact on sheet speed.

However, we’ve now tightened them to only a few hundred bytes each, and SVG portraits are actually made up of markup in a same fashion to HTML 😛 TAGEND

You can actually gave SVG markup directly into an HTML document!

If we do this with all three of the transport portraits, the squeezed HTML for this page that is sent from the server to our browser mounts from 31,182 bytes to 31,532 bytes — an increase of merely 350 bytes for all 3 personas!

So to recap 😛 TAGEND Our HTML request has increased 350 bytes, which is barely anythingWe can abandon three round trips to the server, which we can see were taking substantial period

Some of you may have realized that if the portraits were not inline they could be cached separately, so future sheet entreaties wouldn’t need to refetch them. But if we think is one 😛 TAGEND Each portrait was originally about 1.5 kb over the network( they aren’t gzipping the SVGs ), with about 350 bytes of HTTP headers on top for a total of about 5.5 kb committed. So, overall we’ve shortened the amount of content over the network.This also means that it would take over 20 pageviews to ensure that there is having them cached.

Takeaway: Consider where there are opportunities to use SVGs instead of PNGs.

Takeaway: Make sure you optimize the SVG portrait, use the free tool I linked to.

Takeaway: Inlining small-time personas can make sense and bring outsized performance gains.

Note: You can also inline PNGs — see this guide.

Note: For optimized PNG/ JPG epitomes, try Kraken.

Back off, JavaScript! HTML can handle this …

So often nowadays, thanks to the prevalence of JavaScript libraries that give an off-the-shelf solution, I find JavaScript being used for functionality that could be achieved without it. More JS libraries implies more to download, maybe more round trips for additional files from the server, and then the JavaScript execution time and costs themselves.

I have a lot of sympathy for how you get to this point. Developers are often given poor summaries/ specs that fail to specify anything about performance, exclusively serve. They are often time-poor and so it’s easy to be concluded really removing something in.

However, a lot of progress has been realized in terms of the functionality that can be achieved with HTML and or CSS. Let’s look at some examples.

Combo chest with exploration

Dropdown caskets that have a text pursuit alternative are a fairly common interface constituent nowadays. One recent article I came across described how to use the Select2 Javascript library to make such a list 😛 TAGEND

It is a helpful UI element, and can help your users. Nonetheless, in the Select2 library is a JavaScript library, which in turn relies on some CSS and the JQuery library. This represents three round trip to collect a knot of registers of motley sizings 😛 TAGEND JQuery – 101 kbSelect2 JavaScript – 24 kbSelect2 CSS – 3kb

This is not ideal for site hurry, but we could certainly acquire the client it is worth it in order to have a streamlined boundary for users.

However, it is actually possible to have this functionality out of the box with the HTML datalist ingredient 😛 TAGEND

This allows the user to search through the list or to free type their own response, so provides the same functionality. Furthermore, it has a native interface on smartphones!

You can see this in action in this codepen.


LonelyPlanet has a beautiful website, and I was looking at this page about Spain, which has a’ Read More’ link that most web consumers will be familiar with 😛 TAGEND

Like almost every implementation of this that I identify, they have utilized a JavaScript library to implement this, and once again this comes with a bunch of overheads.

However, HTML has a pair of built-in tags announced items and summary, which are designed to implement this functionality accurately. For free and natively in HTML. No overheads, and more accessible for consumers needing a screen book, while also conveying semantic meaning to Google.

These calls can be styled in numerous adaptable channels with CSS and recreate most of the JS editions I have interpreted out there.

Check out a simple demo here: https :// TomAnthony/ write/ GRRLrmm

…and more

For more examples of functionality that you can achieve with HTML instead of JS, check out these tie-ups 😛 TAGEND

Takeaway: Examine the functionality of your locates and interpret where there may be opportunities to reduce your trust on gigantic Javascript libraries although there are native HTML/ CSS options.

Takeaway: Remember that it isn’t merely the size of the JS enters that is problematic, but the number of members of round trip that are required.

Note: There are cases where you should use the JS solution, but it is important to weighed against the pros and cons.

Networking tune-ups

Every time the browser has to collect resources from a server, it has to send a message across the internet and back; the hurry of this is limited by the speed of light. This may sound like a stupid thing to concern ourselves with, but it means that even small requests add time to the page load. If you didn’t catch the link above, my post clarifying HTTP2 discusses the above-mentioned issues in more detail.

There are some things we can do to help either reduce the distance of these requests or to reduce the number of round trips needed. These are a little bit more technical, but are able to obtain some real wins.

TLS 1.3

TLS( or SSL) is the encryption technology used to secure HTTPS acquaintances. Historically it has taken two round trip between the browser and the server to setup that encryption — if the user is 50 ms away from the server, then this intends 200 ms per alliance. Keep in subconsciou that Google historically recommends aiming for 200 ms to deliver the HTML( this seems slightly unwound in most recent updates ); you’re losing a lot of that time here.

The recently defined TLS 1.3 standard shortens this from two round trip to only one, which are capable of shave some prized time off the users initial connection to your website.

Speak to your tech team about moving to TLS 1.3; browsers that don’t support it will fallback to TLS 1.2 without concern. All of this is behind the scenes and is not a movement of any kind. There is no reason not to do this.

If you are using a CDN, then it can be as simple as merely turning it on.

You can use this tool to check which different versions of TLS you have enabled.


Over the last 2-3 years we have seen a number of sites move from HTTP 1.1 to HTTP 2, which is a behind-the-scenes upgrade which can make a real improvement to race( identify my connect above if you want to read more ).

Right off the back of that, there is an emerging pair of standards known as QUIC+ HTTP/ 3, which further optimize the relationship between the browser and the server, further reduce the number of round trips required.

Support for these is only just beginning to become practicable, but if you are a CloudFlare customer you can enable that today and over the coming 6 months as Chrome and Firefox roll support out, your consumers will get a rapidity boost.

Read more now: https :// http3-the-past-present-and-future /

Super routing

When consumers is attached to your website, they have to open network connections from wherever they are to your servers( or your CDN ). If you imagine the internet as a series of superhighways, then you could imagine they need to’ drive’ to your server across these roads. However, that planneds bottleneck and traffic jams.

As it turns out, some of the large cloud companionships have their own private roads which have fewer potholes, little traffic, and improved raced limits. If merely your website visitors could get access to these arteries, we are able to’ drive’ to you faster!

Well, guess what? They can!

For CloudFlare, they provide this access via their Argo produce, whereas if you are on AWS at all then you can use their Global Accelerator. This allows requests to your website to make use of their private systems and get a possible move raise. Both are very cheap if you are already customers.

Takeaway: A heap of these sorts of benefits are considerably easier to get if you’re using a CDN. If you’re not already applying a CDN, then you probably should be. CloudFlare is a great choice, as is CloudFront if you are using AWS. Fastly is the most configurable of them if you’re more of a pro.

Takeaway: TLS 1.3 is now very widely supported and offers a significant speed improvement for new connections.

Takeaway: QUIC/ HTTP3 are only just starting to get support, but over the coming months this will roll out more broadly. QUIC includes the benefits of TLS 1.3 as well as more. A conventional HTTP2 bond nowadays needs 3 round trips to open; QUIC needs precisely one!

Takeaway: If you’re on CloudFlare or AWS, then there is potential to get speed up merely from flipping a switch to turn on smart route features.

Tell CSS do more

Above I talked about how HTML has built-in functionality that you can leverage to save relying on mixtures that are’ home-rolled’ and thus compel more code( and processing on the browsers surface) to implement. Now I’ll talk about some examples where CSS can do the same for you.

Reuse personas

Often you find pages that are using similar images throughout the page in various situates. For illustration, alterations on a logo in different colors, or arrows that top in both directions. As peculiar resources( nonetheless same they are able ), each of these needs to be downloaded separately.

Returning to my hunt for cinema tickets above, where I was looking at this page, we can see a carousel that “ve left” and right arrows 😛 TAGEND

Similarly to the logic used above, while these portrait registers are small, they still require a round trip to fetch from the server.

However, the arrows are identical — time timing in opposite tendencies! It’s easy for us to use CSS’s transform functionality to use one portrait for both tacks 😛 TAGEND

You can check out this codepen for an example.

Another example is when the same logo appears in different wordings on all regions of the sheet; often they will load multiple deviations, which is not necessary. CSS can re-color logos for you in a variety of ways 😛 TAGEND

There is a codepen here showing this procedure in action. If you want to calculate the CSS filter value required to reach an arbitrary color, then check out this amazing color calculator.

Interactions( e.g. menu& tabs)

Often navigation points such as menus and tabs are implemented in JavaScript, but these too can be done in pure CSS. Check out this codepen for an example 😛 TAGEND Animations

CSS3 feed a great deal of powerful living capability into CSS. Often these are not only faster than JavaScript copies, but can also be smoother extremely as they can run in the native code of the operating system rather than having to execute relatively slower Javascript.

Check out Dozing Bird as one example 😛 TAGEND

You can find plenty more in this article. CSS livings can add a lot of reputation to sheets at a relatively small performance cost.

…and more

For more examples of functionality that you can achieve abusing pure CSS mixtures, take a look at 😛 TAGEND

Takeaway: Use CSS to optimize how many files you have to load exerting rotations or filters.

Takeaway: CSS animations can add character to pages, and often necessitate less reserves than JavaScript.

Takeaway: CSS is perfectly capable of implementing many interactive UI elements.

Wrap up

Hopefully you’ve experienced these examples helpful in themselves, but the broader point I want to compile is that we should all try to think a bit more out of the box with regards to site rapidity. Of particular importance is reducing the number of round trips needed to the server; even small-scale assets take some time to fetch and can has only one appreciable impact on performance( especially portable ).

There are plenty more feelings than we’ve covered here, so satisfy do jump into the comments if you have other things you have come across.

Sign up for The Moz Top 10, a semimonthly mailer modernizing you on the top ten hottest portions of SEO news, tip-off, and rad connects uncovered by the Moz team. Think of it as your exclusive accept of stuff you don’t have time to hunt down but want to read!

Read more: