Passion & Opportunity ? continue : break

Why Single Page Application still bad for SEO and for monetization in mid 2019?
Written: 2019-08-30 17:59:19 Last update: 2019-09-08 02:49:10

Quick.Work was initially developed to render the content of all pages from the server using PHP script, let's call this way is called MPA (Multiple Page Application), due to using cheap shared hosting therefore the performance is not up to my expectation, so I converted from MPA to SPA (Single Page Application) to hope that performance will be increased, after the conversion is finished and I checked the server load statistic, I found the performance is indeed much better, especially when I use GCS (Google Cloud Storage) to store the static resources (*.css, *.js, *.json, *.png and *.jpg).

I have submitted https://quick.work to as many search engines as possible such as Google, Bing, Yahoo, etc. for a few months I keep monitoring this website SEO in Google Search Console and I found it is not up to my expection, searching the keywords in those search engines don't show any in-link urls, checked Bing webmaster tools to see the web statistic and I was shocked to notice the "pages crawled" and "pages indexed" are dropped to a significant number.

Ignoring all the bad SEO, I still want to monetize this quick.work website, hoping that only if I could get a dollar (US $1) a month then it should be enough to pay the shared hosting and the annual domain fee, so I applied to get Google AdSense and I found quick.work is rejected due to policy violation of "Valuable Inventory: No content", I checked the internet about this and I found many info about Google AdSense does not work for SPA sites, it is a truly disturbing revelation, AdSense is contextual service which need a large text to make matching ads content and Google AdSense auto placement ads need many space to put ads in the middle of article content.

I already knew that full SPA site will give rather bad SEO even in 2019 because not many crawlers can parse and read the dynamic content rendered in client-side using JavaScript library such as Preact, React, Angular, Vue, etc. (quick.work used my custom HReact, very lightweight HyperScript templating UI rendering), but it was okay for me because my intention is to create full SPA web, to reduce server load and to use Google Cloud Storage to fasten content delivery. But Google AdSense's rejection about "no content" is making problem worse than the already bad SEO and this problem become not acceptable, now it is clear and confirmed that two of the largest search engines providers Google and Microsoft can not read SPA website content at all, this need immediate solution.

So I decided to solve all these problems by converting quick.work SPA web into normal MPA web, but I want to keep the SPA feature of this quick.work web available too, after finished the conversion from SPA to MPA then I add a new feature to detect URL parameter "&spa=true" and if it exists then the content will be retrieved from Google Cloud Storage instead of from my shared hosting, anyone can try to add the parameter to any url in quick.work and will see the page code is very small because using SPA logic.

After 'hybrid' MPA and SPA rendering are correctly implemented then I waited a few days to pass then I re-apply to get Google AdSense and voila, behold Google AdSense has accepted quick.work, I am happy because I have solved Google AdSense problem and also SEO should be increased slowly, I feel a little sad to confirm that Google AdSense engineers still unable to develop logic to accept and work with a full SPA web site in mid-2019.

Sadly PWA (Progressive Web App) is having the same faith as SPA, PWA also cached and render content dynamically in client-side which is also a no-go for Google AdSense, so I guess creating AMP (Accelerated Mobile Pages) is the next viable solution to increase monetization of quick.work website, but unfortunately, many articles in quick.work has a live demo using JavaScript and AMP can not allow using any third party JavaScript, I am crossing my finger that Google will create a better way to handle SPA/PWA for AdSense.