User blog:DaNASCAT/Going Up To Speed On Wikia's Performance Initiative

If anyone has ever had a five-minute conversation with me, they're pretty much guaranteed to know two things about me. First, I love working here at Wikia. Second, I'm a big NASCAR fan. Thus far in 2013, I've worked as a travelling photographer at twenty-five different races and know the sport inside and out.

Whether or not you're a fan of racing, just know races are ultra-competitive competitions. Teams spend hours of testing on the track, in wind tunnels, and pouring over notes because the tiniest bit of extra speed goes a long way. 500-mile races often come down to tenths if not hundredths of a second.

As it turns out, Wikia is a place where split seconds matter as well. While our sysops and long-time users measure community health and activity through page counts and page views, our engineers measure Wikia's overall health in milliseconds. Shaving fractions of a second off the average amount of time it takes to serve a page to our users adds up as we are serving thousands of pages a minute off our servers. The less time it takes to serve a page, the more volume our servers can handle. I'd like to explain to you why Wikia's technical performance is so important and then share with you some of the things Wikia has done lately to improve our site speed.

How Does Performance Affect You?
How long it takes for you, as a reader, to be able to have an article load on your computer or mobile device is important for a number of reasons. First and foremost, your perception and enjoyment of a site often depend on how long it takes for a page to load. If you view a website as ‘slow,’ the less likely you are to keep using it.

On the flip side, if a web site loads pages at a fast rate of speed, you not only will have a more favorable view of the site but you will also get to read more of the site in less time. And when we have wikias with tens of thousands of pages, there’s definitely a lot of reading to get done!

But more than that, site speed is also important for your communities’ search engine ranking. Most web search companies, such as Google or Bing, do use site speed in their ranking algorithms. A slow site with more information might find itself below a faster site with less information. Wikia already has some of the best SEO tools you’ll find on any web platform, and so we continue to focus on site speed and performance as ways to ensure your wikia shows at the top of search indexes.

How Wikia is Working on Performance
With all of this in mind, Wikia has been hard at work in recent weeks to refactor some of our code to maximize speed and performance. Every engineering team on Wikia, from the team working on the Darwin initiative to our Platform team to even our Mobile team, will be spending at least two weeks in the final months of this year working solely on improving performance. Some of these changes will be noticed by you, our users, while some of these changes affect the backend configuration of our site.

Here are some changes you may have already noticed:
 * The lazy loading right rail. Lazy loading, at a high level, means that after the primary parts of a page are loaded, other supplementary parts are loaded on demand. This means the page itself will load faster and parts of the page “below the fold” (parts of the page you have to scroll down to see) may not be loaded if they are not needed, minimizing the load on the web server.
 * For example, Lazy Loading the right rail decreases the amount of HTML served on page load by 15-25% per page, improved the JavaScript onLoad action time by 40%, and improved general page serving by 20%.
 * We also released a lazy loading Table of Contents. This has improvement page serve times by approximately 3%.
 * We have replaced PNG for JPG in thumbnails generation for avatars. This has improved image serving times by 35% on those avatars.
 * Re-worked caching on the Chat modules (2% improvement) and Wall/Forum notifications (6% improvement).
 * Tweaked how page submission works when saving a page that containing images. This change has improved the amount of time it takes to save pages by 15%, creating a faster transition from your edit view to your page view.
 * Our mobile team has been trimming the amount of HTML being served on the mobile skin. Thus far, we have been able to serve 5.5KB less per page, which equates to a 1-1.5% improvement on page serving.

Moving Forward
Performance is something that Wikia progressively considers when building new products or features, even as we continue to work on improving the features that already exist on our site. Performance is a tricky wire to walk, as it’s important to make sure we can continue to offer to our users the ability to create content and shape their communities with as much flexibility and functionality as possible. New features inevitably means more code to be generated and processed.

As admins and users, you can also help with your wiki’s performance. In terms of page structure, sometimes it makes more sense to split information out into subpages instead of trying to place a bunch of information on a single page. For galleries, make sure that an image truly belongs in a page instead of sticking it in a huge gallery just to have it someplace. Both of these two concepts not only improve performance but improve the general readability of a wikia to your visitors.

And if you’re using complex and powerful features like Dynamic Page List or Variables, make sure you're following those extensions own suggested coding methods to maintain performance.