· Projects · 11 min read
The benefits of migrating from WordPress to Astro
Are you a part of the vast WordPress ecosystem? If so, you’re likely familiar with its popularity, its plethora of plugins, and the countless tutorials available. But amidst the convenience and familiarity, have you ever wondered if there’s a better way? In this article, we’ll delve into the world of WordPress, exploring its drawbacks and risks, while also introducing you to a compelling alternative: Astro. Join me on a journey where we uncover the challenges of WordPress, the vulnerabilities it presents, and why I decided to make the leap to Astro—a move that transformed my website’s performance, speed, and content management. Buckle up as we explore the benefits of migrating from WordPress to Astro and how this decision breathed new life into my online presence.
What is WordPress?
WordPress is the most popular content management system (CMS) in the world. It is used by individuals, businesses, and even large corporations. There are themes and plugins, both free and paid, that are widely available. WordPress developers are a dime a dozen. You can find them everywhere. There are tutorials, online courses, expert recommendations for SEO and performance tuning, even specialized hosting services just for this Open Source tool. It has become ubiquitous on the web. And just about everyone has used it to one extent or another.
What’s wrong with WordPress?
With WordPress being so common and well supported by hundreds of thousands of businesses, what problems are there with WordPress that make it less appealing? What challenges come with this popular tool that can make things frustrating to a site owner or a developer? What risks come with using WordPress? What alternatives do we have? And why did I ultimately move away from it?
I intend to answer these questions and so much more in the following sections.
Open Source at a price
WordPress is flawed in so many ways. To call it Open Source these days is to practically skirt the definition within a hairsbreadth. That is not to say that it isn’t, technically, Open Source. It most certainly is… Until you want to do anything better than the out of the box features or something special.
Do you want to have precise SEO controls? You can do that, at a cost. There are a ton of “free” plugins to accomplish this. But they all come with cost baggage. They give you a few rudimentary features, then intentionally pay-wall basic features you have to have to operate correctly. These are not “nice to have” features, they are mandatory features that will hurt your site performance without them. That cost comes in the form of a recurring subscription.
Have you been interested in those fancy theme builders and want to try it? Go for it. Just don’t expect much beyond remedial features without paying hefty subscription fees for add-ons, full widget access, and even the most basic content listing features.
Example, before I had migrated from WordPress I had upgraded a theme I had bought many years ago, ShiftCV, to the latest version. This had not been upgraded in years (I know, I know, bad developer, no soup for you). Because of this there was a large shift (heh) in how the theme was built. Now it uses Elementor, one of the most popular theme builders (visual site editors) you can find for WordPress.
This seemed neat and I was kinda excited to try it out. I liked that you can drag and drop widgets on the page you were building to create a more powerful and immersive experience. They have a decent starter set of widgets to pick from. But then I wanted to list content and link to it automatically as I add it to other parts of the site (such as new projects). I found a widget that came with Elementor that could do this and in the way I wanted to. But it was a “Premium” widget so I would have to subscribe to get access to it.
I looked for other widget packs that included what I want and after trying out half a dozen packs I finally found one that included, for free, the widget functionality I was looking for. It wasn’t everything I needed but it did well enough. The problem is that between this pack of widgets and those that came with Elementor I still couldn’t do all the things I wanted to do. And just the one additional pack of widgets flooded the widgets menu to new free and paid widget options that I had to wade through.
Now, I am not made of money. In fact, with three kids and the inflation we have seen in the last three years, I struggle to afford basic things at times. I can’t afford to be shoveling money into a website that is just a glorified online portfolio and does not directly bring in revenue. That would just be a money pit.
You might be asking why I don’t just write my own plugins and widgets to accomplish these tasks. After all, I am a web developer with lots of PHP experience (mostly Drupal) including experience writing code for WordPress. And you would be somewhat right. I could do that. However, that would require A LOT of additional time that I don’t have. I rebuilt this site over the course of almost 2 weeks (to Astro) by working 30 to 60 minutes per night most nights. Thats about all the time I have left after wrangling the kids and before I get to tired to work each night.
On top of all of this, as a long-time Drupal developer I look at all of these fees and charges and just balk at them. We get most, if not all, of what I need either out of the box or as a completely free module (the Drupal equivalent of a plugin). It just pains me that features I get from Views or the Metatag module I have to pay for on WordPress to get the same functionality.
Then you would ask, why don’t I just rebuild it in Drupal. I seriously considered this, I even started down the path. But that takes A LOT of time. Especially as I create a new theme from a template I buy or find online and integrate it with any components I create. With that in mind, let me circle back to my above point about having limited time. Further, decent performant Drupal hosting is not cheap. I am looking for options that can save me not just time, but also money with my money being tight right now.
Risks of WordPress
Now I get into concerns that should hit home for everyone. WordPress IS NOT SECURE. Many people that write plugins and themes for WordPress are sloppy at best at coding and at worst, completely unconcerned with quality and security. Often I see code breaking all kinds of pre-defined WordPress coding standards, not to mention common PHP standards (see PHP-FIG).
My impression of many of these developers is that they were just looking for a quick buck and couldn’t be bothered with the ramifications of their work. As the biggest CMS in the world, WordPress attracts A LOT of bots and automated vulnerability scanners that are just looking for a way to hack in and steal important data. According to Sucuri’s annual hacked website report, WordPress was the most commonly hacked CMS in the world with over 95.6% of infections detected by Sucuri in 2022.
By using WordPress, you are inviting risk and attacks. Why do that to yourself and more importantly to your business?
Alternatives to WordPress
There are many many alternatives to WordPress and the right one for you will be determined not just by your needs and restrictions but also the depth of your pocketbooks. The two I see most often are Drupal (PHP-based) and AEM (Adobe Experience Manager). Where I work, at VMLY&R, these are the top two CMS systems that we build in by far. Both are expensive however. In setup time, and hosting/maintenance costs.
Drupal
Drupal is another PHP-based CMS (like WordPress). And like WordPress, it too is open source. But at is where the simliarities end. Drupal uses the Symfony framework as its backbone these days. And as such, it has been keeping up with the latest PHP features and support. It has an unmatched number of contributors both due to its links with Symfony and with its long-standing developer community. This leaves you with many extensively tested libraries and modules. And almost all of them are free to use fully.
AEM (Adobe Experience Manager)
AEM is a Java-based CMS created and maintained by Adobe. It has extensive tie-ins to a suite of marketing tools, also provided by Adobe. The licensing alone starts at $40,000 per year and goes up from there based on the size of the organization and its needs. The list of AEM developers is understandably shorter and harder to come by as AEM is a close-source system. It has its own unique approach to both multisite setups and content publication. Allowing for pushing content changes from lower environments to production. It is a powerful tool.
Of the two, Drupal is by far the more affordable option as AEM licensing alone will put you up over the $1 million mark. However, Drupal is no slouch when it comes to costs. Hosting requires fast servers with a good amount of RAM and a caching layer on top of it such as Varnish.
There are other free options such as Joomla, Shopify (if you are selling something), and SquareSpace (for those that don’t want to hire a team of developers) as well as many more options out there. These each have their own pros and cons.
Then there are JAMStack tools and headless CMSes (those that only provide a administrative interface and not the front-end that the site visitors see). There are even options that don’t need a headless CMS. That can just serve from statically generated files. This is where Astro (sometimes called AstroJS) comes in. It allows for you to pull content from a headless CMS or to define your content as Markdown, MDX, JSON, or “.astro” files or a combination of the two.
Why DID I move to Astro from WordPress
I have been eyeing Astro for some time now. It is very fast, has a ton of great free and paid themes, and allows me to write articles in Markdown format instead of storing them across several tables in a database. The content ownership is second to none. Because it loads from such simple files, including some statically cached pieces, it is able to build and load pages incredibly fast.
Next, the cost of my WordPress hosting wouldn’t seem like much to many developers, but it was still a recurring cost of about $28 per month and my money is tight right now. With Astro, I can just host the site in CloudFlare pages for free and I automatically get all the protections and features a CloudFlare free account has to offer.
Then there was the freedom. Freedom to fully control the dynamic SEO features. Freedom to rapidly prototype new types of content and new widgets. Freedom to control how everything operated. And I didn’t have to write any complex code to do most of it. The worst I wrote were a few functions for loading and sorting content in my collections.
Finally, the straw that broke the camel’s back was just how EASY it was to migrate. I exported all site content from within Wordpress. Then I used a tool that converted that export to markdown and MDX files. Building and rearranging components (new and old) is staggeringly easy and fast. Like I said, I rebuilt this site with almost not free time in just two weeks.
Results
The results are in. My new site is faster than it has ever been. With WordPress I was struggling with Lighthouse scores as low as in the 40s and rarely venturing as high as the 80s. With Astro I experience nearly perfect Lighthouse scores across the board.
Before I continue, Lighthouse is a tool created by Google to score your website based on performance and various best practices. The scores cover Performance, Accessibility, Best Practices, SEO, and (if you have one) Progressive Web Apps. The highest score you can get is 100 and ranking high on these scores will improve your search engine performance.
Content entry is a breeze. I was able to rapidly whip up a new blog component for the homepage. It is just easier, faster, and painfully cheap to host an Astro website. And I don’t have to make a complex plugin or module to solve my problems with SEO and listing.
Sure, its more manual to an extent, but it is manual with a set of tools that get out of your way and allow you to write the code you need without jumping through any hoops. My time to market should be evidence of this enough.
In a coming article, I will write about how I migrated and what choices I made along the way.