Why JavaScript is Bad for SEO | e-Learning Centre Experiment

e-Learning Centre Experiment: JavaScript is Bad for SEO
e-Learning Centre Experiment: JavaScript is Bad for SEO

Can Googlebot read JavaScript? Find out why client-side rendering JavaScript content is really bad for SEO and how we planned to fix it.
On April 10, 2020, we announced our experimental e-Learning Resource Centre. This experiment was in fact our first attempt to generate dynamic content based on JSON data file out of the Google Blogger's blogging platform. As Blogger web server isn't owned by us, the only way to generate data-driven content is through JavaScript -- you can't perform dynamic Server-Side Rendering content on Blogger unless hard-coded.

I thought Googlebot can read JavaScript?

Yes, it can, but you just can't render large portion of your main content purely on JavaScript because waiting for JavaScript to completely render the page content is too costly to Googlebot (learn more about this here). Based on our 3-month experiment, below is the result on our Google Search Console:

Google Search Performance on JavaScript Generated e-Learning Content
Google Search Performance on JavaScript Generated e-Learning Content

By looking at the result, you may feel shock, but this is the lesson that we have learned from JavaScript generated content. Notice that the date was actually from April 6 to June 25, you can look at what we have done during this timeframe:

Phase 1 Experiment

April - May 2020

Phase 1 Experiment: April - May 2020
Phase 1 Experiment: April - May 2020

From the above diagram, you can see that from the top-most above-the-fold content to the main content in the middle, they were all dynamically generated JavaScript content on client-side. When we saw no performance on SEO, we proceeded to Phase 2.

Phase 2 Experiment

May - June 2020

Phase 2 Experiment: May - Jun 2020
Phase 2 Experiment: May - Jun 2020

In phase 2, we replaced above-the-fold content with static hard-coded content rendered at server-side. But apparently, by referring back to our performance depicted in the above Google Search Console, this doesn't serve much purpose, reason? -- We suspect that the content is considered "too thin" to Google.

So what will be our next plan?

Our next plan is to convert all of our Free Online Learning Resources contents to server-side rendered static content. This is still possible to us due to the following reasons:
  1. The content is not member generated but occasionally added by us.
  2. Once it has enough server-side rendered content for Google to rank it well, we can add dynamic member generated content later in the future, even though it will still be JavaScript generated.
So in Jul 2020, we'll implement the following phase soon:

Phase 3 Experiment: July 2020 onwards
Phase 3 Experiment: July 2020 onwards

Latest Update, 22 Jul 2020:

After implementing the Phase 3 Experiment, that is changing from JavaScript content rendering to Server-side, the SEO performance of our e-Learning Resource Centre has shown an obvious improvement on Google Search Console:

Phase 3 Experiment shows great improvement on SEO
Phase 3 Experiment shows great improvement on SEO

NOTE: Rendered by Server-Side but Hide & Show by JavaScript is Completely Fine.

What is the Strong Implication to us?

In order for us to offer a fully automated self-service training content generation service to our members, our www.malaysiatraining.net may eventually be moved away from Google Blogger to Google Firebase Hosting -- but not in the near future. We're currently developing a new Web Store App that will help not only our members but also business people and marketers around the world to succeed in internet marketing. Once our Web Store App has been proven successful, then only we will consider to sunset our legacy service and the whole new www.malaysiatraining.net will be reborn.