Scott Mather

Case Study: Rescuing a Medical Education Network

The Gist

I took over three neglected medical education properties from a departed development vendor: a high-traffic WordPress site (FootEducation), a recently migrated nine-subsite WordPress multisite network (OrthoEducation), and a separate Laravel diagnostic survey app (FootPainIdentifier). Working solo over about 2 months of part-time sessions, I removed the vendor’s leftover access and pirated software, cut the bloat roughly in half, ended recurring crashes, and built out security, backups, and monitoring from scratch. Nothing editor-facing broke at any point, and search performance climbed steeply on both WordPress properties.

The owner is a medical expert, not a tech expert. Every change below also had to be explained in plain language, gated on their approval when it was significant, and invisible when it wasn’t.

How I work

The same method ran through all three projects:

FootEducation: security remediation and stabilization

An encyclopedic patient-education site on its own VPS, behind a CDN firewall the server had been silently bypassing.

Result: site audit errors went from 449 to 0, Google Search clicks rose 114% year over year, and the crash pattern stopped.

OrthoEducation: the nine-subsite cleanup

The flagship’s multisite sibling, cloned by the vendor and left to rot. Abandoned page builders, five backup plugins, and enough junk that the database had pushed the host into write throttling.

Result: Google Search impressions up 33x over a year as consolidation and indexing stabilized, on infrastructure half the size.

FootPainIdentifier: rescuing a crashing app

A Laravel survey app holding 10,000+ patient responses, crashing regularly on a 1 GB server with no firewall and the previous vendor’s credentials scattered through it.

Result: an EOL-framework app that used to fall over now runs quietly on a $6/month server, monitored and backed up.

By the numbers

Metric Result
OrthoEducation database 2.1 GB → 166 MB
OrthoEducation files 5.5 GB → 2.8 GB
Active plugins (OE) 37 → 19
Orphaned DB tables dropped ~275
FootEducation audit errors 449 → 0
FootEducation search clicks +114% YoY
OrthoEducation search impressions 33x over one year
Scanner probes banned in one validated day 870+
Pages visually verified per cleanup phase 27
Editor-facing breakage across all of it 0

All three properties now push nightly database backups to off-server object storage with 30-day retention, replacing a mix of broken, local-only, and nonexistent backup schemes.

The part clients never see

All of this ran on documentation: per-server maps, chronological session logs, phased cleanup plans, and plain-language owner updates that translated the technical stuff to be easier to digest. That documentation is why I as a solo operator could hold three servers’ worth of state in order, and it’s the working style I bring to everything on this site, client work, and personal projects alike.

The tooling this work produced, including the migration CLI and the visual smoke-test runner, is described in Ops & Tooling.