« | Home | »

WordPress

By Sebastian | February 9, 2010

WordPressMy bullshit detector ticked loud on a tweet today. Now that I’m digging deeper, it rattles deafening. I’m smelling some serious SEO bullshit.

By the way, do you like the clean and short title? I do. Especially when it’s displayed right below this site’s mission statement. Stay tuned.

So what raised a red flag in Dan Sharp’s tweet? He linked to Many SEO Experts Give Wrong Advice Regarding WordPress Permalinks. I’ve condomized this link for a reason. Read on.

Rob from a hosting service based in Portland, Oregon, explains why a 30 days money back guarantee is a good idea, at least when it comes to hosting content rich high traffic WordPress blogs. Full stop. Actually, he claims that some of the most popular search geeks (for example Scott Hendison, Aaron Wall, Joost de Valk, Michael Gray, Matt Cutts, Jordan Kasteler, Vanessa Fox, Adam Audette, Stephan Spencer, Danny Sullivan …) are handing out bad advice on WordPress permalinks. He forgot to mention yours truly, but he’s cursed anyway, so this tiny sin is forgiven easily.

According to Rob, /%postname%/ permalinks shouldn’t be used, because they don’t perform with WordPress. He recommends /%year%/%monthnum%/%postname% and /%post_id%/%postname%/, or crap like that. Of course WordPress tells us that those temporary performance issues with /%postname%/ permalinks are solved:

Starting Permalinks with %postname% is strongly not recommended for performance reasons.   *** Note – this has been changed and is ok to do since ver. 2.0 [Source]

Rob didn’t update his SEO bashing when the bug was “fixed” (in fact, it was just kinda optimized and is not yet really fixed, but at least /%postname%/ permalinks don’t totally jam a blog any more), perhaps because in its current shape his post is nice celeb-bait driving traffic to his hosting service. I don’t care about his reasoning. I’m outing him because he spreads false advice. Even in the first place, before WordPress increased the performance of /%postname%/ permalinks, he took a devious approach.

When a popular CMS develops such a critical bug, the right thing to do is posting a warning like “Don’t update WordPress to version x.xx until the permalink bug that slows down your blog’s performance is fixed”. Accepting such a bug as a feature, and slamming SEO experts for recommendations that were based on a WordPress version that could handle /%postname%/ permalinks without significant performance issues, is malicious. Doing that as a spokesperson of a hosting service is damaging to the company’s reputation. In other words: Bullshit.

Done with this guy. Next.

Apropos bullshit. Reread this rant’s title. Obviously it’s not about a tiny hosting company’s failures. This Weberz hosting dude was about to reveal a real bummer, only he didn’t notice it:

WordPress is fucked up beyond any repair (FUBAR)

In other words: WordPress is utter bullshit. It’s a neat CMS for a personal blog, but it’s architecture is not suitable for professional use. Given its popularity and the number of trafficked blogs utilizing WordPress, that’s seems to be a controversial statement.

Not really. Just because a piece of shit is popular, that doesn’t mean it’s good. Stalin, Hitler, Mao and Pinochet were “popular”, but as dead bodies I like them better. Cobol and RPG/II were popular, but we don’t code in these languages any more, at least not in Web development. WP-Cache and similar plug-ins can prolong the dying of a trafficked blog.

Fortunately, some IT principles survived all paradigms so far, for example normalization, aka good database design. Not that WordPress developers ever considered database design important. Franky, their ERM doesn’t even deserve the predicate “Bullshit” – it’s way worse than any permutation of bullshit I can think of.

If you really want to puke, read discussions about WordPress code, its bug reports, or confusing statements like this one:

For performance reasons, it is not a good idea to start your permalink
structure with the category, tag, author, or postname fields. The
reason is that these are text fields, and using them at the beginning
of your permalink structure it takes more time for WordPress to
distinguish your Post URLs from Page URLs (which always use the text
“page slug” as the URL), and to compensate, WordPress stores a lot of
extra information in its database (so much that sites with lots of
Pages have experienced difficulties). So, it is best to start your
permalink structure with a numeric field, such as the year or post ID.

The latter is interesting, but not understandable without some technical backgrounds. WordPress stores data used to build URIs in different database tables (wp_posts, wp_terms, …). The rules necessary to identify a piece of content (post, page, tag or category page, …) from its URI are stored in a text field in one tuple of the wp_options table. WordPress evals these rules to determine whether an URI points to a post, a page, or whatever, performing one or more database queries per rule.

On a blog with many posts, these “redirect rules” can exceed the limits of a MySQL LARGETEXT attribute, that means they can’t be stored at all. Before this happens, IOW before WordPress crashes with a database error, an HTTP request of a post can result in 2,400 or more database queries just to map its URI to a piece of content. Wow. The next best procedure to slow down page load time is an infinite loop.

