Baseline
PageSpeed Insights, a Lighthouse run, and CrUX field data when the page has it. That is the before.
I'm Byron Johnson. I do page speed optimization for sites that are already live, including WordPress, React, Next.js, and Vite. I measure Core Web Vitals with PageSpeed Insights, Lighthouse, and CrUX, then fix the slow path in the framework the site already uses.
Fifteen-plus years in the industry. I use PageSpeed Insights, Lighthouse, and CrUX field data, and I use Claude, GitHub Copilot, and Cursor as development partners so the fix stays inside the theme, template, or app you already ship.
01 / Services
Send the URL. I measure it with PageSpeed Insights, Lighthouse, and CrUX, including WordPress, then fix the path that is holding the score.
PageSpeed Insights, Lighthouse, and CrUX field data. I name the metric that is failing, then fix that path.
The site stays on the stack it uses today, including WordPress. No rewrite onto a new framework.
The hero image, web font, render-blocking CSS, or server response that holds the first view. I shorten that path.
Main-thread JavaScript, dynamic imports, lazy loading, and third-party scripts that delay a tap or a click.
Images, fonts, and embeds that move the page after it paints. Space is reserved so the layout stays still.
Semantic markup, CSS, and vanilla JavaScript, plus React lazy loading when the UI is already React.
Vite builds, bundle weight, and legacy migration when the toolchain itself is what makes the page slow.
The same PageSpeed Insights and Lighthouse run after the change, plus a smoke test so the page still works.
02 / In place
Page speed work does not start with a rebuild. I use the same diagnosis on WordPress, React, Next.js, Vite, and plain HTML, and the edit lands in that codebase.
WordPress
Themes, templates, plugins, and third-party tags. I find the script, image, or font that is costing the score and change it in the WordPress site you already run.
React and Next.js
Server and client components, dynamic imports, and lazy loading. Server rendering and static generation stay in play when the app already uses them.
HTML, CSS, and JavaScript
Semantic HTML, CSS that does not block the first paint, and vanilla JavaScript. Reduced motion stays in place so a faster page is still usable.
Fonts and images
The Largest Contentful Paint element is often a hero image or a web font. I load that asset so the first view arrives, and I reserve space so the layout does not jump.
Vite and legacy builds
Multi-page Vite builds and older bundles. When the toolchain is what ships too much JavaScript, I lighten that build instead of replacing the framework.
03 / Method
A speed fix starts from the report, not from a new stack. I keep a baseline, change the cause, and run the same report again.
PageSpeed Insights, a Lighthouse run, and CrUX field data when the page has it. That is the before.
The script, image, font, layout shift, or server response that accounts for the failing metric. Not a list of every warning.
The edit stays in the theme, template, or app. A rewrite is a different engagement, on the hire page.
Lighthouse and PageSpeed Insights after the change, plus a Playwright smoke test so the page still does what it did.
The same measurement, on whichever of these the site already uses:
04 / Questions
I improve the speed of a site that is already live. The work covers Core Web Vitals with PageSpeed Insights, Lighthouse, and CrUX; Largest Contentful Paint; Interaction to Next Paint; Cumulative Layout Shift; JavaScript, CSS, and HTML; build tooling; and a second measurement after the fix. WordPress, React, Next.js, Vite, and server-rendered HTML are all in scope.
Yes. WordPress stays WordPress. I work in the theme, templates, and scripts the site already ships, including plugins and third-party tags that are costing the score.
No. The fix stays in the architecture you have. A rewrite is not part of this service.
Yes. Send the URL. I start from that page's PageSpeed Insights and Lighthouse report, fix the path that is holding the score, and run the same reports again. One slow page is enough to start.
I use Claude, GitHub Copilot, and Cursor as development partners. The baseline report and the current theme or codebase stay in context, so a change does not wander into a rewrite.
Send the form on this page with your name, email, the page URL, and a short note. I will reply back by email.
05 / Start
The URL is enough to start. Add the framework if you know it, and what feels slow. I read every message.