Skip to main content

How Yoast Supercharged Its Shop by Migrating to WooCommerce

6/17/2024
Yoast
Joost de Valk
Yoast
yoast.com
Wijchen, NetherlandsFounded 2010
💰
Monthly Revenue
Undisclosed
👨‍💼
Founders
Joost de Valk
👥
Employees
100
🏢

Business Description

Yoast is a leading provider of SEO tools and plugins for websites worldwide. Founded in 2010, Yoast offers a WordPress plugin that simplifies technical SEO, content analysis, and site optimization, serving millions of users and businesses with a mission to make the web more accessible and search-friendly.
📝

Executive Summary

Yoast migrated its webshop from Easy Digital Downloads to WooCommerce using a multisite setup for multi-currency, improved data migration with Pandas and PHP, and built a custom dashboard to sync orders—resulting in a future-ready, high-performance store platform.
📄

Case Study Content

Introduction

Yoast.com had relied on Easy Digital Downloads (EDD) since the early days of its premium plugin offerings. As the SEO plugin climbed to the top of WordPress.org charts and the blog drew millions of visitors, the shortcomings of EDD grew serious. Customers asked for more currencies, subscriptions, and improved account features—requests that turned into lengthy custom hacks. A solid engine built for digital goods was no longer enough to handle the global scale and planned expansions. The team decided to rebuild the store on a modern, expansive platform that would accept orders in euros, dollars, and more, maintain accurate historical records, and simplify maintenance.

Why Switch to WooCommerce

During a kickoff meeting in January 2017, Yoast’s architects—Joost, Omar, Jip, and Anton—mapped out every requirement. They needed multi-currency sales, automated recurring billing, integrated user accounts, and a future-proof system compatible with expected traffic growth. The conversation returned again to WordPress. No one wanted to leave the CMS that powered the SEO community. WooCommerce stood out because of its built in REST API, extensive plugin library, and active developer ecosystem. It promised a robust data model for orders, shipments, and refunds without reinventing the wheel.

However, WooCommerce by default only handles a single currency per store. To stretch its capabilities, the team explored custom currency plugins but decided those paths risked closure if the provider ceased support. They needed a durable, low-maintenance approach.

Implementing Multi-Currency via Multisite

Rather than force a single WooCommerce install to juggle exchange rates, Yoast leveraged WordPress multisite. Each sub-site was dedicated to one currency—one URL for USD, another for EUR. The switcher on the front end allows users to choose their preferred shop, and WooCommerce processes everything in the local currency on each domain. Adding a new currency is as simple as spinning up a site copy and duplicating the store settings.

To prepare for future language support, MultilingualPress ties the sites together. This plugin elegantly links content across the network without excessive custom code. The result is a flexible framework where new regions and languages can be added with minimal effort.

Data Migration Strategy

Migrating years of orders and customer data required a reliable pipeline. The entire export resided in a single serialized meta field—compact but opaque. The team picked Pandas, a Python library designed for large datasets. Scripts extracted the serialized blobs, then shell-invoked PHP’s unserialize function to decode the data into structured rows. Once transformed, orders, line items, coupons, and subscription records were batch inserted into WooCommerce tables across the multisite network.

Testing was crucial. The engineers ran the migration on a staging replica of the live database, verified order counts, SKU alignment with finance systems, and refund histories. Only when the numbers matched exactly did they schedule the live switch.

Building the MyYoast Dashboard

To see all orders in one place, the team developed MyYoast. Webhooks in WooCommerce fire on every order creation, update, and refund event. A custom scheduler intercepts these calls and pushes them into a PHP-based delayed job queue. Workers consume the queue, enrich the payload, and store records in a central database. This architecture ensures orders sync reliably, even under brief downtime of the receiving service.

Customers log into MyYoast to view licenses, download products, and manage subscriptions. Support staff use the same interface to handle refunds and transfers quickly.

Performance Improvements

Initial load tests showed that every order-related page forced a full WP_Query and order model instantiation, hammering the database. The solution was to introduce an object cache layer using Redis, cutting response times by more than half for recurring calls. The Yoast team also submitted patches to WooCommerce’s core to cache currency lookups, reducing translation overhead. For subscription and order searches, a custom search service on MyYoast bypasses heavy meta queries until WooCommerce ships custom tables on its roadmap.

Development Best Practices

Throughout the project, Composer managed PHP dependencies, locking versions and streamlining updates. The team adhered to principles inspired by The Twelve-Factor App: separate config from code, treat logs as event streams, and run stateless processes. Automatic plugin updates were disabled in favor of controlled, CI-driven deployments.

Results and Next Steps

Since the August 2017 launch, Yoast’s store has run smoothly under peak traffic, handled all SEO plugin subscriptions flawlessly, and made it trivial to add new currencies and languages. The platform can now scale as Yoast expands into British pounds, a process estimated to take a single day of configuration. The store foundation is ready for more integrations like a regional sales dashboard and automated support workflows.

By moving to WooCommerce and adopting modern tooling, Yoast built a sustainable, future-focused ecommerce solution that supports millions of users worldwide.

💡

Key Takeaways

  • 1Using WordPress multisite to isolate each currency streamlined exchange and pricing logic without custom code modifications.
  • 2WooCommerce’s immutable order system guarantees accurate historical sales and refund records, preventing data drift after a reporting period ends.
  • 3A migration pipeline combining Pandas for data handling and PHP for unserialization enabled a smooth bulk transfer of thousands of order records.
  • 4Centralizing orders in a custom dashboard via webhooks and a delayed-job queue ensured reliability and instant access for both customers and support staff.
  • 5Implementing object caching and contributing to performance improvements in WooCommerce boosted page load times on high-traffic checkout flows.
  • 6Adopting Composer for dependency management and following 12-factor principles improved maintainability and streamlined automated deployments.
🛠️

Tools & Technologies Used

🔒

Premium Content Locked

Subscribe to access the tools and technologies used in this case study.

Subscribe Now
🚀

How to Replicate This Success

🔒

Premium Content Locked

Subscribe to access the step-by-step replication guide for this case study.

Subscribe Now
Share:
✍️

About the Author

Founders Hut Logo

Founders Hut

Founders Hut is a leading online platform dedicated to sharing thousands of in-depth business case studies from successful companies around the globe. Since its launch, Founders Hut has empowered entrepreneurs, marketers, and corporate innovators with actionable insights drawn from real-world successes and failures.

Interested in Being Featured?

Share your success story with our community of entrepreneurs.

Get Featured
Disclaimer: Some data in these case studies may be inaccurate or out of date. In certain cases, AI-generated content is used.