Sorry for the long post... I usually keep it short and to the point. Just wanted to share our experience with WordPress and our "preference" to use WP as often as it's a good fit for the project.
Regardless of the site we're working with, we look to WP first to determine if we can make it within our needs. Everything from small business-card-presence type sites, to 10-20 product e-commerce sites. WP is not perfect, as has been outlined thoroughly in this thread, but with a plan in hand, you can setup to perform just as well as a hand-coded site. In my opinion, the ease of use, time-to-market and flexibility of options far outweighs the effort it takes us to eliminate the negative effects of most WP user mistakes.
- Start with a GREAT host! Avoid the "$5/month for unlimited blah blah" shared and overloaded providers. It only takes 15 minutes and a whois lookup to go through a blog directory, use a site load simulator, compare 15-20 sites and determine which host is good or not.
- Make efficiency and site speed a priority. Find yourself a good waterfall-style speed tool to analyze every aspect of your site load speed and eliminate everything that slows the site down. Reach for a 100% speed score, settle on 98 as the lowest!
- Start with a bare-bones and responsive theme that is free of all the glitter and glam of what most theme designers call "features" (like 10's of various custom db calls, fancy widgets in footer, etc) We find it easier to code features IN to the theme, versus taking them all out of a bloated functions.php file.
- Go through your code and clean up all the bloat you don't need. In our case, we use WP more like a CMS than a blog, and eliminate most of the "blog" friendly features that are spit out in the <head> section. Essentially, if it's not something we would have in a hand-coded static site, we take it out of WP also. We have minimized our <head> section down to 15-20 lines after removing the bloat... shorter, if we spend the time to remove plugin comments naming the plugin, versions, etc. (but you need to re-delete after each plugin update)
- Minimize the use of plugins to only those essential to your needs, and those with high reviews from the WP plugin repository. We DO use a popular SEO plugin, for it's ease of handling several functions on the site. A good cache plugin, and very few if any others. If you use a popular plugin, spend the time to go to the developer site and learn how to optimize it's use. (turn off the features you don't need, only use what you do)
- If you don't care about visitor comments, turn off the feature built for the comment system (gravatars, pingbacks, etc) and squeeze it off. If you DO use comments, get rid of the URL form field from your comment box... it cuts down 99% of spam comments.
- Clean up your database monthly. Eliminate all the historical records (revisions, etc) There are plugins to help... Active-plugin/use-plugin/disable-plugin.
- If you're concerned about shysters getting in and exploiting your plugins or WP code, move the /wp-content/ folder to a random directory (like "/files/" or "/assets/" and declare it within the config.php file. Takes 2 minutes, conceals the location from lazy hackers, and makes you feel better about security. There are also a few great security plugins out there that you can enable/scan/then disable, for your monthly code checkup on the site.
- If you want to deter scrapers/copycats - Kill the RSS feeds and add a lightweight plugin (or code it into your <head>) that disables right-click and copy/paste. It eliminates 99% of the lazy scrapers who will copy/paste your text to their site.
- For form pages, (contact forms, etc) make sure your form validation code only loads on the actual form pages, versus sitewide.
- Eliminate any chance of content showing in two places on your site. 1-content resolves to 1-url. (aka, noindex/follow category pages, archives, author pages, anypage that shows snippets, etc)
- If you use the site as a CMS, create a hierarchy of pages, just like you would in a hand coded site, and stick to it.
- Hand-code your H1's into your pages, versus letting WP name and place them for you. Remove that pesky <h1 ><? php title >< /h1 > and use your WYSIWYG editor to write your page h1's. It gives you the flexibility to be more creative in your onpage SEO. It also helps you avoid over-seo snafu's with a matching h1 and url. Which leads to...
- Avoid letting WP create the URL for you. Sure, friendly URL's is important, but don't let it create: "/this-is-the-seo-url-of-my-main-landing-page", when "/seo-keyword" is much shorter and better.
As I stated, we use WP as often as we can. We manage many sites and the time-saving features of using WP are the hot-button that keeps us coming back. We have a few sites that entertain 25,000 daily visitors / 150k daily pageviews, but that's about the highest we've seen. We've always approached the use of WP as many of the old-time webmasters we graciously learned from since 2001... If it's non-essential to the contents of the site/page, eliminate it. Focus on speed and the user. We've never felt that WordPress was the reason for ranking issues when they occur. Just as true, we've never felt an SEO advantage by using it either.