Simple ways to speed up your website

Having a fast website is very important. As I mentioned in my Black Friday post, nobody likes a slow website and if your site take more than a few seconds to load, the chances are you are loosing visitors because of that lag.

This article contains a few easy to implement tips which you can use to help you reduce the load time of your website.

Keep Your Code Tidy

Unless something goes wrong, or someone chooses to view your source code, most of the people who visit your website will never see any of the code that is stuffed away behind the scenes. That doesn’t mean it isn’t important however. After all, the code at the back-end is what creates the website at the front end.

Minify HTML

Minimising your HTML, CSS and JavaScript is a very easy way to reduce the size of your website. If there is less to load, then your website will load faster. If you use a CMS like WordPress, there are many plugins which can minify your code for you. If you self-code there are websites which will shrink your code for you, or you could go through it yourself, removing unnecessary spaces and tags etc.

Reduce Files Fetched

It is good practice to fetch as few files as possible when loading your website. For example, many sites use separate style sheets for different parts of the website – for example one for text, one for images and another for general layout. Every file that your page calls upon increases its overall load time. Fetching one big CSS document will usually be faster than fetching three smaller ones.

Also consider how many external resources you load – for example adding a Facebook like button will require the users browser to visit Facebook’s website to pull the code across, whilst loading your page. A link or a delayed load on things like social sharing buttons can give you a big speed boost.

Optimise Your Images

Images make your content more exciting, however if you don’t optimise them then they can often really slow your page load time down. There are various ways you can reduce the file size of your images without compromising on quality.

Resize Pictures

When you take a picture, it can often be much bigger than you really need it to be. By resizing photos before you upload them, you can massively reduce the file size of your images. If you leave the file big, but resize it using HTML or CSS – by setting a smaller height and width – then the end user still has to load the big image, and then their browser then has to squash it down to fit your new image dimensions.

Choose The Right File Type

The most commonly used image formats are .jpg, .gif and .png.  Different images lend themselves to different formats. Reducing the number of colours available to a GIF or a PNG-8 image will reduce the files size, whilst reducing the image quality will lower the size of a JPEG file.

Use An Image Compressor

Image compressors are another way to shrink images. Technology Bloggers currently uses a WordPress plugin called WP Smush.it which uses the Yahoo! Smush.it tool to reduce image files.

Example

Here is a picture that I took several years ago whilst in South Africa.

Elephants in South Africa
The full sized image was 3.44 megabytes. Resizing it in Photoshop helped me reduce that to 1.61 megabytes. Because there are lots of colours and the image was quite big, choosing GIF and PNG-8 format made it look too pixelated, so it was between PNG-24 and JPEG. PNG-24 squashed the image down to 831 kilobytes, whilst JPEG compressed it to a tidy 450 kilobytes. Although that is a lot smaller than the original file, it would still take a long time to load on a slow connection so by taking a very small hit on the image quality, I managed to get the file size down to 164 kilobytes. Finally running the image through Smush.it took it down to 157 kilobytes. Some images see a big reduction, most (like this one) see a smaller reduction of just a few percent.

Use A Content Delivery Network

Content delivery networks, or CDNs, can help to improve a websites speed and make it more reliable. Put very simply, when someone tries to access your site, without a CDN they are directed to your hosting provider, who will then serve them your website and all its files from their server. This means that if your host goes down because of a fault, or a sudden surge in traffic you loose your site, and also if your host is not close to a user, it can take a long time for them to communicate.

With a CDN, users can fetch your site faster, because it is offered in multiple locations around the world. Additionally many CDNs can cache a copy of your site, so if your host goes offline, they can provide a static version of your site to users until it comes back up.

For example, Technology Bloggers is currently hosted in Gloucester in the UK. If you access us from Australia, CloudFlare (the CDN we use) will send you to its closest data centre, which could be in Australia, which will then deliver the files you need to see our site. It is faster because your requests don’t have to travel all the way to the UK and nor does the data being sent back to you either.

Control Your Cache

Server Side

If you use a CMS, then the chances are your content is dynamically delivered upon request. Basically, when the user requests a page, your site creates it and then sends it back. By using some form of caching you can create a static image of your site, so your site doesn’t have to create the content each time a user visits it. There are various plugins you can use to help with this, Technology Bloggers uses CloudFlare’s caching system, as I have found this seems to work better than other WordPress plugins I have tried. Also, using too many plugins, slows your site down, hence why I let the CDN manage it.

User Side

A users browser also saves files for later, in case they visit your site again. It is possible to determine what files are saved and for how long these files are saved for, by adding caching headers to your .htaccess file you can change these settings.

How To Test If Your Site Is Faster

Refreshing your page and timing it with a stopwatch is one way to gauge how quick your site loads. This probably isn’t the best way to do it though!

There are various websites which rate your sites speed performance. I tend to measure Technology Bloggers using four main speed analysis sites.

Google PageSpeed

Google are keen for the web to be faster and offer a very useful tool which gives your site a score for mobile load time and desktop load time. It also suggests what it believes is slowing your site down. Google’s tool also gives an image of your fully loaded site – all the content above the fold. Unfortunately, their test doesn’t actually state how fast your site loads, just how well optimised it is.

