Alexander Ramadan

Where I Sometimes Write Stuff


Trying to Deal with Hidden Content and SEO
2015-11-04

Update At the State of Search conference, @methode's presentation it was revealed that,

On indexing JS. Googlebot doesn't click or hover or focus. So do it doesn't see content that requires user action

What this means is that even if you use the method of hiding content using Javascript/jQuery Googlebot won't index the content. So, this in fact won't work as I hoped.


I recently ran into an issue with a site that had a block of text that was not being indexed because, of what we believe, is the use of display: none to toggle that content in and out of view.

The use of CSS to hide and reveal content is an issue where the SEO community seems split.Google has said that it will crawl and index content hidden in a div as long as it "isn't spammy", but that's not very definitive. They have also said that they may slightly "discount" content that is hidden from users. Because of this many SEO's recommend against hiding content using CSS OR javascript all together. So, as an SEO trying to juggle design considerations as well as SEO issues we're left not really knowing what we should do. What else is new?

In this case, I believe a possible here is to avoid using CSS and display: none to hide the content all together and rather use jQuery to animate the content in and out of view.

Here is how that would work

In this scenario we're not using display: none, but we're still hiding the content, just using jQuery. I don't know if this would fix the issue to be honest. It will require further testing, and it might be different from site to site, but it is an alternative to using display: none, if that is what is really causing this issue.

Ideally, any content that is core to the page should be visible to the user as soon as the page loads, with nothing hidden.

As with most things regarding your site and SEO, always test your implementation to see if it is achieving your goals. In this case, indexing the content you're hiding with javascript.