Case study / Clark’s Junk Removal & Demolition / Junk removal / Portsmouth, RI
A Rhode Island hauler was earning search impressions on ten pages. Ten weeks after the rebuild, he was earning them on seventy-three.
Clark’s had a Wix site with auto-generated URLs, no city pages, and no service depth. It ranked for the handful of terms a five-year-old business ranks for by default, and nothing else. We rebuilt it as a 73-page Next.js property engineered for how AI search retrieves local answers. Sixty-eight days later it was ranking for 720 queries that had never returned it at all.
- pages earning search impressions — same 68-day window, YoY
10 → 73
pages earning search impressions — same 68-day window, YoY
- queries now ranking that didn’t rank a year ago — 250 in the top 10
720
queries now ranking that didn’t rank a year ago — 250 in the top 10
- non-branded queries in the top 10 — 171 → 319, same window YoY
+87%
non-branded queries in the top 10 — 171 → 319, same window YoY
- Lighthouse mobile performance — run August 9, 2026
97 / 100
Lighthouse mobile performance — run August 9, 2026
+74% organic clicks and +65% impressions, July YoY · 36.0 → 17.6 average position · 41.2 → 8.7 for “portsmouth junk removal” · position 1.1 for “junk removal portsmouth ri” at 17.9% CTR · July 2026 is the highest-click and highest-impression month in the full 16-month Search Console record
The situation
Ranked at home. Invisible everywhere else.
Clark’s Junk Removal & Demolition runs junk removal, dumpster rentals, and demolition out of Portsmouth, Rhode Island, covering Newport County, the East Bay, and Southern Massachusetts. Family-owned, founded 2022, 68 verified reviews across five platforms, a 5.0 average on 45 Google reviews.
The old site was on Wix. Wix is not slow — it posts the highest Core Web Vitals pass rate of any major site builder. The problem was architecture. The indexed URL set was auto-generated slugs: /services-3, /services-4, /services-8, /about-1, /about-2, /contact-9, and — indexed and collecting impressions — /copy-of-junk-removal. Zero city pages with real content. Zero dedicated sub-service pages. Across the whole of June 1 – August 7, 2025, exactly ten URLs on the domain surfaced in Google at all, and six of them were Wix junk slugs.
To be clear about what was working: Clark’s already ranked for the obvious head terms in his home town. Five years of business and 45 five-star Google reviews will do that. He was position 2.3 for “junk removal portsmouth ri” and top-ten in Newport, Middletown, and Tiverton before we touched anything. What he did not have was reach. Ten pages cannot answer hundreds of different questions. Every query that wasn’t a head term — every neighboring town, every specific service, every long-tail phrasing someone types or asks an AI assistant — returned nothing.
What we built
Seventy-three pages, written page by page.
Complete rebuild on Next.js + React, Tailwind, Vercel. 73 pages, written page by page rather than templated.
The obvious move on a local service site is templated city pages — same paragraph, swap the town name. We refused it. Templated city content is the exact pattern Google devalues and AI retrieval systems skip.
- 28 city pages, each naming real neighborhoods, landmarks, and road names — 5 to 12 genuine neighborhoods per page, not a radius list
- 30 sub-service pages, each with a unique intro, items-handled list, and 4–5 FAQs
- Rural towns given full pages on purpose — Little Compton, Rehoboth, Dighton, Berkley, Freetown. Low competition means a real page is a cheap number one
- Full internal linking web with breadcrumbs and descriptive anchor text
The AI-search layer
LocalBusiness JSON-LD on the home page and all 28 city pages with full NAP, hours, geo, social profiles, and aggregate rating. Service schema on service pages, FAQPage on the FAQ page, Review schema on highlighted reviews. Canonical URLs, OG and Twitter Card meta sitewide, one H1 per page, descriptive alt text and filenames carrying service plus city.
The conversion layer
A sticky mobile Call / Text / Quote bar on every page. A trust bar under every hero — Same-Day, Licensed & Insured, Family-Owned, 10% Military and First Responder. Full pricing published rather than hidden behind a form — a full rate card, 11 line items. Navigation collapsed from 30+ items to 6, with /services as the master directory.
On navigation
The client’s instinct was to cut the sub-service pages because the menu was overwhelming. That would have thrown away the entire asset. Thirty dedicated service pages are the citation surface — when someone asks an AI assistant who removes pianos in Newport County, the model needs a specific page with location signals, pricing context, and FAQ schema to cite. Nav bloat is a menu problem with a menu fix. Keep the pages, fix the menu.
Clark’s already ranked for junk removal in Portsmouth. What he couldn’t do was answer any of the other seven hundred questions people were asking. That’s not a rankings problem — it’s a surface area problem, and you fix it by building the pages.
Results
What actually changed.
Two identical 68-day windows, one year apart — June 1 – August 7, 2025 on the old Wix site against June 1 – August 7, 2026 on the new build. Nothing blended across launch.
Search footprint, year over year
| Metric | 2025 | 2026 | Change |
|---|---|---|---|
| URLs earning impressions | 10 | 73 | 7.3x |
| Total queries ranking | 528 | 884 | +67% |
| Non-branded queries in top 20 | 240 | 460 | +92% |
| Non-branded queries in top 10 | 171 | 319 | +87% |
| Non-branded clicks | 51 | 79 | +55% |
Traffic, same window
| Metric | 2025 | 2026 | Change |
|---|---|---|---|
| Organic clicks | 225 | 310 | +38% |
| Impressions | 12,520 | 14,856 | +19% |
| Average position | 36.0 | 17.6 | — |
| CTR | 1.80% | 2.09% | — |
July, head to head
| Metric | July 2025 | July 2026 | Change |
|---|---|---|---|
| Clicks | 92 | 160 | +74% |
| Impressions | 5,058 | 8,331 | +65% |
| Position | 35.8 | 20.1 | — |
Terms the old site could not reach
| Query | Position, 2025 | Position, 2026 |
|---|---|---|
| portsmouth junk removal | 41.2 | 8.7 |
| junk removal ri | 23.3 | 12.0 |
| junk removal rhode island | 23.3 | 13.5 |
| dumpster rental near me | 10.5 | 1.6 |
| junk haulers near me | 5.6 | 1.4 |
| dumpster rental rhode island | 17.6 | 14.4 |
Head terms the old site already held, tightened
| Query | Position, 2025 | Position, 2026 | CTR now |
|---|---|---|---|
| junk removal portsmouth ri | 2.3 | 1.1 | 17.9% |
| junk removal tiverton ri | 6.7 | 4.6 | 22.2% |
| junk removal middletown ri | 4.4 | 2.7 | — |
| junk removal newport ri | 7.0 | 5.9 | 8.6% |
| dumpster rental portsmouth ri | 5.7 | 4.8 | 10.2% |
| junk removal near me | 9.9 | 8.8 | 5.5% |
Did not rank at all in 2025
| Query | 2025 | Position now |
|---|---|---|
| construction dumpster rental | did not rank | 1.0 |
| dumpster rental service | did not rank | 1.0 |
| tiverton junk removal | did not rank | 1.9 |
| tiverton ri junk removal | did not rank | 2.2 |
| deep river junk removal | did not rank | 3.5 |
| newport ri junk removal | did not rank | 4.6 |
| little compton junk removal | did not rank | 4.7 |
| piano removal providence | did not rank | 5.4 |
| middletown ri junk removal | did not rank | 6.4 |
| little compton ri junk removal | did not rank | 7.9 |
New pages, current position
| Page | Position |
|---|---|
| /service-areas/little-compton-ri | 5.4 |
| /services/piano-removal | 6.1 |
| /service-areas/mattapoisett-ma | 9.5 |
| /service-areas/barrington-ri | 9.7 |
| /service-areas/wareham-ma | 9.8 |
| /services/grizzly-bag | 10.6 |
Indexation
The sitemap contains 73 URLs — 30 service, 28 city, 15 core. 72 earned impressions in the first 68 days. All 58 service and city pages earned impressions — 13 in the top 10, 40 in the top 20, median position 15.3.
- Performance
97
Performance
- Accessibility
95
Accessibility
- Best Practices
96
Best Practices
- SEO
92
SEO
First Contentful Paint 1.0s · Largest Contentful Paint 2.4s · Cumulative Layout Shift 0. Mobile audit run August 9, 2026, Lighthouse 13.2.0.
Before and after
The old site and the new one, side by side.
| What | Old Wix site | New build |
|---|---|---|
| Indexed URL pattern | /services-3, /about-2, /copy-of-junk-removal | /services/piano-removal, /service-areas/little-compton-ri |
| City pages with real content | 0 | 28 |
| Dedicated sub-service pages | 0 | 30 |
| Structured data | None identified in the index | LocalBusiness, Service, FAQPage, Review |
| Pricing published on site | No | Full rate card, 11 line items |
| URLs earning impressions | 10 | 73 |
| Non-branded queries in the top 10 | 171 | 319 |
| Position, “portsmouth junk removal” | 41.2 | 8.7 |
| Lighthouse mobile performance | — | 97 |
The paid program — built from zero, spring 2024 → October 2025
From an empty account to 110 leads a month.
- Tracked leads
587
Tracked leads
- Average cost per lead (tracked window)
$38.42
Average cost per lead (tracked window)
- A lead in the best quarter
$18.75
A lead in the best quarter
- Leads in the peak month
110
Leads in the peak month
What we started with
Nothing. When we took over, this Google Ads account had never spent a meaningful dollar. No prior agency’s wreckage to clean up — just a blank slate and a South Coast market to go win. Every campaign that’s ever mattered in this account has our name on it.
What we built
- Light Demolitions — the workhorse, $12.9K of the total spend. Demo is the brand; the ads leaned into it.
- Tight-Radius junk removal— it’s in the campaign name. We buy the neighborhoods Coleman can serve profitably, not the whole metro.
- Cleanouts, plus niche item campaigns — shed removal, hot tub removal — for the searches that convert like crazy in this market.
85% of spend went to mobile. Junk removal is a phone business.
The numbers
| Quarter | Leads | Cost/lead |
|---|---|---|
| Q4 2024 | 15 | $142.52 |
| Q1 2025 | 159 | $18.75 |
| Q2 2025 | 137 | $38.95 |
| Q3 2025 | 246 | $38.26 |
| Q4 2025 (wind-down) | 30 | $89.56 |
Tracked window: $22,553 in, 587 leads out, $38.42 a lead. July 2025 alone brought 110. Across 2025, 572 leads.
One thing we’re telling you that most agencies wouldn’t: the program’s first two quarters ran 772clicks with zero recorded conversions — conversion tracking wasn’t live yet. Those months are excluded from the lead math above, which means the totals undercountwhat the ads produced. We’d rather undercount than guess.
Where it landed
The paid program ran through October 2025 and the account has been quiet since. Coleman’s number, not ours: annual sales have doubled since we took over his account — his books, his crews, his close rate. The ads were one engine among the work covered in this study.
Methodology
How this was measured.
Source
All search figures from Google Search Console for clarksjunkremoval.com, exported August 9, 2026. Lighthouse from a mobile audit run August 9, 2026, Lighthouse 13.2.0.
Launch date
The new site replaced the Wix build at the end of May 2026. The first city page impression is dated June 7, 2026, with zero impressions on any /service-areas/ URL in the preceding 16 months — that is the date the new architecture entered Google’s index.
Why year-over-year
Junk removal demand is seasonal. Comparing June–August 2026 to the preceding spring would overstate the result. Comparing it to the identical 2025 window does not. Every figure here comes from two exports filtered to identical 68-day calendar windows. Nothing is blended across the launch date.
What the old site already did well
Clark’s ranked position 2.3 for “junk removal portsmouth ri” and inside the top ten for Newport, Middletown, and Tiverton before the rebuild. Those gains are reported as tightening, not transformation. The transformation is in footprint.
On average position
Against the immediately preceding 68 days, average position reads worse (13.2 → 17.6). That is expansion, not decline — impressions rose from 4,648 to 14,856 as 58 new pages entered the index and began ranking for queries the old site never appeared for. A site ranking for far more queries shows a higher average position number. The 30.9 shown in Search Console’s 16-month header is the blended lifetime average — dominated by the old site — and sits between the 2025 window (36.0) and the 2026 window (17.6).
Query counts
Non-branded top-ten and top-twenty counts are raw Search Console counts and include some queries outside Clark’s service area. Both years are counted identically, so the comparison is valid, but 319 should not be read as 319 commercially relevant rankings. Individually named queries are all in-market.
Impression sampling
Search Console anonymizes rare queries, so query-level impression totals don’t sum to the performance chart totals, and the gap is larger in 2026 because the query tail is longer. All click and impression totals come from the daily performance chart, which is not sampled.
Regressions
“junk removal jamestown ri” ranked 7.7 in the 2025 window and does not appear in the 2026 top 884. The Jamestown city page exists and ranks, but lower. A cluster of long-form variants such as “junk removal newport rhode island” also dropped out while their shorter equivalents entered the top ten, at zero clicks either way — Google consolidating variants rather than lost visibility.
What is not claimed
Outside the paid-ads chapter, this case study reports search performance only. Lead volume, cost per lead, booked jobs, and revenue are not reported because lead attribution was not instrumented during this window.
The daily-chart and pages exports behind the click, impression, position, and page-count figures are committed and hashed in the code registry. Query-level figures — the query counts and per-keyword positions — and the Lighthouse report are not backed by a committed export, and are marked verification pending.
Paid ads figures are from account-level Google Ads exports for the account Adimize managed (quarterly cost and conversions, monthly conversions, and the full campaign list; October 2023 – August 19, 2026, pulled August 19, 2026), reconciling to the dollar: the campaign-list total equals the time-series total at $24,890. Conversion tracking went live in November 2024; the 772 clicks before that are excluded from lead figures, so totals are conservative. The engagement window (spring 2024 – October 2025) is read from the account’s spend history. “Doubled annual sales” is client-reported by Coleman Clark and not independently verified by Adimize; it refers to the overall engagement, not the ads program alone. No revenue or ROAS claims.
Where this stands
The website layer alone.
In ten weeks Clark’s went from ten pages surfacing in Google to seventy-three, from 171 non-branded top-ten rankings to 319, and from invisible to top-ten across Newport, Middletown, Tiverton, Little Compton, Barrington, Fall River, New Bedford, Wareham, and Mattapoisett. On a build that scores 97 for mobile performance. The AI-search work is still early — Google Business Profile optimization, review velocity, and citation consistency haven’t started. This is the website layer alone.