Skip to main content
What We Learned from Migrating a 50,000-Node Drupal 7 Site
cms · 01 Feb 2025

What We Learned from Migrating a 50,000-Node Drupal 7 Site

A six-month Drupal 7 to 11 migration for a media client. The architecture decisions, the data challenges, and the things we wish we had known before starting.

50,000 nodes, 200,000 taxonomy terms, 14 content types, and 11 years of URL history to preserve. Here is what the project taught us.

Planning phase

We spent 6 weeks in discovery before writing a line of code. The most valuable output was a content inventory — a complete audit of every content type, its fields, its usage, and its editorial workflow. Without this, migration scripts become guesswork.

The migration itself

We used Drupal's Migrate API with custom source plugins to handle the more complex data transformations. The standard D7-to-D11 migration path handles basic content, but media files, pathauto patterns, and revision history all required custom handling.

URL preservation

301 redirects are not enough. We captured every URL in the D7 site (from access logs, not just the database) and implemented redirects at the Nginx level for high-traffic URLs and via Drupal's Redirect module for the long tail. Organic traffic was maintained within 5% throughout the migration.

← Back to Insights

Enjoyed this article?

We write about web design, CMS development, and performance. Work with the team behind the insights.