HomeAboutServicesReferencesBlog
Contact
Language:TR|EN
Back to Blog
SEO

We Do Locksmith Case Study: Rebuilding a Three-City Locksmith Site for Local Search

How a three-shop Florida locksmith moved off WordPress to a static Next.js site: 84 search-focused pages, 360 redirects, schema, cookie-free call tracking.

Efe GerekSeptember 9, 20265 min read
We Do Locksmith website homepage

TL;DR

A three-shop Florida locksmith had an ageing WordPress site and an ads-only landing page for its Jacksonville shop. I rebuilt the whole domain as a static Next.js site: a brand homepage, a full Jacksonville section with service, car-make, area and guide pages, single hub pages for Tampa and Orlando, every old URL redirected, and an anonymous first-party call-click log. Launch scores: Lighthouse 97 performance, 100 SEO, accessibility and best practices.

Locksmith searches are among the most urgent queries Google handles. Someone is standing next to a locked car at night, types a few words, and calls whoever looks real and close. The website's only job is to be that result and make the call easy. This is how I rebuilt one for We Do Locksmith, a locksmith with shops in Jacksonville, Tampa and Orlando, Florida.

The starting point

The brand's main domain ran on an ageing WordPress install that mostly talked about one city. The Jacksonville shop lived on a separate subdomain built purely as a Google Ads landing page, with a swapped tracking number and no organic intent behind it. The result was a shop with a strong Google Business Profile and almost no organic presence in its own city.

The goal was narrow on purpose: give Jacksonville a site that can rank for its own service and neighbourhood searches, keep Tampa and Orlando fully functional, and do it without breaking anything the old URLs still carried.

Research first

Before deciding on a single page, I did three things:

  • Keyword clusters for Jacksonville: hub terms, emergency, car lockout, house lockout, car keys and fobs, residential, commercial, the shop counter, pricing, and the surrounding areas. Each cluster maps to one page, so two pages never compete for the same query.
  • A look at page one. For the tracked Jacksonville queries the results were held by small local businesses with modest domains, not national brands. That told me on-page relevance and the Business Profile would decide the outcome, not link building.
  • A full crawl of the old site and the subdomain, so every URL that had ever earned a link or a click could be redirected rather than lost.

Architecture

Everything lives on one domain now:

| Section | What it holds | |---|---| | Brand homepage | Three shops, one standard, a call button per city | | Jacksonville | 13 service pages, 32 car-make pages, 23 service-area pages, pricing, military discount, reviews, three long-form guides | | Tampa and Orlando | One complete hub page each, so their profiles and ads have a landing page today and room to grow later | | Company | About, contact, privacy policy, accessibility statement |

The Jacksonville section is deliberately deep. A car lockout page, a key fob page and an ignition repair page are different searches with different prices and different questions. Car-make pages cover the long tail that directories never write for. Area pages carry real local notes and drive times rather than a city name pasted into a template.

Content as data

All copy lives in typed data files, not in components. A validation step enforces the rules before anything builds: title length, description length, minimum word counts per page type, and a few brand rules. If a page is too thin or a title is too long, the build stops. That is how 84 pages shipped without a single one falling below the bar.

Two editorial decisions came out of the audit stage. The guide about being locked out of a car was retitled as pure advice so it stops competing with the service page. And the Locksmith schema carries no self-assigned rating, since Google treats a rating on the business's own page as self-serving; the visible rating stays on the page, the markup stays clean.

Conversion path

There is no contact form and no text link anywhere. A person who is locked out calls. Every page has a call button, phones get a sticky call bar, and the number on the site matches the Business Profile exactly. Paid visitors are the one exception: for sessions arriving from ads, the tracking number pool loads so the ads team keeps its attribution. Organic visitors always see the real number.

Measuring calls without cookies

The owner wanted to know which pages make the phone ring. Instead of relying on analytics alone, the site records every tap on a phone link to its own small database on Cloudflare: page, placement, shop, device class and traffic source. No IP address, no user agent, no cookie, so no consent banner is needed and the privacy policy needs one sentence. A private dashboard behind Cloudflare Access shows the numbers by day, page and source.

Migration

The old site had a few hundred URLs across the domain and the subdomain. Every one of them is in a redirect map, 360 rules in total, pointing at the closest new page or returning a deliberate 410 for junk. DNS moved to Cloudflare in two steps so the old site kept serving until the new one was ready, then the custom domain flipped over. A sample of the redirects was tested on the live domain within minutes of launch, along with every core page, the sitemap and the security headers.

Launch numbers

  • Lighthouse: 97 performance, 100 SEO, 100 accessibility, 100 best practices
  • 84 indexable pages, all with unique titles under 60 characters and descriptions in range
  • 360 redirect rules, zero broken internal links, zero issues in two independent site crawls
  • Static export on Cloudflare Pages, Brotli compression, images served as AVIF and WebP

Rankings are tracked monthly from a baseline of no top-ten positions for the tracked Jacksonville queries. That is the honest starting line, and the reason the project exists.

What carries over

The pattern is not specific to locksmiths. Any local service business with many distinct jobs, a real service area and phone-first customers benefits from the same structure: one page per intent, real area pages, a clean schema entity per location, a call-only conversion path, and measurement that respects the visitor. If that sounds like your business, the locksmith website page explains what is included and how pricing works.

Case StudyLocal SEOLocksmith WebsiteNext.jsCloudflare PagesWordPress MigrationSchema.org

Have a project?

Corporate website, mobile app, or a redesign of your existing site — let's talk about your project.