These days I’m not as lenient with comments on my Wordpress sites as I used to be. Letting junk comments flood your pages with text that is useless to anyone but the author (such as “great job with this post”) takes away from comments that are engaging and helpful later down the page.

Of course, if you are a blog owner I assume you’re already dealing with comments that you know had to be hand written. Since there are so many options for comment spam protection: 5 Spam Blocking Posts

Footer Importance - Even though we tend to not put a lot of weight in what is in our footer, I would wager that the most basic of links you have down there are more important than someone’s praise to take up another 200 pixels of scrollable height on a post.

Proper Channels - If you like the post, use the contact form so it doesn’t look like you’re spamming your website URL. Also include more than “great post”. Google analytics can easily tell us what posts are “great” based on traffic. If its worth posting a comment, its worth emailing us with the exact reason of why it was so great. What did you do with the information? What were your results if it was a test or tutorial for something? This information WILL help the author. More often than not I will do follow up posts once I’ve accumulated responses and include your name& url in that! Not everyone does this and it might not happen for every posts. But if your results are unique, and if you summarize your own posts about them, I would link to that too! Also, I notice emails and respond to them with more weight more often than comments. Especially when its personal feedback.

What Is A Good Comment?

A good comment is:

  • Coherent and thought out - Reread what you write before posting. I’m not great with grammar and spelling at times but if its horrendous, its going to rub off in a bad way on you. No matter how much of an expert you are at what you do.
  • Spell check! (Firefox has built in functionality for this, no excuses). More info here: Firefox Spellchecker
  • Is at least two sentences - Not that once sentence cant provide quality, but on average I find it to be rare that it does.
  • Adds value to the initial posts by responding with your own results, adding to the post, or correcting/clarifying a part of the article.
  • Asks a question about the post that is not so basic that you cant EASILY find it in Google. If you can, Google it, and use that as your comment! Coming to the table without any basic research at all can often make you look like a fool. That can reflect on your own blog if you leave a website URL with your comment.

Following these practices could open unforeseen doors when used on the right websites. The effort is greater but so is the prize. To many, that is a better wager than a limited and predictable outcome which will more than likely end with your comment being marked as spam and deleted. Which means zero price and an effect that lasts onto other blogs if they’re using something like Akismet.

Inside The Relaunch Of Gamegate2k.Com

I’ve been distracted from this blog for a bit. For a reason which now you’ll see. Gamegate2k.Com had its relaunch after a significant amount of custom coding in Wordpress. I started development in Wordpress 2.7. 2.8 came out shortly before the release. I was able to upgrade with only a 2 hour setback worth of bugs.

The most impressive features on the new site have to do with the way the menu’s dynamically generate on each type of template page.

Wordpress by nature lends itself to having expired content which is buried within its archives. Some users don’t even enable the archives in their sidebar.

I really don’t like that content model at all. So I set out to change it and I used the redesign of gamegate2k.com as a proof of concept.

By allowing sectioning and paging abilities on the combination of tag AND category pages you no longer have to rely on users finding old pages through a search engine. Something many bloggers notice after sometimes a few months of posting.

In some cases bringing in a new custom taxonomy can provide a further dimension of this. Combined with proper menu output, it is a powerful way to turn a blogging platform into a CMS with “real” website qualities.

Old vs New Design

The old design was a very simple php includes base design. The site had been around for close to 10 years without too many enhancements. There was no backend.
gg2k.com before

The new design in Wordpress 2.8.
gg2k.com after

Features List

Unique features that were customized specifically for this site:

  • Intersection of tags and categories - http://gamegate2k.com/game/freelancer is a category page for freelancer and http://gamegate2k.com/category/guides/ is a list of all things tagged “guide”, then the “section” on both of those would result in a list of just freelancer guides. Like so: http://gamegate2k.com/game/freelancer/section/guides/ (Note: I renamed tags to be “categories”).
  • SSO Forum - Single Sign On with bbPress.org Forum. Forum was converted from a vBulletin 3 forum which used to be here: http://virtualfragment.net (I’m repuposing this domain in the next few months). There is no way to quickly convert vBulletin to bbPress. I had to literally map each sql column with my own script and automate it from there.
  • Alternating background colors on content bars - Rewriting function for the class tags that get output or completly calling a custom query/output for display.
  • Super Cache with dynamic integration - This was necessary to make my custom captcha on every page work and for future features that need to be more dynamic.
  • Category display with tag listing of which were only used in that particular category
    Custom plugin output
    - Usually accomplished with a custom query. Mainly done for performance improvements and modified layout from what was available out of the box.
  • Jquery Sidebar Menu - Menu automatically expands the section you are in when on a single page/post.
  • SEO Titles - On a per case basis the title will modify itself to include all category/tag/titles on posts or sections.
    Auto SEO Meta Tags - On single pages the title is analyzed and a dynamic list of meta keywords and description is created on the fly. It does this in conjunction with category and tag assignments on a post to automatically create long tail keywords.
  • Seperate caching (outside of SuperCache or in addition to) for intense queries. For performance gains. The games list output with tag relations on a per category basis is using this for example.
  • Captcha - This captcha is custom and an improved version of
    Enhanced Numbered Equation CAPTCHA - Killing Web Spam - Part 2
    to work with (excluded from) cache properly.
  • Dynamic menu generation - Based on current category, tag, or combination of the two.
  • Dynamic video generation - If videos for that section exists, display the most recent, otherwise display a random selection of one of the 3 most recent videos added on the site in any category.
  • Contributor setup - users can sign up and submit their own articles. They can also update their own articles. Each time they add/edit the page an admin needs to approve it for it to show up live.
  • Unique Tagging - IE “video” or “sticky” tags are special in terms of what happens to posts that are tagged like that. They are excluded from output in the dynamic menu.

