If you sit in a CIO seat at a UK enterprise — a university, a national charity, a publisher, a regulated business — your CMS decision is no longer a marketing decision. It is a security decision, a procurement decision, and a five-year cost decision. WordPress's huge market share earned it a default-choice halo at the SMB end of the market; that halo has not aged well at enterprise scale.
The pattern we have seen across forty-plus migrations over the last three years is consistent: enterprises do not leave WordPress because they fall out of love with it. They leave because the things that make WordPress easy at five pages make it unmanageable at five thousand. Plugin sprawl, weekly CVE triage, content schemas that cannot be enforced, and an editor experience that quietly drifts as marketing requirements grow.
Wagtail is what those enterprises are switching to. Built originally at Torchbox for the British Council, used in production at NASA, Mozilla, Google, the NHS and across dozens of UK universities, it is the boring, opinionated, Python-based alternative that most CIOs wish they had picked the first time. This article is the case for why — laid out in the order an enterprise procurement actually evaluates it.
011. Security vulnerabilities — a structural difference
The single biggest difference between the two platforms is not the language or the editor. It is the attack surface. WordPress's strength — the plugin ecosystem — is also its single largest source of risk. Wagtail starts with a smaller, more curated dependency footprint and stays there.
The WordPress CVE picture in 2025
Public vulnerability disclosures published by Wordfence, Patchstack and the CVE Program paint a consistent picture: the vast majority of WordPress-ecosystem vulnerabilities reported each year do not live in WordPress core itself — they live in the plugins and themes a typical enterprise install runs on top of it. Patchstack's annual reports have repeatedly attributed more than 95% of new WordPress CVEs to third-party plugins.
That is the structural problem. WordPress core is reviewed and patched by a substantial, professional team. The 50,000+ free plugins in the WordPress directory are not — they are maintained by individual contributors and small studios of varying capacity, with no enforced security review. Once your stack depends on twenty of them, your risk profile is the union of twenty separate maintainer commitments.
The Wagtail picture
Wagtail's footprint is deliberately smaller. The core CMS is a focused Django application maintained by a dedicated security team, with public security advisories on GitHub, a documented disclosure process, and a coordinated release schedule that aligns with Django's own. Enterprises who run Wagtail in production typically depend on perhaps five to ten well-vetted Django packages — most of them from Django itself, Wagtail core, or Torchbox — rather than dozens of opaque plugins.
The result, in practical terms: most Wagtail enterprises we have audited can show a complete dependency provenance and CVE history for every package in their stack in under fifteen minutes. Most WordPress enterprises cannot.
The audit conversation
For UK enterprises subject to Cyber Essentials Plus, ISO 27001 or sectoral regulators (FCA, ICO, NCSC guidance), the question assessors actually ask is: "what is your dependency-patching process, and can you evidence it?" Both platforms can answer that question — but Wagtail's smaller footprint makes the answer dramatically shorter.
WordPress core is not insecure; the plugin economy is. Wagtail's smaller, curated dependency footprint is not a feature you build — it is a feature you inherit. For enterprises operating under any compliance regime, that single difference often pays for the whole migration.
022. Customisation & page modelling
The second decisive difference is how each platform thinks about content. WordPress treats content as HTML soup with metadata; Wagtail treats it as typed, structured data with a Python schema. That sounds like a developer's concern. It is actually a Marketing Director's concern, because it determines whether your editorial team can ship a campaign in two days or two weeks.
WordPress: blocks on top of HTML
The modern WordPress editorial story is the Gutenberg block editor and its commercial extensions (Advanced Custom Fields, Bricks, Elementor). These give editors visual control, but the underlying content is still stored largely as HTML or shortcode inside the post_content column. That has three consequences enterprises notice:
- Layout drift. Editors can place any block almost anywhere. Six months in, no two landing pages look quite alike, and the brand team starts circulating PDFs of "approved" layouts that the CMS cannot enforce.
- Content is opaque to other systems. Wanting to syndicate to a native mobile app, a partner portal, or a personalisation engine? The HTML blob has to be re-parsed every time.
- Schema migrations are manual. A renamed field is a sprint, not a deploy. The data shape is folk-tradition rather than code.
Wagtail: schema-first with StreamField
Wagtail flips this. Page types are defined in Python — strict, version-controlled, migratable. Within them, StreamField gives editors a rich, block-based editing experience where each block is a typed, validated, documented unit:
from wagtail.models import Page from wagtail.fields import StreamField from wagtail import blocks class CampaignPage(Page): # Editors *cannot* deviate from this schema — by design. body = StreamField([ ('hero', HeroBlock()), # max one, enforced ('rich_text', blocks.RichTextBlock(features=['h2', 'h3', 'bold', 'italic', 'link'])), ('callout', CalloutBlock()), # brand-approved variants only ('stat_row', StatRowBlock()), ('cta_band', CtaBandBlock()), ], use_json_field=True) # Parent-page rules: this template only appears under /campaigns/ parent_page_types = ['campaigns.CampaignIndexPage'] max_count_per_parent = 50
The schema is the contract. Editors get freedom within it — choosing blocks, ordering them, filling fields, previewing the result — and never break the layout outside it. Brand guidelines stop being a PDF and start being code. The same data is automatically available via REST and GraphQL APIs to any other system that needs it (native app, partner portal, AI search), without a single re-modelling step.
For a Marketing Director, the practical effect is faster campaign cycles with fewer "the homepage looks weird again" emails. For a CIO, the same content is a clean data asset rather than a wall of HTML — which makes downstream personalisation, search and AI integration far cheaper to add.
Multi-site, multi-language, workflow
Wagtail handles multi-site and multi-language natively. One install can power a parent brand and a dozen sub-brands in eight languages, with translation review, scheduled publishing, per-locale editorial workflow and per-site permissions — all in the core product. WordPress can do the same with WPML and WordPress Multisite, but the configuration cost and the surface area of "things that can go wrong" is much higher.
033. Developer experience — Python vs PHP at enterprise scale
"Developer experience" sounds like a technical concern, but for a CIO it is a hiring concern and a velocity concern. The two platforms occupy genuinely different worlds — and the world your engineers want to live in directly affects the salaries you pay, the retention you achieve, and the speed your roadmap moves.
The hiring market in 2025
Python has spent the last several years at or near the top of nearly every developer-popularity index — the Stack Overflow developer survey, the GitHub Octoverse, the TIOBE index, the JetBrains state-of-the-developer report. Among graduates and early-career engineers in the UK, Python is increasingly the first language they learn — driven by data science, machine learning and AI. PHP, while still a substantial codebase footprint globally, has steadily fallen down the rankings and is heard far less in the conversations CIOs are having about AI integration.
The practical effect on enterprise hiring: a senior Django/Wagtail engineer in London or Manchester is plentiful, drawn from the same pool that data science and AI teams recruit from. A senior WordPress engineer with enterprise-scale experience (rather than agency-template experience) is a much smaller market — and the salary delta is rarely in WordPress's favour.
Tooling and engineering hygiene
The two ecosystems also differ in what "the boring foundations" look like.
- Type safety. Python supports gradual typing via
mypy; large Wagtail codebases routinely run--stricton their service layers. PHP has improved enormously (PHPStan, Psalm), but typing is still adoption-by-team rather than language-default. - Testing. Both ecosystems have mature test runners. The difference is cultural — most Wagtail engineers we hire arrive having written tests their whole career; many enterprise WordPress engagements we have inherited had no test suite at all.
- Dependency management.
pip+poetry/uv+ lockfiles, versus the historical "upload the plugin zip" pattern that still survives in many WordPress shops. Composer has improved this, but the cultural muscle around lockfiles is weaker. - Migrations as code. Django's migration system — auto-generated, version-controlled, reversible — is a quiet superpower. Schema changes are PRs reviewed in CI, not WP-CLI commands run by hand on production at 9pm.
- AI & data. Almost every credible AI and data tool in 2025 has a first-class Python binding. Putting LLMs, vector search or analytics next to your content model is a one-import step in Wagtail; in WordPress it is typically a separate service.
Editorial experience is unfairly good on Wagtail
The accepted wisdom is "WordPress is better for editors." It is not in 2025. Wagtail's admin — informed by a decade of editor research at organisations like the British Council and the National Library of Wales — is consistently rated higher in editor NPS studies than enterprise WordPress installs running Gutenberg + ACF. Drag-and-drop, multi-step workflow approvals, scheduled publishing, side-by-side draft comparison and a genuinely usable mobile admin all ship in the core product. We have a separate post on the editorial features most teams under-use.
044. Total Cost of Ownership — over five years, not five months
The hardest argument to win against WordPress is the up-front-cost argument. WordPress hosting is cheap, themes are cheap, and the agency market is competitive. The Year 1 number on the spreadsheet usually favours WordPress.
The five-year number rarely does. Below is a representative — not specific — comparison for a mid-sized UK enterprise CMS estate (one corporate site, two sub-brands, ~5,000 pages, two languages, ~12 editors, ~200k monthly sessions). The numbers below are typical of what we have seen across migrations we have led; your mileage will absolutely vary.
# Headline numbers — exclude your team's salary, exclude content production. # Comparing only the things the CMS choice actually drives. LINE ITEM | WordPress (5y) | Wagtail (5y) -----------------------------------+-----------------+----------------- Initial build (yr 0) | £40k – 80k | £55k – 90k Premium plugins & licences | £8k – 25k | £0 Managed hosting | £18k – 60k | £15k – 45k Security & monitoring add-ons | £10k – 30k | £5k – 12k Plugin CVE patching & emergency | £25k – 80k | £4k – 10k Theme rebuild / refresh | £20k – 50k | £10k – 25k | TOTAL (5y, mid-band estimate) | £160k – 320k | £105k – 200k
The three line items that tend to surprise WordPress incumbents most are the plugin/licence subscription drag, the recurring CVE-patching effort (which becomes a real line in your engineering capacity once you cross ~20 plugins), and the theme-refresh cycle (which on WordPress is closer to a partial rebuild than an evolution). Wagtail's higher up-front number is typically recovered within 18–30 months.
What the numbers do not capture
- Opportunity cost. Engineering capacity spent on plugin compatibility is capacity not spent on new product. Wagtail's smaller surface area tends to free up a measurable percentage of your team's roadmap.
- Compliance evidence cost. Time spent assembling dependency provenance for Cyber Essentials Plus, ISO 27001 or supplier due-diligence is materially lower on Wagtail because there is less to inventory.
- Lock-in. Both platforms are open source. Both let you walk away. But the size of the "things that depend on a specific commercial plugin" footprint differs sharply — and that footprint is your lock-in.
- AI integration. Wiring an LLM or vector search into your CMS is a fundamentally cheaper exercise on a Python platform in 2025 than on a PHP one. Whether that matters depends on your roadmap; for most enterprises we work with, it does.
The right comparison is not "how much do they each cost to launch?" — it is "how much do they each cost to keep alive, secure and modern for five years?" On that basis the picture inverts. Wagtail is not the cheaper CMS to launch; it is the cheaper CMS to own.
055. Verdict — and where each one still fits
We build with Wagtail and we will not pretend otherwise. We also genuinely respect WordPress, and there are still enterprise contexts where it is the right choice. The honest summary:
Stay on WordPress if…
- You are running fewer than ~50 pages and a small marketing team, with no plans to integrate the CMS with other systems.
- You depend on a small, well-maintained set of commercial plugins (e.g. WooCommerce for a specific commerce flow) that has no equivalent in the Django ecosystem.
- Your in-house technical capability is firmly PHP/WordPress and you have no plans to add Python engineers.
- Time-to-launch in the first 8 weeks is the decisive constraint and the lifetime cost of the platform is genuinely not on your scorecard.
Switch to Wagtail if…
- You operate under any meaningful compliance regime (CE+, ISO 27001, FCA, sectoral regulator, EU/UK GDPR depth audits).
- You run multi-site, multi-language or both at any scale, and the configuration cost on WordPress is starting to bite.
- Your roadmap includes meaningful AI integration (RAG search, AI-assisted editorial, personalisation, semantic recommendations).
- You have, or want, a Python engineering capability — for any reason, including data science and ML alongside the CMS.
- You have crossed (or are about to cross) the threshold where editor freedom is causing layout drift, brand inconsistency, and Marketing's frustration.
- Total Cost of Ownership over a 3–5 year horizon is on the scorecard at all.
For a developer-deep-dive into the same comparison from a technical perspective, our companion post — "Wagtail vs WordPress in 2026: a developer's honest take" — walks through content modelling, security and editorial UX with code-level detail. This article is the version for the boardroom; that one is the version for the engineering Slack channel.
066. Common boardroom questions
"What does a WordPress → Wagtail migration actually look like?"
For a typical mid-sized enterprise estate it is an 8–14 week engagement. The pipeline parses your existing WordPress content (WXR export, custom-field exports, media library) and transforms it into typed Wagtail StreamField blocks via custom BeautifulSoup parsers. Relative links become database-backed page references; redirects are issued from every legacy URL; SEO continuity is the explicit success metric. The Wagtail CMS development hub page documents the full blueprint.
"Will we lose our SEO?"
No, if the migration is done properly. Most clients see flat-to-improving Search Console impressions in the first quarter post-launch, with a measurable uplift inside six months thanks to faster Core Web Vitals and a more crawlable structured-data layer. The risk is real — but it is a project-execution risk, not a platform risk.
"How do we evaluate this without a 60-page tender process?"
Most of the enterprises we work with start with a 2-week fixed-price Discovery Sprint. £8k, structured around the GDS Service Standard, four written deliverables — a risk-sequenced roadmap, a build-vs-buy analysis, a 5-year TCO model specific to your estate, and a procurement-ready evidence pack. The output is yours regardless of who you choose to build with.
"What about Drupal, Sitecore or Adobe Experience Manager?"
Drupal is a credible third option in the same enterprise tier and we respect it — it loses to Wagtail mostly on developer experience and editor UX in our experience, but it is closer to parity than WordPress is. Sitecore and AEM are different conversations: enterprise licence models with substantially higher TCO, suited to organisations that have already invested in the broader Adobe or Sitecore ecosystem. For most UK enterprises in the £150k–£500k CMS budget bracket, the practical short-list is Wagtail vs WordPress.
"We have a 200-plugin WordPress estate. Where do we even start?"
By auditing the estate first, not by quoting the migration. A two-week discovery sprint can tell you which plugins represent real business capability (and need a thoughtful Wagtail equivalent), which are vestigial (and can simply be dropped), and which are commodity (and replaced by Django core). The output halves the migration scope in most engagements we have run.
If your team is somewhere in this evaluation right now and you want a sanity check, the Discovery Sprint is exactly designed for that conversation — fixed price, written outputs you can hand to your board, and no obligation to engage us for the build.