This is a painting contractor website redesign and SEO migration case study, and it starts with a mess. A New Leaf Painting Contractors has painted homes and businesses across Jacksonville and Northeast Florida since 2010. Its site grew right along with the company. Then a platform move broke a lot of it.
Here is how we rebuilt it, and why each decision protected something the site already had.
What went wrong when the site moved platforms?
The site was big. Hundreds of blog posts and paint guides. Video stories from customers. A page for nearly every town the crews work in.
Then the site moved to a new platform, and the move went badly:
- Hundreds of old addresses were redirected to the homepage.
- Pages that search engines still listed were simply gone.
- The blog lost the markup that tells Google what a post is.
Nobody meant harm. Platform moves are often handled as a copy job. It is not a copy job. It is a promise to every person and every search engine that already knows your addresses.
The owner, Thomas Drake, wanted three things. A site that looked like the company his customers know. Booking an estimate made simple. Real jobs shown. The hard part was delivering all of it without breaking what the site still had.
Why every old address had to keep working
A redirect to the homepage looks like a fix. It is not one.
Someone clicks an old link to a paint guide and lands on a homepage that has nothing to do with the question. They leave. Google sees the same thing at scale and concludes the page it used to rank no longer exists.
So the rule for the rebuild was blunt. Every page lives at its original address, with its own words carried over. That covers the service pages, the town pages, every blog post and every video story.
We rebuilt the whole site in Next.js. The tool matters less than the discipline. Nothing a customer or a search engine knew should go missing.
How we traced every address the site had ever published
The current site map is not the full list. Sites that have lived on several platforms carry addresses from each one.
So we traced every address the site had published, back through its older platforms. Not just what is live today. Everything.
That list became the working document for the whole project. If an address was on it, it got a decision. No address was left to chance, and none was left pointing at the homepage by default.
If you are planning a redesign, do this step first. It is dull, and it is the step that decides whether your rankings survive. Our SEO and analytics work starts here for the same reason.
One hop to the right page, or a clean "gone"
Every address on that list got one of two answers.
One hop to the page that replaced it. Not two hops. Not a chain through an old platform's leftovers. One step, straight to the right page.
A clean "gone." Some pages were thin and nearly identical to each other. They should never have been published. Redirecting them to something loosely related only pretends they mattered. Telling Google plainly that they are gone is the honest answer, and it keeps the good pages from sharing a signal with weak ones.
The choice between the two is a judgment call per page. That is why it takes a person, and not a rule applied to the whole list.
Why booking became one form that opens from every estimate link
A painting site exists to get one thing: a request for an estimate. So we made booking one form on the site itself.
A homeowner picks one of Thomas's real open times, or asks for a call. That is the whole decision for them.
Every estimate link on the site opens the same window. Header, town page, finished job, blog post. One form, one experience, one place to fix when something changes.
The request lands in the follow-up system his office already ran. We did not ask the office to learn a new routine. We fit the site into theirs.
Why finished jobs got their own pages with HOA details
Anyone can say they do careful work. A finished-job page shows it.
Each one covers what the crew found when they arrived, the prep and repairs, the products and colors, and the result in photos. It also carries the HOA approval details, because that is the question neighbors ask. In a neighborhood with rules, a page that says "this color was approved" answers the worry before the homeowner has to voice it.
These pages also give the site real, specific content that no competitor can copy, because it is a record of what this crew did on this house. If you run a contractor business, a site built around your actual work is the one that wins on trust.
What a map of about five hundred past jobs tells a homeowner
We plotted about five hundred of Thomas's past jobs on a map of Northeast Florida.
The question it answers is the one every homeowner has: has this crew painted near me? A map gives a faster, more convincing answer than any sentence about "serving your area."
The town pages follow the same standard. Each has its own finished jobs and its own map. We never put another town's name on a page, and never captioned a neighbor's job as local. A service area page should say something true about that place.
Reviews got the same treatment. Google, Facebook, Houzz and Yelp reviews now sit on one page beside the customer films, each marked with where it was first posted. The review figure comes from one place, so every page and its search markup agree.
How one source for business facts keeps hundreds of pages in agreement
A business has facts. The founding year on the state record. The insurance limit. The phone number. On a site with hundreds of pages, each fact gets repeated, and repeated facts drift.
One page says one thing, an older post says another, and the search markup says a third. Customers notice. So does Google.
Every business fact on this site now comes from one source. Change it once, and hundreds of pages change with it. It is the least glamorous decision in the project and probably the one that saves the most future headaches.
We also restored clean search markup: one business described once, breadcrumbs on every page, and article markup on every post. Large PNG hero images now ship as lossless WebP, identical pixel for pixel, so pages load faster on a phone without a softer picture.
What the owner now controls from the office behind the site
A site Thomas cannot touch is a site that decays. So we built an office behind it:
- A page builder where he edits any page, with every version kept.
- A leads inbox that stores each request before passing it on, so nothing is lost if another system hiccups.
- His own job pricer, rebuilt as a screen.
- A media library.
- Sign-ins for the office and the crew, each seeing only their part.
That is custom web development in the plain sense: software shaped around how one company runs.
You can read the full project on the A New Leaf Painting case study page.
Your next step
Planning a move or a rebuild? Before anyone opens a design file, export every address your site has ever published and mark each one: replaced, or gone. If that list does not exist yet, you are not ready to migrate. If you want help building it, start a conversation with us.

