18 months with a prior agency.
Zero calls. Here is what we found.
A renovation contractor serving all five NYC boroughs had spent 18 months with a local SEO agency and was not generating inbound calls from their website or Google Business Profile. Our comprehensive audit identified 10 critical findings — including a residential address suppressing GBP rankings, only 26 reviews against competitors carrying 800-1,000+, and 5 actively harmful citations. We delivered a 90-day, 25-task remediation plan, then rebuilt the entire foundation: custom WordPress theme, 200+ URL redirect migration via native theme handler, borough-specific location page architecture, hardcoded schema, and ongoing Local SEO and Website SEO.
Renovation contractor serving all five NYC boroughs
An established home renovation contractor operating across all five New York City boroughs — Manhattan, Brooklyn, Bronx, Queens, and Staten Island. Multi-service scope covering kitchen renovation, bathroom renovation, basement finishing, flooring, and general home improvement. Legitimate field reputation with a strong completed project portfolio, but a digital presence that was generating no measurable inbound activity.
They had been paying a local SEO agency for 18 months. The prior agency had produced monthly reports, maintained their Google Business Profile at a basic level, and made claims about keyword rankings — but the phone was not ringing from digital sources. No documented audit had ever been delivered. No redirect map existed. Schema was managed via a plugin that had not been updated in 14 months. Citation work had not been touched since the initial onboarding.
When they brought us in, the first step was the audit — before any recommendations, before any rebuild, before any ongoing work. The audit came back with 10 critical findings, several of which explained the zero-call problem immediately.
What 18 months of prior agency work had left in place
Residential address on GBP suppressing local pack rankings
The Google Business Profile was listed with a residential home address as the business address — a known GBP trust signal issue. Google suppresses local pack rankings for service-area businesses that use a residential address as a displayed business address. The fix required switching to a proper service-area business configuration (no address displayed), which is standard for a contractor who serves clients at their location rather than receiving walk-ins.
26 reviews against competitors carrying 800-1,000+
Top competitors in Manhattan and Brooklyn renovation were carrying 800-1,000+ Google reviews with consistent recent velocity. The client had 26 reviews with no recent activity. In high-competition NYC renovation markets, review count and velocity are primary trust signals for prospective clients clicking Google Maps results. A contractor with 26 reviews next to a competitor with 900 reviews loses the click regardless of ranking position.
5 actively harmful citations with wrong NAP data
Citation audit identified 5 directories with actively wrong NAP (Name, Address, Phone) data — wrong phone number format, wrong address (an old address from a prior location), and one listing with a wrong business name variant. These are not neutral — wrong NAP data actively sends inconsistency signals that work against GBP trust score. The prior agency had built citations at onboarding and never re-audited them.
Absent from Houzz, Yelp, and BBB entirely
Three of the highest-trust renovation-specific directories had no listing at all. Houzz is particularly damaging to miss for renovation contractors — it functions as both a citation source and an independent lead channel that homeowners in the Northeast US use heavily when selecting renovation contractors. BBB absence removes a trust signal that a meaningful portion of NYC homeowners specifically check before hiring contractors for large home projects.
Remaining 6 findings from the audit
- No borough-specific location pages — one generic service page claiming to cover all five boroughs, no dedicated targeting per borough
- Schema entirely absent across all service templates (no LocalBusiness, no Service schema, no BreadcrumbList, no FAQPage)
- 200+ orphaned URLs from prior site migrations returning 404s with no redirect map documented
- GBP service list mismatched to website service pages — GBP listed services the website did not have pages for, and vice versa
- No Google Posts activity in 6+ months — GBP signal decay on a profile that needed every positive signal it could get
- SEO plugin 14 months out of date — managing schema and meta tags on an unmaintained plugin creating both security and schema accuracy risk
Three insights worth surfacing
Three patterns from this specific engagement that generalize across renovation contractor work in dense urban Northeast US markets — surfacing them because most agencies do not, and they affect audit conclusions more than most technical findings:
- A residential address on a contractor's Google Business Profile is a ranking suppressor that most agencies never audit for — and it is one of the first things we check. Service-area businesses (contractors who go to the customer rather than receive walk-ins) should never display a home address on their GBP profile. Google's local ranking algorithm treats a displayed residential address as a trust-diluting signal for service-area businesses: it creates category ambiguity (is this a showroom? a walk-in business?) and triggers suppression in local pack results where a properly configured service-area business without a displayed address would rank higher. The fix is straightforward — switch to service-area business configuration, remove the displayed address, define service area by named cities or postal codes — but it requires knowing to look for it. The prior agency had managed this GBP for 18 months and had not identified or corrected this. We found it in the first 20 minutes of the audit. It was the single most impactful fix in the entire 90-day remediation plan, and it cost nothing to implement.
- New York City is not one Local SEO market, and agencies that treat it as one are producing reports without producing rankings. The five boroughs — Manhattan, Brooklyn, Bronx, Queens, Staten Island — each have their own Google local index context, their own competitive landscape, and their own search demand patterns for renovation services. "Kitchen renovation" searches in Park Slope Brooklyn are different query events from "kitchen renovation" searches in Riverdale Bronx, even though both are technically NYC. A contractor with one generic service page claiming to serve all five boroughs has no page that tells Google they are specifically relevant to a homeowner in a specific borough. We built dedicated borough-specific location pages for all five boroughs, each with borough-specific H1, schema with borough-specific areaServed, and borough-referenced body content. The result is five separate ranking opportunities instead of one underperforming generic page. Most renovation contractor agencies in the New York market are not doing this because it requires building five pages instead of one. The ranking gap is exactly proportional to that effort gap.
- When an agency delivers monthly reports for 18 months without generating calls, the problem is almost never the channel — it is the foundation. Fixing the foundation before adding any new spend is always the right sequence, and clients almost never hear that recommendation from their current agency. In this engagement, the 18-month prior agency relationship had added content, tweaked meta descriptions, and sent monthly ranking reports. But the GBP had a residential address suppressor, the citation profile had 5 harmful listings, the schema was on an unmaintained plugin, and the redirect map was undocumented. None of these are content problems. None of them are fixed by writing more blog posts or improving meta descriptions. They are foundation problems, and foundation problems block all other SEO work from producing results. The correct sequence is: audit the foundation, fix what is broken, then layer on content and citations. An agency that skips the audit and goes straight to monthly deliverables is billing for outputs that cannot produce outcomes on a broken foundation. We recommend this audit-first sequence to every contractor we onboard, specifically because this engagement showed us what 18 months of output-without-foundation looks like in practice.
These observations generalize across renovation contractor and broader home services work in dense urban Northeast US markets — not unique to this single engagement.
What we built and how
Comprehensive audit and 90-day remediation plan
Before any rebuild work began, we delivered a full written audit covering all 10 critical findings. Each finding was documented with evidence (screenshots, GSC data, citation comparison screenshots, competitor review count benchmarks), severity classification (blocking vs. compounding vs. hygiene), and a specific remediation action.
The audit produced a 90-day, 25-task action plan with tasks sequenced in dependency order: GBP address fix first (highest leverage, zero cost), then citation correction (harmful listings before new builds), then redirect migration and theme rebuild (parallel workstream), then borough location page builds, then schema implementation, then ongoing cadence work. The sequencing matters — adding citations on a broken GBP foundation would have compounded the wrong signals, not fixed them.
Google Business Profile remediation
GBP remediation was the highest-priority workstream — started on day 1, before any website work began. Key actions: switched profile from displayed-address business to service-area business configuration (no address displayed), defined service area by individual NYC borough names plus key adjacent ZIP codes, corrected the business category to General Contractor with appropriate secondary categories, rebuilt the services list to match the new website service pages exactly, removed 6 months of stale posts and established a weekly Google Posts cadence, rebuilt the photo gallery with completed renovation project photos (geo-tagged, descriptively named files), and launched the review generation workflow.
The address fix alone produced measurable local pack visibility improvement within 3-4 weeks — before the website rebuild was even complete. This is consistent with how GBP trust signal corrections behave: they are not slow-building like citation campaigns or content strategies. A suppressor removed produces rapid visibility response.
Full custom WordPress theme rebuild
Hand-coded WordPress theme built in-house. No page builders. No SEO plugins (the unmaintained 14-month-old plugin was removed entirely). The theme handles everything natively: schema injection, meta tags, form submissions, redirects, XML sitemap, and template rendering. Only third-party plugin: LiteSpeed Cache for performance.
Theme architecture: flat URL structure (depth 2 maximum), mobile-first responsive, borough-specific location page templates for all five NYC boroughs, individual service templates covering the full renovation scope, and a custom contact form handler routing lead inquiries directly to email with no third-party form plugin involved. The previous plugin-managed SEO setup was replaced with native theme functions for schema, meta tags, and redirects — zero plugin dependency outside LiteSpeed Cache.
200+ URL redirect migration via native theme handler
The prior site migrations had left 200+ orphaned URLs with no redirect map. Export process: Google Search Console Coverage and Sitemap data, Bing Webmaster Tools indexed URL data, and historical crawl data to capture URLs no longer surfacing in GSC but still indexed by other crawlers. Cross-referenced against the new site URL structure. Mapped each old URL to its closest current equivalent.
All redirect rules loaded into the native theme redirect handler as a structured PHP array. The handler executes at the WordPress init hook, checks the request URI against the redirect map, and issues a 301 response before WordPress fully loads. No plugin, no database queries per redirect, rules version-controlled with theme code. The unmaintained SEO plugin that had previously managed some redirects was removed entirely — redirect responsibility consolidated into native theme handler.
Five-borough location page architecture and schema build
Dedicated location pages built for all five NYC boroughs: Manhattan, Brooklyn, Bronx, Queens, and Staten Island. Each page is a distinct template targeting that borough specifically — not a generic service page with the borough name swapped in. Each borough page received a borough-specific H1, borough-specific schema with areaServed matching the borough name and key neighborhood names, borough-relevant body content referencing local permit processes and typical project scope in that borough, and internal links connecting to the service pages most relevant to that borough's demand pattern.
Schema implementation across all templates: LocalBusiness with GeneralContractor subtype on homepage, Service schema on each individual renovation service page, FAQPage schema with strict matching between visible HTML content and schema content, BreadcrumbList on every page, Speakable schema with CSS selectors for AI Overviews and voice search. All schema hardcoded via native theme helper functions — zero plugin dependency. The previously unmaintained plugin schema was audited, found to have 3 FAQPage mismatches (schema content not matching visible HTML), and replaced entirely.
Citation correction, new directory builds, and ongoing Local SEO
Citation work started with correction before addition: the 5 actively harmful listings (wrong phone, wrong address, wrong name variant) were corrected or removed before any new citations were built. Adding new citations on top of harmful existing ones compounds the inconsistency signal — correction is always the first step.
New directory builds: Houzz, Yelp, BBB (all three absent at audit), plus renovation-specific directories relevant to the Northeast US market (HomeAdvisor, Angi, Porch, Thumbtack, Networx, BuildZoom) and NYC-specific local directories (NYC Department of Buildings licensed contractor directories, borough Chamber of Commerce listings, Nextdoor Business). Ongoing monthly scope: GBP management, Google Posts, citation re-verification every 6 months, schema audit reruns, monthly content additions targeting NYC renovation permit guidance, seasonal renovation queries, and borough-specific demand peaks, plus a structured review generation workflow targeting the velocity gap against competitors.
The methodology in one sentence
Audit the foundation first — fix what is actively suppressing rankings before adding any new spend — then rebuild with a custom theme, native redirect handler, hardcoded schema, and borough-specific location targeting, and sustain it monthly with ongoing Local SEO and Website SEO.
Why we did not name the client
The client did not give written permission to be named publicly. They operate in a competitive New York City renovation market across five boroughs and prefer their specific playbook not be published with their name attached, because competitors would either copy the approach or attempt to recruit our agency away from them.
The work, scope, findings, methodology, and observations described here are all real. Only the specific identity is withheld. If you are seriously considering working with us and want to verify this case study specifically, we will walk you through the specifics on a call once we have confirmed you are not a competitor scoping the work. Often we can connect you with the actual client for a reference call after the client has agreed to take it.
That is the level of transparency we commit to once trust is established on both sides.
Case study methodology questions
Why is this case study anonymized?
The client did not give written permission to be named publicly. They operate in a competitive New York City renovation market and prefer their specific playbook and identity not be published with their name attached. The work, scope, findings, and methodology described are all real — only the specific identity is withheld until we have written consent.
Can you connect me with the actual client for a reference?
Yes, on a call, after we have confirmed you are not a competitor scoping the work. Once you are a seriously engaged prospective client and the existing client has agreed to take the reference call, we can introduce you directly.
What were the 10 critical findings?
(1) Residential address on GBP suppressing local pack rankings. (2) Only 26 reviews vs 800-1,000+ for top competitors. (3) 5 actively harmful citations with wrong NAP data. (4) Complete absence from Houzz, Yelp, and BBB. (5) No borough-specific location pages. (6) Schema entirely absent across service templates. (7) 200+ orphaned URLs with no redirect map. (8) GBP service list mismatched to website service pages. (9) No Google Posts activity in 6+ months. (10) SEO plugin managing schema and redirects, 14 months out of date.
How does Local SEO work differently in New York City?
NYC is five distinct borough markets, not one. Each borough has its own Google local index context. A contractor needs dedicated borough-specific location pages (not one generic service-area page) to rank in each borough. NYC also has significantly higher review volume benchmarks: top renovation contractors carry 500-1,000+ reviews. The review velocity gap is the hardest single problem to close quickly in the New York market.
Why no SEO plugins like RankMath or Yoast?
The prior agency had this contractor on a plugin-managed SEO setup with a plugin that had not been updated in 14 months — a security and schema accuracy risk. We replaced it entirely with native theme functions. Only LiteSpeed Cache plugin is used (for performance). Schema, meta tags, and redirects are all hardcoded into the theme. Zero plugin update risk.
Can you do this audit and rebuild for my renovation business?
Yes. Our audit is free and covers GBP, citation profile, schema, redirect map, on-page SEO, and competitor benchmarking. Our Growth Bundle covers ongoing Local SEO and Website SEO at $799-$899 per month. Custom website rebuilds are $997-$3,997+ one-time. See our contractors page for the full service breakdown.
Case study documented by the RZ Web Media Team. Renovation contractor SEO and custom website development for US and Canadian contractors since 2020. Last updated June 2026. About our team.
More from RZ Web Media
Contractor Marketing & Websites
Our full renovation and roofing contractor service breakdown — pricing, scope, named competitor comparisons.
Learn more →British Columbia Renovation Contractor
Same service scope, different market: full custom theme build, 278-redirect migration, and ongoing Local SEO for a family-owned renovation contractor across Greater Vancouver.
Read the case study →All Case Studies
Browse anonymized case studies across roofing, renovation, restaurant, and immigration verticals.
See all →