Google Ignores Hidden Content – Including Tabs?

Google on Tabbed ContentIn today’s hangout with John Mueller from Google we found that Google tends to ignore content which seems to be off-screen (e.g. -9999px). We asked whether a portion of a website could be accidentally treated as hidden content and not trigger that page in search results for the search terms contained within the falsely detected hidden section. John said it could happen and illustrated with an example of tabs.

Tabbed content is a common element in modern web design, however, John argues that users may search for a particular keyword and not see it immediately on the page as it’s hidden behind a tab. A suggestion was made to improve user experience – break the tabs into multiple URLs. I pointed out that splitting up a perfectly good page into multiple URLs may not be in line with previous advice given by Amit Singhal from Google (elaborating on Panda filter).

Is Google ignoring content behind tabs?

No. Or not always at least. We tested with a few websites and found that content was still indexed, though it’s uncertain whether it has the same weight as the ‘visible by default’ the content on the same page.

Follow-up Experiment

We’re currently testing Google’s ability to handle tabbed content, help us with the test by visiting the following page.

So what’s the recommended solution then?

Display the entire content on the page without separating it in tabs.



Dan Petrovic, the managing director of DEJAN, is Australia’s best-known name in the field of search engine optimisation. Dan is a web author, innovator and a highly regarded search industry event speaker.

0 Points

Previous Article

10 thoughts on “Google Ignores Hidden Content – Including Tabs?”

  1. Wow! This seems to be counter-intuitive. Landing pages that overload the user with everything do not generally score well on the UI experience and may not even count high on Google. Obviously, this kind of page would get indexed properly as John suggests. I know Google recently took out a patent that appears to allow it to actually index content that’s hidden behind a form (usually products with many variables) in an effort to index the ‘hidden’ web. Now we are getting that relatively simple tabs create an indexing problem an SEO issue usually associated with 2007/08. It appears (and I am willing to be proved wrong here) that Google’s indexing development is very much a two-speed one. On the one hand we get experimental, super-fast AI-driven semantic search that practically understand what it indexes and on the other hand we get ‘dumb’ indexing issues like this.

  2. Jason Mun says:

    I can see where John is coming from. I have encountered situations where I search for something in Google, clicked through and did not see the intended content. Either it was tabbed or in a div carousel. Breaking tabs in to individual URLs seems logical but what about the other on-site elements? For example, if it was a page about a credit card product and there are tabs outlining: features, interest rate, application and faq. Above this table of tabbed content, there’s usually an introductory paragraph and a heading. Creating a “somewhat” duplicated set of pages. Dan you are right, it conflicts with what Amit said about the Panda update. I think most websites who go down this route will need to rethink their IA and make sure that the heading and intro paragraph is as unique as possible and provides value to the user.
    Do you think using AJAX and pushState() to have each tab indexed separately as separate URLs could be a potential solution?
    Keen to hear everyone’s thoughts…

  3. I wonder if how the content is being hidden matters at all – for example you could use CSS margin -9999px, CSS display:none or CSS visibility:hidden.
    The outcome to the user is the same, they can’t see the content.
    It’d be interesting to find out if Google are processing the page literally looking for visible content and actually don’t care how/why it isn’t visible, just that the user can actually read it.

  4. David Iwanow says:

    I do think the idea is scary for many UX types as that’s the best way to balance the content heavy requests of SEO with the fact that the page has a lot of information to convey to the user but still actually convert. I had dreaded that Google might devalue this technique but it seems you are screwed if content is below the fold or neatly placed within a tabbed structure. There are more than a few websites that might be stuck with a catch-22 on what is “now google best practice” vs “conversion optimisation”

  5. Google still indexing the hidden content and hidden links. Maybe this sites receive some ranking penalties, but hacked sites still have a lot of hidden links that passing the linksjuice.

  6. Lyndon NA says:

    Not sure how it stands with some assistive devices today – but the old advice was to avoid using visibility:hidden as it may result in the content being ignored. The best approaches were stacking (position:absolute and z-index) or negative placement (-9999px).

  7. Lyndon NA says:

    Funny – as Google put in foldout/expanding sections in their help docsa few years ago – and a couple of the TCs pointed out it was a bad UX as you couldn’t see/find what you thought would be there. I’ve seen bad implementations else where as well.
    But those aren’t the same as “tabbed” – and most people I’ve monitored have understood the concept of tabs well enough.
    I’ve yet to see content that G didn’t index … nor return when a specific string is searched for (quoted).
    So the question is, are G applying a SERP Filter for relevancy to content that is not “immediately visible”?

  8. Johnny O'Toole says:

    Dan, any updates from your experiment?

  9. Mauro says:

    Hello, I have content outside of a lightbox area, so it’s invisible to the end user. you think it is indexed? how can I know if it is or not?
    The site is, inside of cameras session.

  10. herihehe says:

    Instead of using off-screen methods for the tabs, such as using huge negative margin or display: none, giving elements a zero opacity dan absolute positions should do the trick.