Plugin Based Features

These features were built on existing plugins but slightly modified in some cases:

  • Post Revisions (modified for submitted content)
  • Breadcrumbs
  • Most Popular Pages
  • Recent comments - Per category basis
  • Ajax Login
  • Thickbox for images in posts
  • Custom Taxonomies
  • Sitemaps
  • Flash Gaming
  • Comment highlighting (custom output)
  • Registration enhancements
  • Breadcrumbs
  • Auto Backups
  • D/L Management
  • Role/admin modifications

Over the course of the next few months, I plan on taking some time to build some of the above features either as full plugins, or write a tutorial to explain how to do it. If you’re particularly interested in one of the features, comment on it here and it will increase the chances of me choosing to do that one next.

Future Functionality

A few upcoming functions I’m working on:

  • Review type posts with multi-star ratings.
  • Contributor ads/links.
  • Top Contributors
  • Automated Wallpaper/Screenshot sectional posts from a group of images. Lightbox/Thickbox enhanced.
  • Additional auto SEO system based on incoming keywords
  • Hit logging/tracking
  • Google Analytics API integration
  • Tips in a quick list style (short posts that show up from a random selection on the page).
  • Pull quotes from other articles that are part of the tips quick list.
  • Expansion of download sections layout and functionalities.

DB Cache is a new Wordpress plugin that is aimed at increasing site performance by caching queries sent to the database.

The concept is great, however the Wordpress blogs that will benefit from this plugin are of a very slim margin. Which is why I’m shocked its being rated so highly on Wordpress.org.

A Common Complaint

It slows page load time down. Its been mentioned more than a few times on the Wordpress support thread.

The cause of this is because each query result is stored as a serialized chunk of data in a file. If you have an average blog (10-15 plugins installed) You’re probably pushing 40-60 queries per page (though it really depends what plugins). DB Cache seems to be able to cache about 95% of those 40-60 queries.

Each time an individual query is included back into the PHP script, it has to go through a process of checks:

  • Checking to see if a file exists.
  • Create a new one if not.
  • Pull the existing one into place and unserialize the data so it can be used.

The flaw in this method of caching comes in the 3rd point (while reading the files). They can be just as expensive if not more expensive than most of the queries being sent to your database because each one is a separate request to the server.

By the time you open a file, read it, and then still have to run your code on the data provided… You might as well just used your database and had the results of your page fully up to date.

A simple SELECT statement is often quicker than sending another request to your server for a file. And, the majority of queries within the core of Wordpress are not all that taxing to a database. For example, when you use something like blog_info() in your header template, it is doing a simple select on the options table.

A Use for DB Cache

DB Cache is still a useful concept, but one that I would only use if you maintain a site that has a lot of “expensive” queries. And by expensive I mean the ones that are doing multiple table JOINS, Lengthy WHERE’s and ORDERBY calls in their syntax.

How do you know if your site needs it? WP Pear Debug is a great debug tool for this. Use that to take a look at some of the queries being executed on your pages.

Another case in which it might help is if your database server and web server are separate. If your database is taking a pounding from other applications, using DB cache will take stress off of it and instead. Keep in mind, this is just transferring the workload to your local machine.

To quote Otto42 in this support thread:

“Querying a database is probably going to be faster than looking for the same query in a filesystem manner. DB’s are optimized and efficent, filesystems have all sorts of caveats to cope with.”

An Additional Issue

If your site does warrant the use of DB cache from a couple expensive queries, your performance savings will probably just cancel out. Since a large portion of your queries are still going to be simplistic.

Ideally, this kind of caching is best ONLY on those expensive queries. If there was a way to specify what kind of queries were cached, this plugin would appeal to a lot more people. For now, It cant even help some of the more advanced Wordpress development I work on.

Conclusions & Responses

I haven’t tested this to the extent that I’d like to. I also haven’t loaded this onto heavily trafficked site. If you test it on a site that receives a few thousand visitors a day, let us know your results. Maybe I’d be more willing to test it out in production on my sites if someone has positive results on a massive scale. Till then, super cache pulls a single cache of a page and still allows me to have dynamic output where I specify it.

If you comment on your test results please include how many plugin’s you are using and approximately how much traffic you receive daily.

Custom Theme by Rob Malon | Content & Design © 2010 - Rob Malon [dot] Com. 35 queries. 0.365 seconds.