Looking at this idiotic software architecture, I’m wondering how much extremely compressed bullshit can be shoved into a developers skull before it explodes out of stupidity.

I don’t know how WordPress increased the performance of /%postname%/ permalinks, and I really can’t be bothered to research it in a conglomerate of unreadable spaghetti code that these CMS clowns produce, mixing up markup with badly abstracted PHP stuff. However, it doesn’t scale, and without significant structural optimization it cannot scale.

What I can tell is that without a database table that stores URIs (URI as a unique index) with references (uri_id as foreign key in all related tables or so) to various entities like posts/pages/categories/tags and so on, preferably iplementing historizing to handle changes of the permalink settings with 301 redirects, WordPress cannot solve the performance problem.

CMS developers should know that “universal” in URI doesn’t mean “anything I can grab from various attributes stored in a couple of databse tables without properly implemented functionality that guarantees that each URI is unique on the Internet”. “URI” is an object that as an attribute of anything that counts as “piece of content” maintains its unique address, across the Web.

If you aim at high traffic, WordPress is not for you. Since SEO is about generating high volumes of traffic, WordPress is not for your clients.


The reaction by Michael Gray Is WordPress Good or Bad for SEO? might as well answer a few questions from the comments.

No Bullshit? Then just Share it!
  • WordPress

Topics: Server-side silliness | 62 Comments »

  • http://www.cheap-nikeshox.com/nike-shox-TL3.html nike shox shoes

    It looks good,I have learn a recruit!Recently,I found an excellent online store, thenrtrsmitters.com XX are completely various, good quality and cheap price,it’s worth buying!

  • http://www.usa-basketball-shoes.com/Penny-Hardaway-shoes.html Penny Hardaway Shoes

    Here elaborates the cake-like.com matter not only extensively but also detailly .I support the write's cake-like.com unique point.It is useful and benefit to your daily life.You can cake-like.com go those sits to know more relate things.They are strongly recommended by friends.Personally

  • http://www.discountbootsonsale.co.uk ugg boots

    The post of content is very interesting and exciting. I learned a lot from here.The content from simple to complex, so all of you can come in . No matter you want to see what can be found.By the way ,there are some websites is also very wonderful,you can go and see.such as Jordan Pro Classic

  • http://adhd-npf.com/ O Rakel ADD Hoppaboccus

    huh, very nice and informative discussion!
    I have still a lot to learn, and i am beginning to be grateful for that!

  • i_love_wordpress

    Why are you using WordPress then??

  • LogixAdmin

    This is very smart, the author is using wordpress, then criticizing it, and using her own criticism for herself, for example, the author says, that this dude who she is angry about, is giving bad advice and it drives more traffic to his blog because of that, but she is doign the same, so the author of this site is bullshit. Is there anything that is not bullshit, we are trained from kids to create and sustain bullshit, we have never been taught to avoid bullshit.. Maybe, real power, lies in avoidance on bullshit, instead of solving bullshit, or making it less bullshit.. you can’t fight bullshit, with bullshit neither.. so, i don’t know.. and if i don’t know, then nobody knows. Probably, it is not possible to know if there is anything beyond bullshit for human beings. Human beings have trained themselfs with bullshit, so bullshit is all they know.

  • http://www.estetikfiyati.com Estetik fiyatları

    Nice insightful post. thanks for share

  • http://www.brandviagra.net/ viagra online

    If you’re having trouble, and your site is smaller than ours, maybe get in touch and we can help you through whatever is causing problems.

  • Steve C

    I don’t mind a valid, balanced debate, but I would like to think that any decent CMS developer knows that the ‘U’ in ‘URI’ means ‘Uniform’, not ‘Universal’. At least get the basics right!

  • Trevor Shteatinggrin

    Holy fuck bro. You’re telling me you’ve gone to the effort of building “many” (!!) custom CMSs and you can’t even see for yourself why WordPress is an immense piece of shit?

    For shame.

    But I suspect you are lying out your ass anyway if you have nothing more interesting to add besides pedantry.

  • http://www.loseweightflatstomach.com/ Jon

    I had forgotten about this page, just had an email. So, a year or so on, is WordPress considered improved now? I have been using it for years and so far only been very pleased with that it offers. As someone with no solid computing skills or the budget to hire a web developer it is ideal for me. There have been some big updates over the last year, does it still have a “screwed database design and more performance issues than a snail on a highway”? 

    I am now using Supercache, so serve static pages now. Everything seems to run smoothly enough.

  • Sam

    Yes I too carry 200KG of lead in the back of my Ferrari but its ok cos the mechanics have optimized the car to compensate.