SEO, CSS Design and Usability
I've been redesigning some websites in an attempt to improve their search engine optimization, and I was quickly reminded how there are three major issues of website design that always seems to collide with each other. Sites built purely for SEO often use questionable CSS or just aren't very easy for the user to navigate. And, of course, sites that are built with great usability and nifty CSS design techniques aren't necessarily the best for optimization purposes.
Personally, I like building my sites with CSS, but some of the neat techniques for CSS design raise red flags with the search engines who think you are trying to hide text from them or otherwise deceive them. For example, the method of using CSS for replacing text with images is absolutely awesome for design purposes, but might actually cause Google, Yahoo and/or MSN to penalize your site's rankings. The use of display: none, display: hidden, and even text-indent: -9999px (or anything which places the text off the browser screen) are to be avoided if the intention is to design within Google's webmaster guidelines.
So, sadly, I've stopped using certain techniques because I don't even want to give search engines any reason to filter me, ban me, or penalize me. I'll err on the side of caution when it comes to designing my sites with CSS. Aside from balancing SEO and CSS design styles, I've still got to factor in usability for site visitors, making sure the navigation and information elements of the page are where they like them to be. Typically, with each website I design, one of those three factors gets a little abused. Trying to balance all three of those aspects certainly does take some of the fun out of website design, at least for me. *sigh*