Friday, November 27, 2015

Why Everyone Should Be Moving To HTTP/2

HTTP/2

If I told you that your website could load faster, your server could use fewer resources, your developers wouldn’t have to waste time on hacks to increase site speed and you’d get a boost to your rankings all from one simple change, you’d probably call me a liar. If it sounds too good to be true, then it must be, right?

Wrong! The future is here with one of the greatest advancements in web technology in the past 20 years, and the SEO community doesn’t seem to be talking about it.

When Barry Schwartz posted a recap of a recent Google Webmaster Central Hangout in which Google’s John Mueller said that GoogleBot will support HTTP/2 by the end of this year or early next year, I expected a mad scramble and people shouting from the rooftops. Instead, there were crickets throughout the SEO industry.

You should already have switched to HTTP/2 for many reasons, including a tremendous speed increase, which makes for a better user experience, but now there are potential ranking factors on the line, as well.

What Is HTTP/2?

HTTP/2 is the latest update to the HTTP protocol by the Internet Engineering Task Force (IETF). The protocol is the successor to HTTP/1.1, which was drafted in 1999. HTTP/2 is a much-needed refresh, as the web has changed over the years. The update brings with it advancements in efficiency, security and speed.

Where Did HTTP/2 Come From?

HTTP/2 was based largely on Google’s own protocol SPDY, which will be deprecated in 2016. The protocol had many of the same features found in HTTP/2 and managed to improve data transmission while keeping backwards compatibility. SPDY had already proven many of the concepts used in HTTP/2.

Major Improvements In HTTP/2

  • Single Connection. Only one connection to the server is used to load a website, and that connection remains open as long as the website is open. This reduces the number of round trips needed to set up multiple TCP connections.
  • Multiplexing. Multiple requests are allowed at the same time, on the same connection. Previously, with HTTP/1.1, each transfer would have to wait for other transfers to complete.
  • Server Push. Additional resources can be sent to a client for future use.
  • Prioritization. Requests are assigned dependency levels that the server can use to deliver higher priority resources faster.
  • Binary. Makes HTTP/2 easier for a server to parse, more compact and less error-prone. No additional time is wasted translating information from text to binary, which is the computer’s native language.
  • Header Compression. HTTP/2 uses HPACK compressions, which reduces overhead. Many headers were sent with the same values in every request in HTTP/1.1.

There are several demos out there where you can see the difference in action with tiled images. It appears that as the latency increases, the speed increase from HTTP/2 is even more noticeable, which is great for mobile users.

Who Supports HTTP/2?

According to Can I use, HTTP/2 is supported by 76.62 percent of the browsers used by users in the US and 67.89 percent globally. There are a couple of caveats to these numbers, as Internet Explorer 11 only supports HTTP/2 in Windows 10, and Chrome, Firefox and Opera only support HTTP/2 over HTTPS.

You can check how this will affect your website visitors in Google Analytics by going to Audience > Technology > Browser & OS and comparing to the supported browsers.

You’ll also find that most major server software — such as Apache, NGINX, and IIS — already supports HTTP/2. Many of the major CDNs have also added HTTP/2 support, including MaxCDN and Akamai.

HTTPS With HTTP/2

While HTTP/2 supports both secure and non-secure connections, both Mozilla Firefox and Google Chrome will only support HTTP/2 over HTTPS. Unfortunately, this means that many sites that want to take advantage of HTTP/2 will need to be served over HTTPS.

Fortunately, there are new initiatives such as Let’s Encrypt, which goes into public beta on December 3, 2015. Let’s Encrypt is a new certificate authority that is providing free security certificates for websites. It’s a great initiative towards a more secure web.

Improvements For Users With HTTP/2

Speed, speed, and more speed, providing for a better user experience. As time goes on, and people learn the limits of the new protocols, users should see increased speeds on HTTP/2 connections.

What HTTP/2 Means For Developers

