Leveraging Caching for Time-Sensitive Operations

Patrick Davey
Oct 16, 2013

Speed. It's an extremely important metric for judging a site. So much so Google has been bumping up rankings for fast sites since 2010. Amazon calculated that a page load slowdown of just one second could cost it $1.6 billion in sales each year.

Caching content is one of the best ways to make your website faster to respond.

Websites usually display content that changes. In order to allow content to be updated easily the data is stored in a database. When a web page is loaded the server has to go off to the database, load in all the content, work out how it's going to present the information and then send it back to your browser. Usually this process is pretty fast. Sometimes however, if some extra processing is going on things can slow right down.

With our recent DegreeStory website, our client was concerned that the site had become slower as more and more content was added. We looked into it and found that the homepage was performing badly in one particular area (the part shaded brown in the picture below)

New Relic showing the before and after changes when adding caching

In the picture above you can see at 14:20 or so the brown part of the graph (which represents the time displaying each individual story) has almost completely disappeared. What we did was to "cache" the content. What caching (in this context) means is that the first time a story is displayed we save a copy of the HTML and then the next time we need to display it the content is there - ready to go.

The trick with caching is knowing what content to cache and when to expire it. For example, if a user updates the title of a story we have cached, then we need to expire our cached copy so that only the new content is displayed to the next visitor. Fortunately Rails makes this simple so it's easy to shave precious seconds off your page load speed!

Once you have the metrics and know where the pain points are, adding targeted caching can go a long way to improving site speed and gaining a competitive edge.

Join The Conversation

Share and start a conversation about this post

More On The Blog

Ready To Get Started?

Find out how we can help you achieve your goals by booking a free consultation today.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Brand Image