Timeout, onClick and onScroll Content in Google

Can your website rank in Google with content placed in js events like onScroll, onClick or after timeout? How long will Google wait for your content? What does it mean in terms of your content placement approach? The answers are below.

by Slawek Czajkowski

Test environment and methodology

Legitimate methodology is crucial for every test. When creating test environment
we pay attention to eliminate as many external signals as possible. That is why
we run every test on new domains with clean history in terms of traffic and
behavioral signals. Every test is based on unique keyword which was not used on
any other website before.

Will content displayed after timeout, scrolling or clicking rank?

First, we need to determine groups that we will be testing:

group keyword appears hypothesis
control group immediately
5 seconds timeout after 5 seconds robot waits or simulates short waiting
60 seconds timeout after 60 seconds robot waits or simulates long waiting
onScroll event after scrolling robot scrolls the page to reveal content
onClick event on a after clicking on an anchor robot clicks on links
onClick event on span after clicking on a span robot clicks on arbitrary elements

For each of the case, we create a website that has:

  1. Decent amount of unique content to make sure the website will have enough
    value to be indexed.
  2. Previously selected unique keyword appearing on tested event.
  3. Fresh, unique domain with clean history.

After we have all websites set up, we verify them in Search Console and request
Google indexing. Then we make sure the domain has been indexed and we are ready
to go!

Result for SEO test no. 1

After searching each of our unique keywords, we were able to identify following
results:

group visible on SERP?
control group
5 seconds timeout
60 seconds timeout
onScroll event
onClick event on
onClick event on

test-1-screenshot-1

Conclusion

Except of control group, the only recognized and ranked content was the timeout
with 5 second delay. Despite of showing up on SERPs, it did not appear on
text-only cache.

It seems Google is not able to see any content which shows up in response to
onScroll or onClick JavaScript event or when it must wait for long time. We must
emphasize that it does not apply to cases when your content is present in the
structure and is just hidden (ie. display: none)
.

SEO test no. 2

These test results inspired us to conduct another test. We wanted to answer the
question:

If the keyword was recognized after 5s but wasn't for 60s timeout, what is
exactly the time that robot "waits" for timeouts?

A naive way of testing this case would be to increase timeout by one second
until our keyword is no longer indexed. It would work, but it's a very time
consuming way, eg. if the wall is at 30 seconds, we need to create 25 test
cases.

Binary search

To do it more efficiently, we utilized technique called "binary search".

We know the robot waits 5 seconds, but it fails to index content for 60 seconds
timeout. To pick the next case, we calculate the midpoint using following
formula:

(successful case + failed case) / 2

The first test turned out to be at (5 + 60) / 2 = 33 seconds. This test failed,
so we calculated the time again: (5 + 32) / 2 = 19. This one turned out
successful, let's do the math again: (19 + 32) / 2 = 26. Test for 26 seconds
finally failed, which means the wait time is somewhere in between 19 and 26.

We concluded our tests at this point, knowing that robots wait between 19 and
26 seconds
for content to appear.

Another thing we noticed is that content with 5 second delay was indexed
immediately, while longer timeouts required a few hours to be seen by
Google
.

test-1-screenshot-2

test-1-screenshot-3-1

Final words

This is only the beginning of our testing journey. In case you want to suggest a
test or you have any feedback about this particular test, make sure to leave a
comment below.