With HTTP/1.1, many techniques were used to speed up websites that are no longer necessary with HTTP/2. These optimizations used to take additional development time and were made to cover up inherent flaws in speed and file loading, but they also caused additional issues at times.

  • Domain Sharding. Loading files from multiple subdomains so that more connections may be established. The increase in parallel file transfers adds to server connection overhead.
  • Image Sprites. Combining image files to reduce requests. The file must be loaded before any image from the file can be shown, and the large image file ties up RAM.
  • Combining Files. CSS and JavaScript files are often combined to reduce the number of requests. This makes the user wait for files before any of it can run and consumes additional RAM.
  • Inlining. CSS and JavaScript code, or even images, are placed directly into the HTML, reducing connections but using additional RAM and delays page rendering until the HTML is finished downloading.
  • Cookieless Domains. Static resources like images, CSS and JavaScript files don’t require cookies, so many developers started sending these from a cookieless domain to save bandwidth and time. With HTTP/2, the headers (including cookies) are compressed, so the sizes of the requests are very small in comparison with HTTP/1.1.

For my fellow geeks out there dealing with REST APIs, you will no longer have to batch requests.

Improvements For Servers With HTTP/2

Many of the techniques mentioned above by developers placed additional strain on servers due to extra connections opened by browsers. These connection-related techniques are no longer necessary with HTTP/2. The result is lower bandwidth requirements, less network overhead and lower server memory usage.

On mobile phones, multiple TCP connections could cause issues with the mobile network, causing them to drop packets and resubmit requests. The additional requests just added to the server load.

HTTP/2 itself brings benefits for a server, as well. Fewer TCP connections are necessary, as stated above. HTTP/2 is easier to parse, more compact and less error-prone.

What HTTP/2 Means For SEOs

With GoogleBot adding support for HTTP/2, websites that support the protocol will likely see an additional rankings boost from speed. On top of that, with Chrome and Firefox only supporting HTTP/2 over HTTPS, many websites that have not yet upgraded to HTTPS may see an additional boost in rankings when they do.

I make this last statement with the caveat that many technical items have to be done correctly with HTTPS, or you will likely experience at least a temporary, if not permanent, drop when making the switch from HTTP.

The number one problem I see with sites switching to HTTPS is with redirects — not just 302s instead of 301s, but placement or writing of the redirects, additional hops or chains in the redirects and failing to clean up old redirects. There are many additional items that need to be cleaned up, such as internal links, external links where possible, mixed content, duplication issues, canonical tags, sitemaps, many tracking systems that need to be changed and more.

Let’s not forget what Gary Illyes said:

There are other reasons besides Google ranking signals that your website should be secure. One most people don’t realize is that when switching from a site using security to one without, the referral data in the headers is dropped.

In Google Analytics, this typically means that more traffic is attributed to direct, when it should actually be attributed to referring websites. HTTPS also prevents ads from being injected on your website, as AT&T was recently found doing with their free Wi-Fi hotspots.

We’ve all seen studies on how slow websites affect conversions and cause users to abandon a website, and conversely how site speed increases lead to increased sales and conversion rates. The important thing to note is that HTTP/2 is faster and provides a better user experience.

Google made speed a ranking factor for a reason, and it will be interesting to see if HTTP/2 itself becomes a ranking factor and how much additional weight will be placed on the added speed.

SEOs, developers, server admins, sales teams and pretty much everyone else should be getting the ball rolling with implementing HTTP/2. There is no downside to upgrading, since if a user cannot load the site over HTTP/2, they will load it just like they always have. Shout from the rooftops with me, or on Twitter:

“Everyone should be making the move to #http2!”

A final note, and an interesting thought from a conversation I had recently with Bill Hartzer at Internet Summit, is that Google may be pushing for HTTPS and only supporting HTTP/2 over HTTPS in Chrome because this will actually eliminate some of the competition from competing ad networks.

Bill said he couldn’t take credit for this idea, but it does make sense. A lot of the smaller networks don’t support HTTPS, so by recommending HTTPS and only supporting HTTP/2 over HTTPS, they are likely gaining more market share in the ad space.

The post Why Everyone Should Be Moving To HTTP/2 appeared first on Search Engine Land.

No comments:

Post a Comment