Making a super fast blog with Drupal 7

Yesterday I decided to try to make my blog to load under 200 ms from my laptop using Drupal 7without loose my old links to blog posts, from SEO reasons. I know, some people would say there are better solutions for a blog others than Drupal, but… I wanted to give a try to Drupal because it has one of the biggest community, a lot of modules and features and of course for fun.

So, first step it was to install Drupal 7 on a separate domain and to do all the work there.

First of all, I needed the content from my old WordPress blog, so I exported it as WXR file. In Drupal, I installed migrate module. With this module I imported all the content and everything went smoothly. The URL Alias module made for every post an alias so, the links to the old blog posts are the same. Having not so many posts, I prefered to review them manually and fix some design/formating problems. One of the main problem was with the syntax highlight of code snippets from my blog posts. In order to have syntax highlight on Drupal, I installed GeSHi filter module following the video tutorialHighlight Code With GeSHi Filter In Drupal 7.

As a theme I wanted something simple as design and that it will load very fast. Skeleton theme seemed to have these features.

Another request it was to have a rich-text editor so I decided to use CKEditor. I had to choose betweenWysiwyg and CKEditor module. Anyway, for both, you need to download CKEditor separatelly in sites/all/libraries. I chosed to use CKEditor, due some bugs in Wysiwyg (could not detect CKEditor version and some code changes were needed to be made).

Another important module I installed it was CDN Module because I had in mind to use a CDN to lower the number of the requests for my static files (CSS, JS, images, etc) to my web server. You can read a short comparison between few of them on Halothe23 blog.

After I configured the CDN module, I enabled also all the caching options for Drupal, from Configuration -> Performance.

Applying all these I managed to load the first page of the blog in 1.74 seconds at the first view, and 0.65 seconds for the second view, according to webpagetest.org. The test was made using Google Chrome, from Los Angeles, US.

Of course, there are many other options to speed up your Drupal website, starting with opcode caching like APC, content caching like memcached and Varnish, database optimisation, and finishig with code optimisation in Drupal.

One good book about how to make Drupal to scale is High Performance Drupal by Jeff Sheltren, Narayan Newton, Nathaniel Catchpole.

Leave a Reply

Your email address will not be published. Required fields are marked *