I built a custom WordPress theme for a law firm struggling with search rankings and page speed. By cutting bloat, optimizing images, and fixing Core Web Vitals, I drove a 38% increase in organic traffic.
The Challenge
My client, a law firm, was hemorrhaging potential clients because of their website's poor performance. The site ranked poorly in search results, loaded at a snail's pace, and was failing Google's Core Web Vitals checks. They depended on organic search for client acquisition, but slow page speed and an outdated design were pushing prospects straight to their competitors.
The previous builders had used off-the-shelf WordPress themes, free and paid options that looked decent but didn't solve their problems. Over time, bloated theme code and poorly optimized images stacked up, making the site progressively slower and increasingly painful to maintain.

Website homepage
✅ Key Takeaway: Site speed directly impacts search rankings and user conversion. A law firm losing clients to slow page loads is essentially paying the cost of poor optimization without the benefits.
The Real Problems I Identified
Performance issues were bleeding them dry. The site had multiple problems stacked against it: oversized, unoptimized images, a bloated WordPress theme packed with features they'd never use, and unnecessary code on every page load.
The Core Web Vitals failures were killing them in Google's algorithm. Largest Contentful Paint (LCP) was dragging, Cumulative Layout Shift (CLS) showed unstable layouts jumping around, and First Input Delay (FID) indicated poor interactivity. Google was actively penalizing them for these failures, and it showed in their rankings.
On top of that, the design felt outdated and cheap. That's toxic for a law firm trying to attract high-value clients. The off-the-shelf themes couldn't capture their brand identity or communicate the specialization and expertise people expect from lawyers. And there was zero structured data markup, so no Google Rich Results opportunity at all.
Before/After: Performance Metrics
| Metric | Before | After | Improvement |
|---|---|---|---|
| Page Load Time | 5.2 seconds | 1.8 seconds | 65% faster |
| Largest Contentful Paint | 3.8 seconds | 1.3 seconds | 66% improvement |
| Cumulative Layout Shift | 0.18 | 0.04 | 78% better |
| First Input Delay | 145ms | 35ms | 76% improvement |
How I Rebuilt It
I rebuilt the site with a custom WordPress theme built from scratch for performance and brand consistency. No bloat, no compromises. Only what they actually needed.
Custom Bare-Minimum Theme - I built a lightweight custom theme from scratch in PHP and JavaScript instead of modifying an off-the-shelf option. No unused features, no bloat. Every line of code I wrote had a purpose and earned its weight.
💡 Pro Tip: Audit every plugin and theme feature you load. Most WordPress sites are dragging 50-100 KB of unused CSS. Cut just 30 KB of unnecessary code and you'll see dramatic Core Web Vitals improvements.
Professional Design System - I created a unique visual identity that set them apart from competitors. Modern typography, deliberate spacing, and a clean layout made the site not just prettier but more functional. The design communicated expertise and trustworthiness, exactly what law firm prospects need to see.
Image Optimization Strategy - I manually optimized every single image for web delivery. That meant resizing for different devices, converting to WebP with fallbacks, compressing without quality loss, and implementing lazy loading. Images typically represent 50-80% of page weight. Nailing this optimization cut their load times dramatically.
Web Optimization Best Practices - I implemented optimization across the stack: minified CSS and JavaScript, proper browser caching, optimized critical rendering paths, and asynchronous loading where it mattered. These changes slashed time to interactive.
Faster Plugins - I swapped out slow, bloated plugins for lightweight alternatives that did the same job with a fraction of the code. Every plugin had to justify its existence in terms of performance impact.
Google Rich Results Setup - I implemented structured data markup for local business schema, practice areas, attorney profiles, and client testimonials. This gave Google the information it needed to show rich snippets in search results, improving click-through rates.
Core Web Vitals Optimization Checklist
- Page load time under 2.5 seconds on 4G connection
- Largest Contentful Paint (LCP) under 2.5 seconds
- First Input Delay (FID) under 100 milliseconds
- Cumulative Layout Shift (CLS) under 0.1
- Critical rendering path optimized
- Images use WebP format with fallbacks
- Lazy loading implemented for below-fold content
- JavaScript optimized and asynchronously loaded
Professional Design System - I created a visual identity that set them apart. Modern typography, deliberate spacing, clean layouts, all reinforcing their expertise and trustworthiness.
The Results
The rebuild paid for itself immediately. Page load time dropped from over 5 seconds down to under 2 seconds. Largest Contentful Paint jumped 65% faster, solid "good" range for Google's algorithm.
Core Web Vitals went from failing across the board to passing on all three metrics. I killed the layout shifts, optimized the critical rendering path, and the lightweight custom code meant First Input Delay was snappy. The site felt fast.
⚠️ Warning: A slow website isn't just bad UX, it's a search penalty that gets worse every month. Every week of underperformance costs visibility and client inquiries.
The custom theme also cut their ongoing maintenance costs. No bloated plugins, no theme compatibility headaches with WordPress updates, no need to hire specialists every time they wanted to make a change. Just clean, purposeful code.
This project proved something I keep seeing: for specialized industries like law, a custom-built solution beats generic WordPress themes every single time, both in performance and in actual business results. The investment in proper optimization and thoughtful design pays dividends in search visibility, user experience, and client acquisition.
Get a Free Website Audit
Find out what's slowing your site down, where the security gaps are, and what you can improve. Takes 30 seconds to request.
Related Posts
How I Built a Mapbox Globe for 38+ Real Estate Metrics
My client publishes real estate data for 80+ countries and wanted a single interactive view that could replace dozens of separate comparison tables. I built a Mapbox GL JS globe with 38+ switchable metrics, bubble and choropleth view modes, city drill-down, currency toggle, and pinned popups that deep-link into the country pages.
A Docker Stack That Rewrites WordPress URLs on First Boot
Every WordPress dev knows the problem: restore a prod database locally and your browser immediately redirects to the live site. I moved the URL rewrite into MySQL's init hook so it runs automatically on first boot — no manual steps, no redirect loops.
E-E-A-T Isn't a Plugin: Author Schema for a Law Firm WordPress Site
My law firm client's inner pages had no visible author attribution — a real problem for YMYL legal content. I added Schema.org Person microdata to the hero, intentionally bypassed the WordPress author field, and built a per-page ACF toggle for opt-out.
Modernizing a Legacy Real Estate SaaS Without a Rewrite
My client's legacy Laravel 5.1 SaaS needed modernization across payments, search, and mapping — all on a codebase that cannot be upgraded without breaking dependencies. I overhauled all three layers in two weeks, without a rewrite and without a database migration.