Frank Under Fire—How a WordPress Theme Designed for Speed Performed Under High Traffic Conditions

I wrote an article for Smashing Magazine a few weeks ago showcasing Frank. As was expected, my site got bombed. Since Frank was designed from the ground up to be fast, I wanted to share the results of how Frank performed on a high volume traffic day. It’s important to know that my site is hosted on a medium-tier VPS with no CDN.

Real Time Traffic

The site saw a pretty large spike of traffic (we’re not talking Reddit or Hacker News scale, but still significant). The results exceeded my expectations.

The Nitty Gritty Details

I was confident that my site would do well under significant traffic, but you never know. It would have been quite ironic if an article showcasing a high-performance WordPress theme breaks that very theme. The actual numbers were amazing.

Global Performance

Globally, pages loaded at an average time of 1.73 seconds with ~55.9% of page requests loading in one second or less and ~90.7% of page requests loading in 3 seconds of less.

US Performance

U.S. traffic was even more impressive. Pages loaded at an average time of 0.94 seconds. ~75.1% of page requests loaded in one second or less and ~94.1% of page requests loaded in 3 seconds or less. Not shabby.

The thing that interested me the most was the server bandwidth load.

Server Bandwidth

At its max, the server was sending ~91.9 KB/sec and was averaging only ~18.2 KB/sec. Those numbers wouldn’t max out my home DSL upload speed.

It’s only fair to mention that a lot of this was due to ample server caching and and a great web hosting service. But a lot of these numbers are due to Frank—I couldn’t be happier.

Why Frank Matters

Blogging is ultimately about sharing ideas with the world. We have tacked on a bunch of superfluous additives to the medium, but when boiled down, it’s still about sharing. The more weight we add to our blogging platforms, the more we get in the way of sharing – both from the writer’s and reader’s perspective. Frank was created to remove those barriers so that writers could rely on a performant blog (even on a low cost web host) and so readers weren’t forced to wait for a site to load just to wade through excess. Publishers shouldn’t have to purchase expensive web hosting plans and/or CDNs to share their ideas with a large audience. The process of sharing is what makes the Internet so unique. I wanted Frank to support that process.

Help Us Out

Frank is in a good place, but there’s still a lot to do. I am committed to continuing to improve Frank, but I could really use your help. The best way to contribute is to use the theme and either log issues for bugs and feature requests. The other way to help out is to fork Frank and take on some open issues.

The coming weeks should see a lot of improvements to Frank. I will soon begin the process of creation automation tools for developers. I am planning on making another big optimization pass on the CSS with a goal to drop the CSS file size by 5-10 percent. I want Frank to be the poster-child of performant WordPress. If you’d like to help, I would be grateful.

12 thoughts on “Frank Under Fire—How a WordPress Theme Designed for Speed Performed Under High Traffic Conditions”

  1. Would your Frank Theme work with Google Adsense ads?

    What happens to the ads when the theme turns to the mobile verison?

    I’ve spent the extra money for a very fast server, MAXCDN,W3 Total Cache and thousands of dollars on developers. I’ve changed the theme three times after converting from Moveable Type.

    Recently there was a hack/vulnerabity in W3 Total Cache that we beleive made load times go up to as high as 20 seconds. Time to first byte was up to 2 seconds. Updating W3 Total Cache solved the problem but it took me a week to figure out.

    Now SEO guys are telling me if is not under 3 seconds to download, Google won’t send it traffic.

    Wireless and Mobile News can’t survive without ads to pay for the expensive hosting and editor.

    Will you be making a commerical verison of the theme? Will it work with most of the recent plugins?

  2. thanks very much for doing this theme, i love the simplicity of it. i have uploaded and would like to make my site look exactly like yours, is it possible you could outline the steps make the frank download look like yours, i cannot get the latest post to be large like yours and then the subsequent posts to be a more regular size. many thanks

  3. Great post. Glad to see Frank gobbling up visitors with barely a scratch! I need to start thinking about a lighter weight system I really am not a big fan of the theme I’m using now. I think over this weekend while the snow blankets us here in the Northeast I’m going to take Frank out on a man-date and see what happens.

  4. Kudos, very nice job PJ!

    I’d be very interested in some posts explaining not only what you did but how you made the theme so fast. I see on the SM article the bullet list of topics you addressed. I think the community would really love a good look at each of those bullets closer to learn from this and make the whole internet faster.

  5. Hi P.J.
    I love the speed of Frank. It’s the only theme I use.
    The only thing is the stylesheet with almost 2000 lines of code.
    I would like to see some explanation instead of short descriptions like “/*Mobile*/” etc.
    I didn’t try the child theme yet. I have to understand how it exactly works first.
    Thanks for Frank…

    Greetings From the Netherlands
    Y. Saka

  6. Thanks for the analysis, especially since I’m looking for a lightweight theme for a text-heavy project that I’m working on. You wouldn’t believe how difficult it’s been to find a clean theme, so I’m definitely going to give Frank a try. I’ll let you know how it goes!

Leave a Reply

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