Drupal to PayloadCMS Migration: The Technical Guide for Enterprise Teams
Drupal has served enterprise content management well for two decades. It remains the CMS of choice for government agencies, regulated industries, and large publishers that need granular access control, structured content, and a mature ecosystem. But Drupal's upgrade cycle is punishing — and for many organisations, the window has already closed.
Drupal end-of-life timeline:
Version EOL Date Security Patches
Drupal 7 January 5, 2025 None (community extended support available at cost)
Drupal 8 November 2, 2021 None
Drupal 9 November 1, 2023 None
Drupal 10 ~2026 Current
Drupal 11 October 2024+ Current
If your organisation is running Drupal 7, 8, or 9, you are running a publicly accessible web application without security patches. This is not a theoretical risk — Drupal has historically been a high-value target for automated exploit campaigns (Drupalgeddon in 2014, Drupalgeddon2 in 2018, SA-CORE-2019-003) and EOL versions will not receive patches when the next critical CVE is published.
The upgrade vs. migration decision is economic. For many Drupal installations, the cost of upgrading to Drupal 10 or 11 approaches or exceeds the cost of migrating to PayloadCMS — with the difference that PayloadCMS delivers a modern TypeScript architecture without the next upgrade looming on the horizon.
The Cost of Upgrading Drupal vs. Migrating to PayloadCMS
The comparison depends on your Drupal version, the number of contributed modules, custom theme complexity, and custom module count. Here are realistic ranges based on Techseria project experience and published agency data.
Drupal Upgrade Costs
Drupal 7 → Drupal 10 (or 11):
This is effectively a rebuild. Drupal 7's hook-based architecture, theme system, and module APIs are architecturally different from Drupal 10. Very few modules have a direct upgrade path; most require replacement with Drupal 10 equivalents that may have different feature sets.
Site Complexity Timeline Cost
Simple (10–20 content types, standard modules, simple theme) 8–12 weeks £40,000–£65,000
Medium (20–50 content types, custom modules, complex theme) 12–20 weeks £65,000–£120,000
Complex (50+ content types, significant custom development, integrations) 20–40 weeks £120,000–£280,000
Drupal 9 → Drupal 10:
More straightforward — primarily deprecation cleanup and module updates. But "more straightforward" is relative.
Site Complexity Timeline Cost
Simple 3–5 weeks £12,000–£22,000
Medium 5–10 weeks £22,000–£45,000
Complex 10–18 weeks £45,000–£90,000
Drupal 10 → Drupal 11:
The smallest upgrade gap in recent Drupal history.
Site Complexity Timeline Cost
Simple 2–4 weeks £8,000–£18,000
Medium 4–8 weeks £18,000–£35,000
The compounding problem: Each upgrade is a one-time cost that buys 3–4 years of support before the next major version requires the same exercise. A Drupal 7 organisation that upgrades to Drupal 10 today has avoided immediate EOL — but faces Drupal 11 migration within 2 years and Drupal 12 after that. The total 6-year upgrade TCO for a medium-complexity Drupal 7 site: £150,000–£300,000.
PayloadCMS Migration Costs (from Drupal)
Site Complexity Timeline Cost
Simple (10–20 content types, standard functionality) 6–8 weeks £15,000–£28,000
Medium (20–50 content types, custom integrations) 8–14 weeks £28,000–£55,000
Complex (50+ content types, significant custom development) 14–24 weeks £55,000–£110,000
Migration to PayloadCMS is a one-time cost. PayloadCMS has no major version upgrade cost comparable to Drupal — schema changes are code changes, deployed via standard CI/CD pipelines. The 6-year TCO for a medium-complexity site migrating to PayloadCMS: £40,000–£75,000 (initial migration + routine maintenance).
Net saving vs. Drupal upgrade cycle (medium-complexity, 6-year horizon): £75,000–£225,000.
What PayloadCMS Offers That Drupal Does Not
This is not a straightforward win for PayloadCMS in every category — Drupal has genuine strengths. The comparison is honest.
Where PayloadCMS Wins
TypeScript-native development: Drupal development requires PHP expertise, which is increasingly scarce relative to TypeScript/Node.js talent. PayloadCMS shares a technology stack with most modern frontend frameworks, significantly reducing team skill requirements and hiring costs.
API performance: Drupal's JSON:API module is excellent for structured content delivery, but Node.js handles concurrent API requests with lower latency at equivalent infrastructure cost. See benchmark data below.
Schema as code: Drupal content types are configured via the admin UI and stored in database/config files. PayloadCMS schema is TypeScript — version-controlled, reviewable, and environment-consistent without synchronisation steps.
No per-version upgrades: PayloadCMS follows semantic versioning. Minor and patch updates are routine. There is no Drupal-style "rebuild everything for the next major version" cycle.
Hosting simplicity: Drupal requires a PHP application server + MySQL/PostgreSQL + file system for managed files + a separate Solr instance for search. PayloadCMS runs on Node.js with MongoDB or PostgreSQL; search can be handled by the database or a lightweight Meilisearch instance. One less infrastructure component to manage.
Where Drupal Wins (Acknowledge the Gaps)
Mature ecosystem: Drupal has 48,000+ contributed modules. PayloadCMS has a smaller but growing plugin ecosystem. If you rely on specific Drupal modules (Pathauto, Webform, Rules, Commerce) for core functionality, verify PayloadCMS equivalents before committing to migration.
Complex access control at scale: Drupal's role and permission system is exceptionally granular. PayloadCMS's access control (defined in collection config) is flexible but requires more custom code for very complex permission matrices.
Government and compliance tooling: Drupal's GovCMS, Acquia compliance modules, and US Digital Services toolkits have no PayloadCMS equivalents. For organisations with specific government compliance requirements, Drupal 10 may be the right upgrade path despite the cost.
Performance Benchmarks: PayloadCMS vs Drupal
Test environment: Azure B2s VM (2 vCPU, 4GB RAM), Ubuntu 22.04, 50,000 content nodes
Content API response time (single node fetch, p50/p95):
Drupal JSON:API (no cache) 85ms 210ms 580
Drupal JSON:API (internal page cache) 14ms 32ms 2,100
PayloadCMS REST API 22ms 48ms 1,820
PayloadCMS REST API (Redis cache) 8ms 18ms 4,600
Analysis: Drupal with its internal page cache enabled is fast for cacheable responses. The gap is in dynamic, non-cacheable content (authenticated user content, personalised responses) where Drupal's cache bypass drops to 85ms p50 and PayloadCMS holds 22ms p50 without Redis. For applications with significant authenticated content, PayloadCMS's performance advantage is meaningful.
Drupal-Specific Migration Challenges
Drupal migrations to any platform have unique complications. Plan for these specifically.
Content Architecture Differences
Drupal Paragraphs → PayloadCMS Blocks
Drupal's Paragraphs module is the most common way to build complex, structured page layouts in Drupal 7–10. A "page" might be assembled from 15 different Paragraph types (Hero, Text + Image, Accordion, CTA Banner, etc.).
PayloadCMS's equivalent is the `blocks` field type. The mapping is conceptually straightforward but requires:
- Defining each Paragraph type as a PayloadCMS block interface (one TypeScript block definition per Paragraph type)
- Writing migration scripts that map Paragraph entity data to block instances
Estimate: 4–8 hours per Paragraph type for definition + migration script. A site with 12 Paragraph types: 48–96 hours of engineering.
Drupal Views → Custom API Queries
Drupal Views generates content listings dynamically from database queries. In PayloadCMS, content listings are API queries from the frontend. Each View requires:
- Understanding what content it surfaces (which entity types, filtered/sorted how)
- Implementing the equivalent query in the frontend's data fetching layer
Simple Views (latest 10 articles, filtered by category): 1–2 hours each. Complex Views (contextual filters, exposed filters, multiple relationships): 4–12 hours each.
Drupal Webform → Alternative Solutions
Drupal Webform is a powerful form builder with complex conditional logic, file uploads, and integration with external systems. In PayloadCMS, forms are typically handled by:
- Dedicated form platforms (Tally, Typeform, HubSpot Forms) embedded in the frontend
- Custom form collection in PayloadCMS with a Form collection and submission collection
- Third-party form API (Formspree, Netlify Forms)
If Webform functionality is central to your Drupal site, budget separately for form migration and testing.
Media and File Migration
Drupal stores managed files in the `sites/default/files/` directory with database references in the `file_managed` table. Migration approach:
- Export `file_managed` table to CSV
- Map each file to its public URL (`public://path/to/file.jpg` → `https://site.com/sites/default/files/path/to/file.jpg`)
- Download all files and re-upload to PayloadCMS media collection
- Update all content references from Drupal file IDs to PayloadCMS media IDs
Volume consideration: A medium-complexity Drupal site typically has 2,000–15,000 managed files. Batch upload scripts can process ~500 files per hour at typical Azure bandwidth speeds. Plan for 4–30 hours of automated processing time.
Drupal Multisite
Like WordPress Multisite, Drupal multisite (shared codebase, separate databases per site) significantly increases migration complexity. Each site in the multisite installation is a separate migration project. Do not attempt to migrate a multisite installation in a single project sprint.
Week-by-Week Migration Timeline (Medium Complexity: 20–50 Content Types)
Week Workstream Key Deliverables
1 Discovery and audit Content type inventory, Paragraph type map, Views list, file count, redirect audit
2 Schema design PayloadCMS collection definitions in TypeScript, block definitions, access control model
3 Environment setup PayloadCMS staging deployed, database configured, media storage configured
3–4 Migration scripts Drupal to PayloadCMS ETL scripts for each content type
4–5 Content migration Run migration to staging, validation, reconciliation
5–6 Media migration File download, upload to PayloadCMS media, URL update in content
6–8 Frontend development Page templates, routing, API integration, navigation
8–9 Views implementation Content listing pages, search, filtered archives
9–10 SEO and redirects Redirect map, sitemap, meta tags, canonical URLs
10 UAT and go-live Editor testing, performance testing, DNS cut-over
Total: 8–12 weeks for medium-complexity sites. Add 4–6 weeks for complex sites with 50+ content types or significant Webform/Commerce functionality.
SEO Preservation: Drupal-Specific Considerations
Drupal's Pathauto module generates URL aliases from tokens (e.g., `[node:title]` → `/blog/my-article-title`). These are stored in the `url_alias` table. Export this table to build your redirect map before decommissioning Drupal.
Critical SEO preservation steps for Drupal migrations:
- [ ] Export all URL aliases from `path_alias` (Drupal 8/9/10) or `url_alias` (Drupal 7) table
- [ ] Identify top 200 pages by organic traffic (Google Search Console) — these are highest-priority redirect targets
- [ ] Preserve Drupal's XML sitemap structure or rebuild with equivalent priority/changefreq settings
- [ ] Migrate or rebuild structured data (Schema.org markup in Metatag module)
- [ ] Validate hreflang tags if multilingual (Drupal's i18n/Language modules generate these automatically; must be rebuilt in frontend)
- [ ] Test 301 redirects return exactly 301 (not 302) and follow to final destination
The Decision Framework: Upgrade vs. Migrate
Answer these four questions:
1. What version of Drupal are you running?
- Drupal 7 or 8: Migration to PayloadCMS is almost certainly the better economic choice
- Drupal 9: Evaluate carefully; Drupal 10 upgrade may be cheaper for simpler sites
- Drupal 10: Depending on site complexity and organisation trajectory, either option can be justified
2. What is your team's primary technology stack?
- Primarily PHP: Drupal upgrade preserves existing expertise
- Primarily Node.js/TypeScript: PayloadCMS migration aligns with your team's skills
3. Do you have government/compliance module dependencies?
- Yes: Drupal upgrade may be the only viable option
- No: PayloadCMS migration is technically viable
4. What is your 5-year plan for the platform?
- Wants to reduce CMS maintenance overhead: PayloadCMS migration
- Needs continued investment in the Drupal ecosystem: Drupal upgrade
If your Drupal version is EOL or approaching it, delay is not a neutral choice — it is an active decision to operate without security patches. Techseria offers a free 45-minute migration assessment: we will review your Drupal installation, estimate migration complexity, and provide a written fixed-fee quote for either a Drupal upgrade or a PayloadCMS migration — so you can make the decision on real numbers.
[Book a Migration Assessment →](https://techseria.com/contact)
Ready to accelerate your operations?
See how custom AI solutions, ERPNext integration, and workflow automations can lower your operating costs. Book your free 30-minute Workflow Audit with a senior engineer.


