Google, SEO and using CSS to hide text
Many standards aware developers use CSS to hide text for accessibility or usability reasons such as hidden skip links and form labels, image replacement, or displaying help text only when requested by the user.
Those are all legitimate reasons to hide text, but many developers have still been worried that Google and other search engines may start to algorithmically flag any sites that use CSS to hide text as possible spammers.
Up until now, that has not been the case (at least not officially), but in the post SEO Mistakes: Unwise comments, Matt Cutts, who works at Google, states that
I don’t recommend that people use CSS to hide text. That statement of course generated a whole lot of comments and questions from worried developers and webmasters.
Imagine if legitimate use of CSS to hide text would risk getting a site penalised, or even banned from Google and other search engines. That would be a disaster for many sites built with modern web development methods.
If you’re straight-out using CSS to hide text, don’t be surprised if that is called spam. I’m not saying that mouseovers or DHTML text or have-a-logo-but-also-have-text is spam; I answered that last one at a conference when I said “imagine how it would look to a visitor, a competitor, or someone checking out a spam report. If you show your company’s name and it’s Expo Markers instead of an Expo Markers logo, you should be fine. If the text you decide to show is ‘Expo Markers cheap online discount buy online Expo Markers sale …’ then I would be more cautious, because that can look bad.”
That is pretty reassuring, but I can’t help worrying about Google (and other search engines) implementing algorithms to programatically find text that has been hidden by using CSS. In another comment on the same post at Threadwatch.org, Matt Cutts says that:
We can flag text that appears to be hidden using CSS at Google. To date we have not algorithmically removed sites for doing that.
While it’s good to know that sites are not currently being removed without a manual review, that could change in the future. So I would advise anyone making extensive use of CSS techniques that hide text to make sure that it can’t be mistaken for spamming.