DEV Community

Tony Spiro
Tony Spiro

Posted on • Edited on

From WordPress to JAMstack: How to make your website 10x faster

WordPress to JAMstack

Performance matters. If you are familiar with JAMstack, the movement encourages avoiding server-side rendering completely in favor of pre-build, purely static HTML pages. By serving only JavaScript, APIs, and Markdown (JAM) over a CDN, a website's performance is dramatically increased, making for a much better user experience.

If you have an existing WordPress website, you may be familiar with slow page load. This can be due to server-side processes that occur prior to even getting to the HTML. If you are looking to make the switch to a better experience for your users, it might be time to switch to a JAMstack website. And making the switch may be easier than you think.

In this tutorial we're going to import existing WordPress content into a JAMstack website, deploy to Netlify, then perform Lighthouse tests on the two versions to determine if there are any significant performance gains. (Hint: there are 😁)

TL;DR

  1. Install the Gatsby Blog, a ready-made JAMstack website powered by Gatsby and the Cosmic JS Headless CMS.
  2. Import existing WordPress posts into Cosmic JS using the WordPress Importer.
  3. Deploy the Cosmic-powered website to Netlify.

Getting Started

First we'll need to install the Gatsby Blog available in the Cosmic JS Apps Marketplace.
Gatsby Blog

After we install the app to a new Bucket, we'll need to install the WordPress Importer Extension. This can be found by navigating to Your Bucket > Settings > WordPress !Importer.
WordPress Post Importer

Follow the directions in the Extension to import your WordPress posts.
Import WordPress Posts

After importing your posts, you'll see that our Posts Object Type now includes the imported WordPress posts, that was easy! Now let's deploy this sucker.

Deploy 🚀

There are a few options to deploying our website located in Bucket > Settings > Deployment. We'll go ahead and deploy to Netlify since they've perfected the art of JAMstack hosting, plus they invented the JAMstack term to help us wrap our heads around the concept.
Deploy to Netlify

After we add our Gatsby Blog GitHub repo to Netlify, we'll need to set up our environment variables in Netlify to connect to Cosmic JS prior to deployment. Go to Sites Settings > Build and Deploy to add the environment variable COSMIC_BUCKET with the value set to your Bucket slug. If you set a read key in your Bucket settings, add that here also as COSMIC_READ_KEY.
Add Ketys

Now go to the Deploys tab and Trigger deploy 🚀🚀🚀
Trigger Deploy

Compare 🧐

Now that our new JAMstack website is deployed, let's compare performance between the old WordPress website and our new Cosmic-powered JAMstack site. Open the Chrome console and run the Lighthouse tests on each website. Check out the results below (though the design is different, the post count on the page is roughly the same).

WordPress TechCrunch
https://techcrunch.com
WordPress Lighthouse test

Gatsby, Cosmic, JAMstack TechCrunch
https://wordpress-to-cosmic.netlify.com
Gatsby, Cosmic, JAMstack Lighthouse test

As you can see after running the Lighthouse tests our Cosmic-powered Gatsby JAMstack website blows the WordPress site away with a massive performance increase. And check out the transitions between pages on the JAMstack version, it's 🔥

Conclusion

I hope you enjoyed this tutorial on how we can build a dramatically faster web experience by moving from WordPress to a Cosmic JS-powered JAMstack website. Try it out for yourself and you may be surprised how easy it is to make the switch. Your users will thank you.

Join the conversation around API-driven content management, JAMstack and new web tech on Slack and reach out to Cosmic JS on Twitter.

This article was originally posted on the Cosmic JS learning center.

Top comments (0)