Preparing for WordPress to AWS Migration
Explore how I prepared for my WordPress-to-AWS migration, including tools, strategies, and lessons learned.
Published on Jan 24, 2025
Table of Contents
Introduction
Migrating a website from WordPress to AWS requires careful planning, especially when the goal is to simplify operations, reduce costs, and align the website with long-term business objectives. Here’s how I prepared for the transition and ensured it was as smooth as possible.
Evaluating My Website's Needs
When I decided to migrate my WordPress website to AWS, it wasn’t just about simplifying hosting—it was about aligning my website with my long-term business goals. My primary objective was to promote AWS-based solutions directly on my site. I also wanted to address the limitations I was facing with platforms like WordPress and Upwork.
WordPress had become too restrictive for my future plans. As I intended to build products using AWS services that require API support, I realized WordPress’s structure didn’t offer the flexibility I needed. On top of that, consolidating vendors for hosting, domain registration, and DNS management under one platform was essential for cutting costs and simplifying operations.
Upwork, while useful in the past, had started to feel isolating and expensive. The platform’s fees and the inability to link to my social accounts or website limited my ability to grow my brand effectively. With AWS, I could create a centralized platform to promote my services, integrate payment systems, and showcase my social profiles—all without the steep fees.
Relying on Tools and Expertise
Planning my migration to AWS was made easier thanks to ChatGPT, which served as a bridge to the collective expertise of many professionals. Having previously migrated my personal website, www.theluismiranda.com, with ChatGPT’s guidance, I was already familiar with AWS services and confident in tackling the next challenge.
For this migration, I chose to build my website using the 11ty framework with Tailwind CSS and Tailwind Typography. This stack provided a lightweight, performance-focused approach, perfectly suited to a static website promoting AWS-based solutions. My WordPress site served as a reference point for user experience (UX) design, particularly for typography and layout, but the new site was crafted from scratch to ensure it aligned with my new goals.
Strategizing the Migration to Minimize Downtime
To ensure a smooth transition, I broke the migration into three manageable steps:
- Publish the New Website: My first priority was to launch the website and begin promoting AWS-based solutions as soon as possible. This gave me an online presence immediately while leaving room for future integrations.
- Integrate Stripe Payments: Adding Stripe for payment processing was essential, but it required the website to be live for testing purposes. Although I would have preferred completing this step before the site went live, this experience has prepared me to streamline the process for future projects.
- Google Analytics Event Tracking: Custom event tracking with Google Analytics was the final piece, enabling me to monitor user interactions and gain valuable insights.
By breaking the migration into phases, I minimized potential downtime and focused on building a solid foundation first. Each step was aligned with my goal of creating a functional, optimized website without unnecessary delays.
Overcoming Challenges During the Migration
One of the smoother aspects of the migration was the domain transfer. Namecheap made the process quick, allowing the transfer to AWS Route 53 to complete almost immediately. In contrast, I’ve experienced longer delays, such as the 10-day waiting period required by Squarespace for domain transfers.
The most time-consuming challenge, however, was integrating Stripe for payment processing. The issue arose with the Lambda API that acted as a bridge between my website and Stripe. Initially, getting my website to communicate successfully with the Lambda function was a struggle, but once I resolved that connection, the remaining steps were straightforward. This experience has given me a better understanding of integrating Lambda APIs with external services like Stripe, which will make future setups much more efficient.
Testing Before Finalizing the Migration
Testing played a crucial role in ensuring the success of my website migration. I focused on three key areas to validate the functionality and user experience:
User Experience (UX) Design Testing
I conducted continuous testing of the website’s UX design to ensure the workflow was intuitive and visually appealing across all screen sizes. This included verifying responsive behavior for both desktop and mobile users.
Stripe Integration
Testing the Stripe payment workflow was essential, particularly the webhook that processes payments. I ensured that payments were successfully completed and that data about purchased services was accurately saved into DynamoDB.
Google Analytics Custom Events
Finally, I verified that custom events in Google Analytics were being registered correctly. This allowed me to track user interactions and gather insights into how visitors were engaging with my site.
Testing Efforts Reflection
These testing efforts ensured that my website was fully functional, user-friendly, and ready to support my business objectives.
Measuring the Success of the Migration
The migration to AWS delivered significant benefits, with cost savings and reduced complexity standing out as the biggest wins:
- Cost Savings: My personal website, www.theluismiranda.com, costs less than $1 per month to host on AWS. Since my business website has less content, its hosting costs will be even lower compared to the $5/month I was paying with my previous hosting vendor. Beyond the financial savings, the greatest relief is not having to maintain a server. Offloading this responsibility has freed up mental space to focus on more strategic aspects of my business.
- SEO Optimization: Previously, I relied on paid tools like Yoast for SEO optimization on WordPress. With my AWS-hosted static website, I have full access to the code, giving me the freedom to implement SEO optimization in any way I choose—at no extra cost. This includes adding OpenGraph properties, structured data, and custom tags to ensure my website is fully optimized for search engines and social media platforms.
The combination of reduced hosting costs, simplified maintenance, and enhanced control over SEO has made the migration a clear success.
Next Steps in This Series
In the next part of this series, I’ll walk through the step-by-step process of migrating my website to AWS, including domain transfer, DNS setup, hosting, and more.