Programmatic SEO · Nationwide laundry pickup & delivery

How programmatic SEO rebuilt a national city-page engine

Poplin is a nationwide wash-and-fold laundry pickup and delivery service. We took its programmatic city page system from a stalled, largely unindexed state to more than 1,500 live indexed pages, cleaned up a crawl budget that was mostly being wasted, and built attribution so every city page could be tied to real installs and orders.

Engagement February 2026Scope pSEO · Technical · Analytics · AuthoritySources Search Console · Looker Studio · AppsFlyer
1,500+
Programmatic city pages published and indexed
Search Console
43,004
Query to city page combinations ranking
Looker Studio
56%
Of crawl budget now reaches the main site, from 31%
Search Console
103,534
Site visitors tracked since measurement went live
Looker Studio

The situation at the start

A programmatic system Google had mostly stopped trusting.

Poplin's growth depends on a programmatic set of city pages, one for each city it serves. When we came in, that engine was stalling. Organic traffic from the city pages was declining, and the underlying reasons were technical rather than editorial.

On top of the indexing problems, most of roughly 70,000 crawl requests over 90 days were being spent on subdomains, including non-production and staging environments, instead of the pages that actually needed to rank. A compromised install on one subdomain was even serving spam content under the brand's domain. There was also no tracking in place, so nobody could measure city page traffic, CTA clicks, or the orders those pages were generating.

Starting conditionBeforeAfter
City pages submitted but not indexed331 pagesRecovered
Pages crawled but not indexed, 90 days939544
404 errors, 90 days254149-rule redirect map
Wrong canonicals chosen by Google41Resolved
Crawl requests reaching the main site31%56%

Google Search Console index coverage and crawl stats, engagement start versus July 2026.

The approach

Four workstreams,
one engine.

Each stream existed to make the others measurable. Nothing here was run in isolation.

01 · Growth engine

Programmatic city pages, built to be unique

We designed and scaled the full pSEO template so every city page carried genuinely local content rather than spun copy.

  • City-specific content, testimonials, neighborhoods and FAQ on every page
  • LocalBusiness, FAQ and Breadcrumb structured data per page
  • Live local weather and events, tied to why laundry help matters that day
  • Nearby locations, parks and neighborhood links for real local context
  • Hub-and-spoke structure: service to states to cities, all internally linked
02 · Technical recovery

Indexing and crawl budget cleanup

We diagnosed five root causes of the indexing decline and fixed them at the source.

  • Blocked public non-production and staging subdomains eating crawl budget
  • Recovered 331 submitted-but-not-indexed city pages
  • Deployed a 149-rule redirect map generated from Search Console 404 data
  • Cleaned duplicate content with canonicals and robots directives
  • Flagged and contained a compromised subdomain serving spam
03 · Measurement

Attribution from click to order

We built tracking so the output of SEO could be measured for the first time.

  • GTM and GA4 for city page visits and CTA clicks
  • A smartlink on every city page CTA, with the city slug passed through
  • A Looker Studio dashboard joining visits, clicks, installs and orders by city
  • Recovered attribution after a CTA change broke it, without losing data
04 · Migration & authority

A safer pipeline and stronger signals

We supported the move to a static pipeline and strengthened off-page authority.

  • Staging versus live parity report that caught three high-severity launch issues
  • Rebuilt schema on the new pipeline and corrected the page type
  • A link building tracker with safe anchor rules and seven guest articles
  • Optimization data delivered for five verified local provider profiles

The results

From a stalled engine to a measurable one.

The city page system is now live at scale. More than 1,500 city pages are published and indexed, and because the pipeline is fully dynamic, new pages get indexed as they ship. Across those pages, Search Console and Looker Studio show 43,004 distinct query to landing page combinations, with many city pages ranking in the top positions for high-intent local searches.

Before this engagement nobody could see what the city pages were doing. With GA4, smartlink attribution and Looker Studio in place, the funnel is now measured end to end. The CTA click trend tells the clearest story: city page clicks grew from close to zero when tracking began in late April to a steady 80 to 100 per day by July, which shows the recovered pages are not just indexed but actively sending intent-driven users toward the app.

City page CTA clicks per day

GA4 · late April to July 2026
025507599Wk 1Wk 3Wk 5Wk 7Wk 9Wk 11Wk 13Wk 15Wk 1: 2 clicks/dayWk 3: 9 clicks/dayWk 5: 22 clicks/dayWk 7: 38 clicks/dayWk 9: 52 clicks/dayWk 11: 66 clicks/dayWk 13: 81 clicks/dayWk 15: 92 clicks/day

Measured funnel, click to order

Looker Studio (GA4) and AppsFlyer pSEO media source, May to July 2026.
Total site visitors103,534
City page visitors6,470
CTA clicks on city pages2,334
Click-throughs to the app979
Attributed installs19 direct · 57 assisted

All figures verified in Google Search Console, Looker Studio and AppsFlyer in July 2026. Where a before figure was not measurable because no tracking existed previously, the work is described by its output rather than a comparison.

Key takeaways

What made
the difference.

Related work

More like this.

Other engagements that shared a discipline with Poplin.

Your turn to be the case study

Free audit. Straight answers. Twenty four hours.

Get Your Free Audit