Case Study · Legacy Modernization

Rebuilt a broken enterprise WordPress site — without changing the frontend.

The frontend stayed pixel-perfect. The backend got rebuilt from scratch — including accessibility, SEO semantics, and the entire editorial system.

frontend pixels changed
0
backend code rewritten
100%
accessibility target
WCAG 2.2 AA

A national K-12 education enterprise had inherited an expensive, broken WordPress build from a prior agency. The frontend looked polished. The backend was a catastrophe: bloated dependencies, a Gutenberg layout system that broke entire pages on a missing field, navigation rendered entirely in JavaScript (invisible to screen readers and search engines), and an internal team that had stopped trying to touch the site because every change risked breaking it.

I was brought in to do a “Ship of Theseus” rescue: rebuild every part of the platform while it stayed in active use, and without changing a single pixel of the frontend. The brand couldn’t afford a visible rebuild. The team couldn’t afford another quarter of paralysis. Here’s how a WordPress legacy modernization engagement works when the constraints are absolute.

The situation.

The client is a colossal presence in the K-12 sector — software, content, and services that touch nearly every school district in the country. To support long-term lead generation and unify their digital footprint, they’d invested heavily in a new flagship website. The agency that delivered it produced something visually credible and structurally unsound.

The original build was a masterclass in how not to architect an enterprise WordPress site. Flashy development trends had been prioritized over stability. The site ran on a sprawling node module dependency graph and an over-engineered Tailwind configuration that made even minor updates slow and disproportionately expensive. The Gutenberg editor — fundamentally incapable of handling the programmatic logic an enterprise content model needs — had been forced to do work it wasn’t built for. The result was dozens of fragile, inconsistent blocks that each broke in their own way.

The site was brittle in the specific, painful way that gets editors blamed. Omitting a single image field broke page layouts. The main navigation was implemented entirely in JavaScript, which meant it didn’t exist for screen readers, search-engine crawlers, or any user with JavaScript disabled. The internal development team was competent but completely overwhelmed by the convoluted backend. Marketing initiatives were bottlenecked. Sales velocity was suffering.

The constraints.

The mandate was clear and almost contradictory:

  • The frontend had to stay identical. No visible rebuild. Visitors and analytics could not detect a transition. The brand couldn’t afford the disruption of “we’re redesigning the site” — and leadership didn’t want to absorb another change-management cycle so soon after the original launch.
  • The backend had to be completely rebuilt. Not patched. Not extended. Replaced from the ground up, on a foundation the internal team could actually operate.
  • The work had to happen while the site stayed live. No long maintenance windows. No “we’ll launch the rebuild next quarter.” Continuous deployment, in production, against a moving target.
  • Accessibility had to be solved structurally. For a company serving public educational institutions, digital accessibility isn’t optional — and an overlay plugin wouldn’t survive procurement review.
  • The internal team had to leave with a backend they could maintain. The engagement was a one-time rebuild, not a long-term retainer. The platform had to outlive my involvement.

What I built.

Replaced the page builder with structured content models.

The first cut was the deepest. I ripped out the Gutenberg-based layout system entirely and replaced it with Advanced Custom Fields Flex Content. The chaotic surface of inconsistent blocks collapsed into a focused suite of flexible layouts that editors could actually predict.

Where the previous build had three different “card” formats with different column counts (force-choosing between them for every page), I built a single unified card module with toggleable options: column count, corner radius, image or video background, button presence, and color theme. Editors stopped having to remember which format produced which behavior. New formats could be added without re-training the team.

Enforced SEO semantics at the architecture level.

Enterprise content editors shouldn’t need to be SEO experts, and a well-built system shouldn’t let them ship semantically broken pages. The previous build had let the team ship layouts without H1 headings, organize the news feed as a draggable widget that broke URL semantics, and produce inconsistent breadcrumb structures.

I took a firm position on system governance: in places where editor flexibility had been weaponized against SEO outcomes, I deliberately reduced flexibility. H1 structure became mandatory and template-enforced. The news feed got a proper URL hierarchy under /blog/ with archive logic that couldn’t be moved around. The resource library got a custom post type with conventional permalinks instead of dynamic widgets pretending to be content pages.

Fixed accessibility at the code level, not with an overlay.

The systemic ADA issues came from architectural decisions: a JS-only navigation menu, missing landmark structures, and form patterns that didn’t work with assistive technology. I replaced the navigation with progressive enhancement (semantic HTML first, JavaScript layered on top), restored landmark structures globally, and rebuilt the form components to announce validation state correctly.

Complete WCAG 2.2 AA conformance often needs a few small front-end tweaks at the brand-color level too (contrast ratios are the most common stumbling block), but the structural work cleared the largest backlog of issues. The site that had been hostile to screen-reader users became navigable in days, not months.

Re-architected the resource library as conversion infrastructure.

The resource library — hundreds of whitepapers, videos, and case studies — was the beating heart of the client’s lead-generation funnel and the most cluttered part of the prior build. The previous setup combined excessive vertical whitespace with a “load more” pagination pattern that hurt both UX and search indexing.

I rebuilt it as a custom post type with proper filtering, clear conversion pathways, and reusable form-placement patterns. The “load more” anti-pattern got replaced with proper paginated archives that search engines can crawl. The same architecture supports an integrations directory modeled after the most functional examples in the B2B software industry.

Prepared the architecture for multilingual expansion.

The client is a forward-looking enterprise that anticipated international expansion. The previous backend had made localization effectively impossible — the tangled dependencies and brittle layouts couldn’t survive a translation pass.

By cleaning up the underlying architecture, the platform became truly multilingual-ready, starting with left-to-right languages and an integration path to premium localization systems like Weglot. The SEO upside is meaningful: search engines weight natively-structured translated pages above third-party-rendered alternatives, which gives the client a head start on international organic growth once they’re ready to flip the switch.

The outcome.

  • Faster time to launch. The consolidated module library let the marketing team ship new campaign pages in a fraction of the previous time. The bottleneck moved from “wait for developer” to “ready when content is.”
  • Surging lead generation. Resolving the systemic bugs, fixing Core Web Vitals, and refining the gated resource library cleared friction from the funnel — directly enabling improved lead capture.
  • An internal team that could actually maintain the site. Removing the bloated dependencies and replacing Gutenberg with structured custom fields gave the internal developers a backend they no longer feared. The dev tickets that had been blocked for months started shipping again.
  • Bulletproof infrastructure. The hardening work eliminated the most common attack surfaces and secured the brand’s SEO equity against the kind of opportunistic exploits that hijack enterprise sites and turn them into pharmacy or casino redirect networks.

Outcomes

Marketing launched new campaigns in a fraction of the previous time. Lead generation rose with cleaner Core Web Vitals and a refined gated resource library. The internal team — for the first time in years — could update the site without breaking it. And the platform was hardened against the SEO-hijacking attacks that target abandoned enterprise WordPress installs.

Let's talk about what you're building

No proposals. No pitch decks. Just a conversation about your project and whether I'm the right fit to build it.

Start a Conversation