WordPress’s REST API was built for just this type of use. Magento has enthusiastically embraced Progressive Web Apps for eCommerce front-ends. Progressive Web App frameworks are available for WooCommerce.
But as browser support has improved, developers, especially library developers, are releasing production code that uses a lot of ES6 features, and if web developers are careful, they can introduce code that Google’s crawlers don’t understand.
Three Solutions To Google’s Language Barrier
There are three basic solutions to Google’s non-comprehension of ES6:
- Don’t release ES6 code to production: transpile it to ES5 or avoid it altogether.
- Stick to traditional server-side rendering with Node, PHP, or other server-side languages.
- Render the initial load of a client-side application on the server. This is a popular choice and frameworks like Next.js make it fairly straightforward. The initial view, content included, is rendered on the server and sent to the browser. Thereafter content is loaded by the client-side application in the traditional way.
- Google has recently introduced a new option: dynamic rendering. With dynamic rendering, content sent to the web crawler is rendered on the server, but content sent to browsers is rendered on the client. If that sounds like a breach of Google’s rules against sending different content to browsers and crawlers, that’s because it is. But Google is making an exception because it recognizes that its crawlers are holding developers back.
It is likely Googlebot will lag behind browsers for the foreseeable future, so if you want to embrace Progressive Web Applications for your business or eCommerce store, it’s worth taking the time to understand exactly what the crawlers understand.