WebPageTest

Probably the most thorough site I use is WebPageTest, which presents loads of different information, including first view load time, repeat view load time (which should be quicker if you have user side caching), a waterfall view of all the files loading, a visual representation of how your site loads, suggestions as to where performance issues lie and loads more.

An analysis of TechnologyBloggers.org using the WebPageTest tool

Pingdom

Pingdom is another useful tool, it gives a handy speed score and also tells you how fast your site is compared to other sites it has tested. It also saves your speed results, so you can view historic test result speeds on a graph, and see how your sites speed has changed.

GTmetrix

GTmetrix is another useful site. It also gives lots of details, and helps you to see what is slowing your site down. GTmetrix also lets you compare one site to another, which I’m not really sure is that useful, but it is interesting to see how your competitors site compares to your own.

An analysis of TechnologyBloggers.org using the GTmetrix tool

Happy Browsing

Remember to enjoy your new, faster site! Hopefully your visitors will too. 🙂

Is a lazy website key to online success?

Speed matters. Once upon a time, if a business had a website, it was revolutionary. Now in many cases if a business doesn’t have a website, it will usually suffer as a result.

When the internet was in its infancy, speed wasn’t really on the agenda. If your site loaded super fast (remember we are still in the days of 56kbps/dial-up internet access here) great. If it didn’t, people would be prepared to wait.

Nowadays there are so many different websites offering such similar information, if your site is slow, your traffic (or as I prefer to call it visitor numbers, or even better: people) will suffer as a result. There are countless studies into this, almost all of which conclude that the slower a site is, the fewer visitors it has.

Furthermore, speed is starting to become an evermore important search engine ranking factor – if your site is slow, you are less likely to rank at the top.

Okay, you get the point: today speed matters.

The problem with many websites is that they have so much to load. When you load our homepage, it isn’t just a few lines of HTML that your browser requests from our server, it also fetches a handful of local CSS, JavaScript and PHP files, in addition to bunch of images and some large chunks of external code, which are used to generate social media buttons.

This all takes time, and every extra byte and file that is requested will slow down the page load time.

Slim Down

One way to reduce the size of the page is to reduce the amount of files – and the size of those files – that are fetched. We make every effort to ensure that our locally loaded scripts are as condensed as possible, so your browser doesn’t have to request dozens of files, just one or two.

We have also combined several images into one file (a CSS sprite), again, so your browser has to fetch fewer files. Take a look at the image below for an example.

CSS sprite social media

Technology Bloggers social icons CSS sprite.

The trouble is, we only have control over internal files. I can’t go and reduce the Tweet button script and add it to one of our existing files, as it is controlled by Twitter, and served via their servers.

Lazy Loading Images

Sometimes slimming down isn’t enough, so one way to prevent the initial load becoming verbose is to delay the loading of images not in view. We use a WordPress plugin called Lazy Load, which only loads images just before they come into view. So if the page has five megabytes of images to load, and four are below the fold, then when the page loads, you will only have to wait for one megabytes worth of images to load; if you don’t scroll down, the other four never get loaded.

Lazy loading images can significantly help improve page load time, as images are usually the biggest files that a website loads, so only loading the vital ones really speeds things up!

Lazy Loading Social Buttons

As I mentioned above, one of the biggest strains on loading is external code, specifically social buttons and sharing buttons.

For a long time now, the ability to offer you the potential to share content and follow us via social media has come at a high price – in terms of loading time. However after a lot of coding and hours of tweaking, our social buttons are now just a tiny (in size) image.

If you take a look at our sidebar, the social buttons sill look very similar to before – Facebook like, Twitter follow and Google Plus recommend all still there – however they now only load the external scripts if you mouse over them. This removes a huge delay when you first load a page, and means we can provide these buttons on every page of the site, with a much smaller speed loss.

At the top of articles, the social buttons there now also load lazily, and only fetch code from the networks when you mouse over the button images.

Lazy loading sharing buttons.

Technology Bloggers delayed loading social buttons.

Lazy loading social media buttons has dramatically improved the speed of Technology Bloggers, and still enables you to share content when and how you choose.

%CODETWEETTB6%

What is your view on delayed loading?

Is updating Java really important?

This is a sponsored post. To find out more about sponsored content on Technology Bloggers, please visit our Privacy Policy.

What do you know about Java? If the answer is not much, then you are not alone. In this article I am going to explore exactly what Java is, and why it is so important that you keep it up to date.

Java or JavaScript?

Java and JavaScript are completely different things, however many people confuse them as one and the same.

JavaScript
JavaScript is a scripting language (like PHP and HTML) that is used in browsers to help render websites, and is also now used to create [relatively simple] desktop games.

We use JavaScript on our blog. One example can be found in our comment form; if you don’t tick the box to confirm you have read the comment policy and click Post Comment, a box comes up reminding you that you have to tick it to proceed – that works via JavaScript.

You can disable JavaScript, but so many websites use it nowadays, your browsing experience would be significantly affected.

Java
Java is a programming language, which is capable of doing far more than JavaScript. Java can be used to create new programs and applications that run virtually on their own, or via a browser.

