gosysinfo.tech Free assessment
Home/Case studies/Mercer & Co.
Law firm · Boston, MAWordPress → Astro + Sanity3 weeks · Q3 2025

How a 17-year-old
WordPress site became
4× faster than its competitors.

Mercer & Co. had the SEO authority of a 17-year-old domain, 340 published posts, and a homepage that took 5.8 seconds to load. We migrated everything to a static Astro frontend with Sanity as the CMS — without losing a single ranking.

PageSpeed score
4299
+57
Largest Contentful Paint
5.8s0.4s
14×
Org. leads / month
1248
At a glance

The brief, in plain English.

ClientMercer & Co.
IndustryLaw firm · Trusts & estates
Founded2008
Site age17 years (WordPress since 2009)
Pages migrated340 posts · 28 service pages · 6 landing pages
Old stackWordPress · Elementor · WP Engine · 14 plugins
New stackAstro · Sanity · Cloudflare Pages · pageflare
Project length3 weeks (audit → launch)
EngagementFixed-price migration + 6-month care plan
01

The problem

"Our site loads slower than our competitors. We can't get a developer to call us back."

That's how Sarah Mercer, the firm's managing partner, opened our first call. The site had been built in 2009, redesigned in 2014, and patched continuously since. Three agencies had owned it. The current one had stopped responding to emails.

Performance was tanking.
PageSpeed score of 42. Mobile users were waiting 6 seconds for the homepage. Bounce rate on the contact page had climbed to 71%.
Security was a liability.
14 plugins, 4 of which hadn't been updated in over a year. The site had been hacked twice in 2024 — once during a hearing prep week.
Editorial was painful.
Publishing a new article meant logging into WP, fighting Elementor, hoping the preview rendered, then waiting 90 seconds for the cache to clear.
SEO was decaying.
They'd ranked #1 for "Boston estate planning attorney" for nine years. Two competitors with newer Webflow sites had passed them in 2024.
02

The audit

Before we quote a migration, we run our standard audit. Mercer's report came back at 47 findings — 6 critical, 14 warnings. The shape of the report dictated the shape of the rebuild.

AUDIT REPORT · MERCER & CO.47 findings
CRITICAL
Render-blocking JavaScript
4 files · 312kb · blocks first paint by 1.4s
CRITICAL
Unoptimized hero image
2.4mb JPEG · should be ~180kb WebP
CRITICAL
Missing CSP header
Vulnerable to XSS · OWASP A07
WARN
jQuery 3.6 + 14 plugins
1.1mb of legacy JS shipped to every page
WARN
No HTTP/2 or HTTP/3
WP Engine config is HTTP/1.1 only
WARN
CLS = 0.31 (target < 0.1)
Cookie banner injecting ~600px after load
INFO
No structured data
Missing schema for LegalService, Person
+ 40 more findings in full report

Three takeaways shaped the rebuild.

01
Static beats cache.
No amount of WP cache plugins would beat pre-rendered HTML on a CDN edge.
02
Editorial pain is a blocker.
If the new system was painful to update, they'd be back to square one in 18 months. Sanity won the demo.
03
Rankings are sacred.
340 posts had built up authority. We needed 1:1 URL parity, every redirect preserved, schema upgraded.
Run the same audit on your site →
03

The solution

Astro for the frontend (HTML-first, ships zero JS by default). Sanity for content (real-time editorial, structured schemas). Cloudflare Pages for hosting (free, global, instant rollbacks). Wired together in a 3-week build.

Editor
Sanity Studio

Real-time multiplayer CMS. Lawyers can edit live. Drafts preview before publish.

Build
Astro
GitHub Actions

Triggered by Sanity webhook. Builds the entire site in 18 seconds. Atomic deploy.

Edge
Cloudflare Pages
pageflare

Static HTML served from 285 locations. < 50ms TTFB worldwide. Zero infrastructure.

Visitor
Browser

HTML-first page. JS hydrates only the contact form. Total page weight: 84kb.

Why Astro?

HTML-first means the page is usable before any JavaScript runs. Mercer's site ships zero JS to most pages — interactive bits (the contact form, the case-search filter) are islands that hydrate independently.

Why Sanity?

The lawyers wanted a "Word document, but for the website." Sanity's portable text editor + custom schemas got us there. Three of the four partners now publish their own articles — without filing a ticket.

Why Cloudflare Pages?

Free. Global. 285 edge locations. Atomic deploys mean every push is a new immutable version — rollback is one click. Old WP host bill: $240/mo. New: $0.

04

The timeline

Three weeks. Fixed price. Here's how the days actually went.

Week 1Days 1–5

Audit + content extraction

  • Full audit report delivered to Mercer (Day 2)
  • Exported 340 posts + 28 pages from WP to Markdown
  • Mapped every URL → new URL (1:1 parity)
  • Imported into Sanity, modeled schemas with the partners
Week 2Days 6–10

Build + visual rebuild

  • Built Astro frontend pixel-matched to existing design
  • Migrated 14 plugin features to native Astro components
  • Wired contact form to Resend + Slack
  • Set up Cloudflare Pages preview deploys
Week 3Days 11–15

QA + cutover

  • QA on staging URL with all 4 partners
  • Set up 301 redirects in Cloudflare Workers
  • DNS cutover at 2am Sunday — zero downtime
  • Old WP archived to S3 for legal record-keeping
05

Before & after

The visual didn't change much. Everything underneath did.

Before · WordPressslow
mercer-co.com
WordPress 6.4ElementorWP EnginejQuery 3.6
LCP
5.8s
TBT
420ms
Page weight
3.2MB
Requests
142
Build time: 90s · Hosting: $240/mo
After · Astro + Sanity+57 pts
mercer-co.com
Astro 5SanityCloudflare Pagespageflare
LCP
0.4s
TBT
40ms
Page weight
84KB
Requests
12
Build time: 18s · Hosting: $0/mo
06

The results

Three months post-launch.

+57
PageSpeed pts
42 → 99
14×
Faster LCP
5.8s → 0.4s
Org. leads / mo
12 → 48
100%
Rankings preserved
Zero loss
$2.9k
Annual hosting savings
$240/mo → $0
18s
Build time
From 90s
The migration was almost boring. I expected disasters — broken links, lost rankings, the partners losing their minds at a new CMS. None of that happened. Three weeks in, we were live. Six weeks in, we were getting more inbound calls than we had in years.
SM
Sarah Mercer
Managing Partner · Mercer & Co.
YOUR TURN

Sitting on an old WordPress site that's costing you traffic?

Start with a free audit. We'll tell you exactly what's wrong and how much we'd quote to fix it. No commitment, no sales call (unless you want one).