Speeding Up MovableType


Movabletype can be slow. One reason for that is categories. Movabletype's default templates create one big huge index with all of the entries from the category. I've got one category with almost 1000 posts. I found this bit of wisdom from Tom Sherman on optimizing your templates.

The basic idea is to annotate the MTEntries tag with a lastn="10" attribute and then add another MTEntries block that just puts the title and permalink for the rest. I decided to test a few options.

  • The first option was to do nothing. Use the default templates.
  • The second option was Tom's method. The only change was I put 20 full entries instead of 10.
  • The third option was to add excerpts in addition to the titles in Tom's method. This makes for a more helpful page, but you have to calculate the excerpts (unless you add them for every entry).
  • The fourth option is to just put the last 20 entries and forget about the rest. That's what the search box is for, after all.

I timed how long it took to rebuild all of my category pages with each option. Here are the results:

  • default - 65 seconds
  • Tom's method - 40 seconds
  • excerpts - 58 seconds
  • last 20 entries - 27 seconds

So, you can shave 39% off the rebuild time with Tom's method. Using excerpts is not significantly better. In the end though, I went for speed because I'm not convinced how useful category pages are on my blog. They don't get many page views.

I've actually been thinking of doing away with them all together and just using keywords (which I add to each entry) to create tags for my blog. As an aside, to make adding keywords easier and ensure I don't forget, I modified $MTHOME/tmpl/cms/edit_entry.tmpl to move the keywords box right under the title box. That helps a lot. I use George Hotelling's Technorati tag plugin to generate tags at the bottom of my individual archive pages that have the right Technorati links.