Subscribe to
NSLog(); Header Image

MovableType Sucks

I'm fed up right now. Fed up. My choices:

  • Switch to another blogging package.
  • Remove almost every index from my site.
  • Deal with it.

By "deal with it" I mean the ever-increasing time it takes to do anything on this site. My Computing: Mac category archive page - stripped of everything but the titles and links - takes about 15 seconds to rebuild.

Consider that for every comment and new post, MovableType updates the following pages:

  1. Main Index
  2. Master Index
  3. Category Index
  4. Daily Index
  5. Monthly Index
  6. Individual Entry
  7. Category Sidebar
  8. Previous Individual Entry
  9. Next Individual Entry

Some of those pages render in a second or two. But three or four of them take 10 seconds or more. MovableType rebuilding is N(n) I have heard. Ridiculous!

I attempted to write a PHP script so that all the necessary work could be done (quite quickly) at page load time, but MT's database system is laid out rather poorly. I'd be hitting about five tables just to get a list of all of my "Computing: Mac" entries, for example.

I don't want to go without my archives - but I may just have to. The speed - or hellish lack thereof - is killing me.

47 Responses to "MovableType Sucks"

  1. I'm wiling to put my money where my mouth is, too. I would pay money if someone had a simple PHP alternative for the various types of archives. I could easily shave 45 seconds - nearly the entire rebuild time - from each comment and new entry.

    $50 in iTunes Music gift certificates (or just PayPal) to such a solution.

  2. Laying out your archives more smartly may help the speed. MobileTracker has about 750 posts and it takes about 1 second to post (builds the front page, permalink, category archive, WAP site).

    I personally don't see the point of daily archives. Killing that might speed things up some.

    Limiting the number of posts in a category might help too. I certainly find no use in opening a page with 340 posts on it.

    MTRebuild helps comment speed. But it may be your server as well. The last time I rebuilt MobileTracker (total rebuild), it took no longer than 2 minutes. By my count, it was about 1500 pages. Not bad.

  3. To further clarify, such a solution should probably allow access to the full complement of MT archiving data - # of comments/TrackBacks, date, poster's name, category of the entry, etc.

    I'm guessing I'm not the only person who would gladly pay $50 (or some amount) for such a system.

  4. My daily archives take about two seconds. January's archive took over ten.

    My server is quite capable of doing things quickly, but not when, again, three or more pages take ten or more seconds. This page was last built in 0.57 seconds. The times are under my badges on the right on nearly every page.

  5. More info here at Scot Hacker's blog.

  6. What's wrong with the first option of switching to another blogging package?

  7. Tell me about it. I just reorganized a category with about 50 entries in it. 10-15 seconds rebuild per entry. Major drag.

  8. I am looking for a blogging solution, but everything seems to miss the boat for what I want. Though I can easily extend anything in PHP, I wonder do I want to deal with the database structure that they have. The best thing I have come across so far is pMachine. I am currently deciding between doing some customization to it to get everything I want or just writing my own custom thing from scratch.

  9. If anyone is interested in writing an nice, extensible php/sql blogging system, I'd be very happy to help. It's something I've been wanting to do for a long time, and I have bits and peices I've written, and pulled from other projects I've written.

    I would love to create a new one. If anyone is interested, let's get in touch 🙂

  10. Jeff, to answer your question: all sorts of things, particularly URL schemes that I would rather not change. I'd lose a ton of time trying to get a new system to use this data, trying to incorporate the old data, comments, TrackBacks, etc. It'd cost me, I estimate, around 50 hours of my time, and it's not worth that.

    Vendor lock, my name is NSLog();

    Six Apart has a "fix" they've used in TypePad. "Pro" bloggers use MySQL (the "fix" requires this, not the flat file BerkeleyDB). "Pro" bloggers have a lot of entries.

    What's stopping Six Apart from rolling out this "fix" right now to those with MySQL-driven blogs? I've given Six Apart $50 voluntarily and I'll give 'em $50 more if it'd solve this issue.

  11. Interesting. Right now, I'm wishing I'd put more effort into making a more friendly user-side on my current blog, cause then I'd pick up an easy $50.

    You're definitely not the only one who gets sick of various blogging tools. I actually tore mine to shreds and started all from scratch using PHP/MySQL. Granted, I have not yet incorporated a few of the features in Movable Type, either because I don't know what the features actually do, or because I would never use them anyway.

    The blog, although not quite finished, is quite functional, though. Maybe you should do the same yourself? Making your own tool might take some effort, but it's probably easier than trying to do new things with an old tool.

  12. I understand about the data but I don't understand about the URL schemes.

    Have you looked in to pMachine? They have a MT to pMachine importer that works with 2.2 and higher.

    I use the pro version for various sites when I did web work back in Central Texas (now I edit video, I still sit at computer most of the time so it is not too big of a jump)

    I have spent yet again $45 for another license of pMachine Pro and started to work on my personal site. I tried out Moveable Type first because it has a lot more plugins and hacks and a bigger community but that build time and the admin interface really started to piss me off so I went back to pMachine.

    If you can't find what you are looking for on the MT side and want to give them a try, I'll be more than glad to help you move over to pmachine. Every minute you spend working on a website is a minute you aren't making great software.

  13. Before everyone starts writing another nice, free PHP/MySQL weblogging tool, check out WordPress.

  14. I guess it'd really be a nice experience to write a good MT-replacement in something more sophisticated than PHP/MySQL, like WebObjects or Apache Cocoon...

    Using a nice clustered Oracle-DB instead of MySQL might help improving the speed, too 😀

  15. I've been pondering writing my own blogging system for a while in Java/JSP. Don't know how it would do speed wise though.

  16. Moveable Type's Wall?

    Looks like Eric NSLog() is hitting the Moveable Type wall right along with me. MT has a lot going for it: nice UI, ease of use, great community, a standards-friendly attitude, and a whoop-ass API for plugins. So while I...

  17. MovableType Sucks

    Apparently I am not the only one feeling the effects of MovableType's poor design when your blog grows. Erik is upset with speed issues of his site. I have also been very upset with the speed of my site as...

  18. A Java JSP weblog would be very slow. A PHP driven or a CGI driven weblog (a la WordPress or MT) would be significantly faster. And Chris, I have checked out WordPress. It's very good, I'll grant you that, but I feel like MT offers a little more. My goal (should I chose to actually finish writing the one I started - and if anyone wants to help me finish it) is to provide all the features of MT plus a few more.

    Andy the problem with writing with one of those is of course it being widely used. If you want to write one for yourself and you can host those services (or your ISP provides them) then more power to you. 😀

    I would seriously consider finishing the blogging software I started if I got at least one more person. I need someone to bounce ideas off of. If anyone is interested, let me know (you can email me at vinay at vinayvenkatesh dot com.

  19. Movable type slowdowns...

    One thing some folks have come up against: Movable Type doesn't seem to scale well to larger sites. Here's the latest complaint. This is something I've noticed here -- rebuild time takes longer and longer, to the point where browsers time out and I get...

  20. Would it help if you pulled out the frequently updated elements of your pages and inserted them as server side includes? That way they can be updated in isolation to the rest of the page.

    Naturally you may be already doing this...

    Or are there pitfalls to this approach I don't know about?

  21. Best of luck solving your rebuild problems, but if you do decide to try another blogging system, WordPress (mentioned earlier in this thread) has full MT import capabilities and there are several methods for making sure none of your permalinks break. Feel free to email me directly if you have any questions.

  22. vinay: Cocoon at least (I don't know about WebObjects) does some heavy caching, so the thing is blazlingly fast in everyday use (believe me, I'm working on a very complicated web page run on a G3/300, the first page build takes a little, then it's like a static page.)

    Of course, having a working blog on your own server for demonstration purposes would surely give someone else a reason to switch to it, too.

    Erik would technically be able to host both evironments on NSLog(); (even next to each other), if he'd get himself more into UNIX stuff (hint hint nudge nudge)...

    Well, one of my main problems with writing a blogging software is, that I wouldn't use it myself...

  23. I'm glad everyone is giving opinions of their blogging software. That discussion is very, very valuable. However, switching to any blogging package will take at least 20 hours of my time to get to the same level of proficiency I have with MovableType.

    Since a fix is coming, a solution in the interim may simply be to disable the indeces for daily, monthly, and category and see how that goes. I've just done this.

  24. That comment post took about 10 seconds - far better than 35 or so.

  25. Erik - I'd bug Six Apart about this bug (and it is a bug, as in "something they should have done earlier and certainly not something which should require additional payment"). Unless it's running on an old Pentium 100 somewhere this is a sign of poor programming. It might be interesting to profile their code and see what it's doing - based on the description of the fix it's probably either a poorly-designed query (extremely likely given given your description of their table structure) or an abstraction layer which isn't as smart as it should be (I've seen this sort of thing turn a single query into thousands because of a seemingly-minor change).

    andy - the environment doesn't matter for the extremely small data sizes and traffic levels of any blog. By now it's rare to find any normal database driven website where the performance bottleneck is the underlying programming language rather than the program. Things like Java/WebObjects/Oracle are described as "enterprise" products but that really means more complex, not faster - in fact it almost always means slower because what it really refers to is the additional complexity required by legacy environments and extremely complex systems with tons of people working on them, neither of which is true in this case. The problem with these products is that they require a great deal of additional knowledge and experience to install and use, particularly for performance tuning, and you have no choice about taking that hit whereas a simple PHP/Perl/Python+MySQL environment only requires you to take that hit if you actually need it. A great example being database access where merely going through something like ODBC / JDBC can decrease performance by a factor of ten compared with the native drivers - worth it if supporting tons of different databases is more important than performance but not such a good tradeoff if you only support one or two databases anyway and never more than one in a given installation - and that's just for relatively low-level assistance. Higher-level database abstraction layers can be even worse.

    For the small amount of data and traffic any normal blog has there shouldn't be a difference - the skill of the programmer is far more important.

  26. Hi Erik,

    Check out Rick Ellis' brand new product ExpressionEngine.

    It's awesome and if you're looking for speed, this is probably your best bet.

  27. I spat my thoughts out on this matter a while ago. I'm looking for something that doesn't seem to exist however: a blog independent of any particular template engine.

    I had a good look at all the stuff on offer, using the opencms site mostly, but nothing fitted the bill. In the end I went with MT for sheer full featuredness. Also I liked trackback alot. bBlog looked like a good bet, but as I suspected, it seems to have died a death of late. Maybe we could all get something together between the unhappy customers on this board?


  28. What do you mean "independent of any particular template engine"?

    Does that mean something like movable type, where there are some MT specific things?

    please explain.

  29. Rebuild times are something we're paying a lot of attention to, and if it's a big issue for you right now, I'd suggest either using PHP to pull entries out dynamically (most of the required PHP scripts have already been written by the community and can be googled up online) or you can use the undocumented mt-view.cgi script included in MT to have MT dynamically output pages.

  30. Hey Elwin is pMpost going to be updated for ExpressionEngine or are you going to offer a new product?

  31. I am taking a serious look (via proxy) at ExpressionEngine today. This post is what's holding me back. Mark -- we are actively developing an import script. We hope to have it finished in a couple weeks. $200 for a...

  32. Erik, sorry about abusing your comment page to answer Jonathan 😉

    Jonathan, as you might have noticed EE is a totally modular system that allows you to specify your own input fields, select boxes, dropdowns etc.

    I would love to build an app that works with EE but it has to have a totally dynamic UI and add these fields and their 'functionality' at runtime. The interface can be different per weblog, per user!

    This might sound like an easy thing to do to Erik, er.. Erik, feel like helping me out with this?



  33. I'm fairly busy this days, so I think I'll have to pass.

  34. Not to add to your woes but I think that you have created a slight bug for yourself.

    It appears that you are only rebuilding your daily pages on a full rebuild. However, the calendar lets one link to a day where there should be a daily page.

    Does that make sense?

  35. Steve, I know. Fuggit though. Until Six Apart fixes their steaming slow pile of poo the calendar is broken. So be it.

  36. For what it's worth, I too was getting sick of the whole rebuild issue. I used a little common sense and fixed my issues. I took my complete rebuild time from 11 minutes to 48 seconds. Posting times are still a little longer than I would like them at 3 seconds.

    If you're already running php (which I see that you are) the sum total of the changes shouldn't take more than 20-30 minutes.

  37. After e-mailing with Erik, he's fuxored. 😉 He was already doing what I was doing. Which was creating indexes for ALL types of archive lists and simply using PHP to pull the info. I used the mantra "never create a list outside of an index" What had killed me was the date-based archives. Once, I changed those over, my times fell drastically. Oh well. For those who hover in the 300-500 posts range, it's worth the change.

  38. Movable type slowdowns...

    One thing some folks have come up against: Movable Type doesn't seem to scale well to larger sites. Here's the latest complaint. This is something I've noticed here -- rebuild time takes longer and longer, to the point where browsers time out and I get...

  39. Movable type slowdowns...

    One thing some folks have come up against: Movable Type doesn't seem to scale well to larger sites. Here's the latest complaint. This is something I've noticed here -- rebuild time takes longer and longer, to the point where browsers time out and I get...

  40. Choice

    For a couple of days now, I've been carefully considering the pros and cons of using WordPress and Movable Type, respectively. Before even considering leaving Movable Type for another product, I certainly want to know what it is I'm leaving, and thus u...

  41. [...] the primary module on the site. Oh, and I’d like to take this moment to mention that I hate MovableType. Filed under: [...]

  42. Linked templates are powerful and good to use if you have a lot of blogs in MovableType but they are at the same time tedious to set all your templates up to use them. But instead of spending 40 hours updating 10 blogs that use the same templates you'll only spend 10 setting them up and rebuilding, and once they are setup with linked templates its good to go with just a rebuild for each blog which will only take and hour or so for 10. We have over 50 blogs at work and many use the same template, and we have about 2 main types of templates and then 2 or 3 custom ones. You can imagine what I deal with I get new template changes :p but we have to use the static build ones rather than dynamic. Luckily its just once a year. MovableType is very slow though, 4.1's search is a lot faster than 3.0 though.

  43. Movable Type's biggest problem is that they do not have a mass delete function. I have 80,00 entries at my website. I cannot clear them out in MySQL because of the poor design of the MT database (and no documentation available). MT's official recommendation is to delete old entries by hand, one at a time!


    Yep, 80,000, one at a time!

    If anyone knows of an outside tool to do proper entry dletion of older articles in MT IN BULK please email it to

  44. Try WordPress.

  45. [quote comment="50675"]Try WordPress.[/quote]

    You're a bit late. 😀

  46. Thanks for the feedback.

    I switched to Drupal and I am not looking back.