Most computers come pre-loaded with Java, as do many other devices, including some cars, printers, parking machines, ATMs and more. A printer doesn’t use JavaScript, as it is a browser based language.

Malicious Java

It is possible for someone to gain access to your computer via Java. All you would need to do is visit a website with malicious Java code on it, and unknowingly to you, you could be being hacked. Some websites allow you to add your own code to their site, (like forum’s for example) so it might not even be a malicious website you are visiting, just one page which contains malicious code.

Oracle's Java logoWhen you visit a page with a malicious Java application, your browser will usually start to run the code, which will open up a direct link between your PC and the hacker – remember browsing the net is a two way process, every time you request data from a server, the server can request something back.

On face value, a page with malicious Java could look completely normal and trustworthy, as you wouldn’t be able to see the code – your browser would render it for you.

Malicious code can give a hacker almost complete access to your machine, via the internet. They could potentially browse through your files and open applications, and even receive feedback from input devices like a webcam and microphone.

Java Update

When Sun Microsystems (who are now owned by Oracle) developed Java, they didn’t plan for it to be used maliciously, and still don’t. Like with most code, hackers exploit loopholes and flaws in the language, to enable them to perform malicious activity.

Oracle's logoLike with any software, to combat malicious activity, when flaws are discovered, developers create patches and launch new versions to protect uses against their installation being misused.

Many of the know ways Java can be used to gain access to your computer are preventable, if you have the latest version installed.

It is important that you not only keep your computers version of Java up to date, but also your browser’s version. Many browsers come with a Java plugin, and this can become outdated, even if your system version of Java is up to date.

You should check to see if your browser’s extensions and plugins are up to date ideally once every week. If you have Premier IT Support, or your computer is updated by an external provider, you shouldn’t need to update Java, as that should be taken of care for you.

Create a Google +1 button for an entire site

About a week ago, I posted about how Technology Bloggers now supports Google Authorship, so that writers can now claim posts as their own via linking them to their Google + profile. This article is also about the blog integrating further with Google’s growing social network: Google +.

Until recently it was not possible to create a sitewide Google +1 button, so that users could +1 your entire website; before you only used to be able to +1 the exact page you were on. However thanks to one of Google’s recent updates, it is now possible to +1 an entire site!

If you are a website/blog owner, then this article is probably going to be of particular use to you 🙂

I have recently added a sitewide Google +1 button to Technology Bloggers sidebar, which sits on the sidebar, next to our other social widgets.

Social media buttonsTo get a +1 button, you need to visit the Google +1 Button customisation page. There you can choose the style of your button, how big it is and the language used. What most people probably then miss is the ‘Advanced options’ link.

Advanced Options

If you click ‘Advanced options’, you get a whole new set of options drop down. One of these options is URL to +1. Usually when you place a +1 button on your site and a user clicks it, it +1’s that exact page. However if you enter your sites URL into the box and then get the code, when a user clicks your +1 button it +1’s your entire site.

Google +1 ButtonFor more information on the URL +1’d when users click your button, please see Google’s URL configuration explanation.

Sharing

When someone clicks +1, they will also be given the option to share the content/page to their circles. Usually Google will fetch the page title, and choose a selection of text and an image from the page users are currently on, however it is now possible to customise this too by customising the +Snippet.

Scroll down the page and you are able to select the type of page users are on, is it a local business, article, book, organisation, event, review etc.? You can also choose the title, description and image of the share. If you have created a sitewide share button, usually the button will offer users to share the current page, however by customising the +Snippet, you can make it so that your chosen title, text and image are what are shared, not the one Google automatically selects.

To implement the snippets you just have to add a few meta tags or some HTML code to your page.

Problems

One small problem I have come across when implementing this on Technology Bloggers is that you can’t successfully run 2 +1 buttons on the same page. That means that if you want to have a sitewide button, so users can +1 and share your homepage, and a button on every individual page, where users can +1 and share that page, it is not entirely possible.

The code of the button determines the URL to be +1’d, so it is completely possible that you can have 2 buttons, 1 for the page and one for the site, however the problem is with the +Snippet and the sharing, as both buttons inherit the meta data, meaning that when you share the individual page, it doesn’t share data from that page, but your generic sitewide text, image and title.

It isn’t really a major fault, and with a bit of clever scripting (and a lot of time) I am sure I could get it to work the way I want it to. I am sure Google will release an update at some point which allows you to have 2 +1 buttons, one for the site and one for the page, but in the meantime, we will just have to put up with it not working exactly as we would like it to.

UPDATE: I managed to resolve the problem easier than I thought. I added the +Snippet to the theme header, however told it only to appear on the homepage. The button is designed to fetch the +Snippet from the page users are on, unless the button is designed to +1 a specific URL, in which case, it goes to that URL to fetch the +Snipped – the homepage, where the +Snippet for the entire site is.

You and +1

So what is your opinion on the +1 button, do you use it in the same way/to the same extent the ‘Like’ and ‘Follow’ buttons, or is it not as important? If you own a website or blog, will you be adding a +1 button to it, and if so do you think it is better to have a sitewide +1 or a unique URL +1 button – or both!