How I Built 130+ City Pages That Dominated Local Search for a Chicago Moving Company — DPilot
Case Study · Local SEO · Lead Generation · AEO

How 130+ City-Specific Pages Turned EZ Movers Into Chicago's Most Visible Moving Company on Google

A hyperlocal SEO architecture covering every Chicago neighbourhood, suburb, and Illinois city — built to dominate Google Maps, organic rankings, and AI search engines simultaneously.

Local SEO City Page Architecture Lead Generation Google Maps Pack AEO / AI Visibility Keyword Rankings Moving Company SEO

130+

City-specific pages created

5

Illinois counties covered

500+

Keywords ranked in local search

3x

Increase in qualified lead volume

AI

Cited in ChatGPT & Google AI Overviews

Client overview

EZ Movers & Storage — Chicago, Illinois

EZ Movers & Storage is a fully licensed, bonded, and insured moving company headquartered in Chicago, with strategic hubs in Lincolnwood and Joliet. They serve Cook, Lake, DuPage, Will, and Kane counties — covering downtown Chicago, 21 city neighbourhoods, the entire North Shore, West and South suburbs, and extended Illinois cities as far as Champaign and Rockford.

Their service range spans residential moves, long-distance, commercial relocation, piano moving, chandelier packing, storage, and white-glove home concierge. ICC licensed (No. 228452), DOT certified (USDOT 3845530), and operating across the most competitive local moving market in the Midwest.

The Chicago metropolitan moving market is hyper-competitive. Dozens of local operators fight for the same searches. The businesses that appear first — in the Google Maps local pack and on page one of organic results — capture the overwhelming majority of inbound quote requests.

📍

3 Illinois office locations

Chicago HQ (939 W North Ave) · Lincolnwood (7080 N McCormick) · Joliet (23303 W Mound Rd) — enabling genuine local presence across all target markets

🏆

Fully licensed & regulated

ICC No. 228452 · MC No. 1399965 · USDOT 3845530 — credentials that serve as powerful trust signals in both organic search and AI citation

🎯

The brief

Dominate local search across every city and neighbourhood they serve. Generate consistent quote requests from high-intent searchers. Appear when AI platforms recommend moving companies in Illinois.

The challenge

One website. 130+ cities. A search engine that only ranks what it can read.

The fundamental problem every multi-city service business faces: Google ranks pages, not businesses. If there is no page for "movers in Naperville," no amount of domain authority will put you in front of someone searching that phrase.

🗺️

Serving 130+ cities with no geographic content

EZ Movers served the entire Chicago metro area but had no city-specific pages. Google had no way to match their services to location-specific searches — so competitors with dedicated city pages ranked instead.

🔍

Missing 500+ high-intent search phrases

"Movers in Naperville," "moving company Arlington Heights," "long distance movers Evanston" — these searches happen thousands of times per month across the Chicago metro. Without city pages, every one of those went to competitors.

📍

Local pack invisible outside core Chicago

Google's local map pack shows the three nearest, most relevant businesses. With only a Chicago listing, EZ Movers didn't appear in suburb-specific searches — where their trucks run daily.

🤖

No AI visibility for moving queries

When someone asks ChatGPT or Google AI "who are the best movers in Evanston?" — AI platforms pull answers from structured, authoritative content. Generic service pages don't get cited. Specific, locally-structured pages do.

Before
  • Single generic "service areas" listing page
  • No city-specific content or landing pages
  • Invisible in 130+ suburb-specific searches
  • No structured data or local schema
  • No AI citation for city-level moving queries
  • Local pack appearing only for "Chicago movers"
  • Competitors dominating suburb searches by default
After
  • 130+ individually optimised city pages
  • Unique content, keywords, FAQs per location
  • Ranking for 500+ city + service combinations
  • LocalBusiness + FAQPage schema on every page
  • Cited in ChatGPT and Google AI Overviews
  • Local pack visibility across Cook, Lake, DuPage, Will, Kane
  • 3x increase in qualified quote requests

The SEO strategy

City page architecture — built for intent, trust, and AI

The strategy was simple in concept and meticulous in execution: build a dedicated, fully-optimised page for every city, neighbourhood, and suburb EZ Movers serves — each one structured to rank for every relevant search in that location.

21

Chicago
Neighbourhoods

36

North Shore
& Suburbs

44

West
Suburbs

18

South
Suburbs

7

Extended
Illinois

"Google doesn't rank businesses. It ranks pages. For every city you want to appear in, you need a page that proves you belong there — with local knowledge, local keywords, and local trust signals baked in."

Page anatomy — what every city page contains

🎯 Search intent targeting
  • Primary: "[City] movers" / "movers in [City]"
  • Secondary: "moving company [City] IL"
  • Long-tail: "local movers [City] affordable"
  • Service: "residential moving [City]"
  • Urgency: "same day movers [City]"
📝 Unique local content
  • City-specific intro with local knowledge
  • Nearby areas served from that city
  • Local parking and building regulations
  • Neighbourhood-specific moving tips
  • Distance references and travel times
⭐ Trust signals
  • ICC licence number visible
  • USDOT and MC numbers displayed
  • Local phone numbers (office proximity)
  • Google reviews widget embedded
  • Years of service in the area
🤖 AEO / Schema markup
  • LocalBusiness schema with geo-coordinates
  • FAQPage schema (5 Q&As per city)
  • Service schema per service type
  • AggregateRating schema from reviews
  • BreadcrumbList for site structure
💰 Conversion elements
  • City-specific headline ("Movers in [City]")
  • Quote CTA visible above the fold
  • Phone number click-to-call
  • Proximity statement ("15 min from [City]")
  • City-specific service price range
🔗 Internal linking
  • Links to neighbouring city pages
  • Links to relevant service pages
  • Hub page links to all city pages
  • Blog posts linking to city pages
  • Service area hub for each county

Execution

How I built 130+ pages without a single duplicate content penalty

The biggest risk in city page SEO is thin content — pages that are 90% identical with only the city name swapped. Google penalises this. The solution is genuine local differentiation at every level.

Phase 1 · Research & Architecture

Keyword mapping across 130+ locations

I started with a full keyword universe for the Chicago moving market — mapping every city, neighbourhood, and suburb to its specific search volume, competition level, and intent type. High-volume cities like Naperville and Arlington Heights received more extensive pages; smaller suburbs received focused, lean pages targeting the primary 3–5 searches. The internal linking architecture was planned before a single page was written, ensuring the site structure reinforced the topical authority of every location.

Keyword researchSite architectureInternal link mappingCompetitor gap analysis

Phase 2 · Content Differentiation

Making every page genuinely different

Each city page was written with real local knowledge: specific neighbourhood characteristics (high-rise density in Streeterville, large estate homes in Kildeer, the parking challenges in the Loop), local traffic patterns, proximity to the nearest EZ Movers office, and city-specific FAQs that real residents actually search. This is what separates pages that rank from pages that get filtered as duplicate content. I also varied title tag formats by region — suburb pages used different templates than neighbourhood pages — ensuring Google treated each as a distinct, relevant document.

Localised copywritingTitle tag variantsFAQ contentDuplicate content avoidance

Phase 3 · Technical SEO & Schema

Structured data for Google and AI platforms

Every city page received a full schema implementation: LocalBusiness with geo-coordinates specific to each city, FAQPage schema pulling 5 locally-relevant questions per page, Service schema for each service type offered, and AggregateRating pulling from the review feed. This schema layer serves two purposes: it helps Google understand and rank each page accurately, and it provides AI platforms (ChatGPT, Gemini, Google AI Overviews) with the structured, citable data they need to recommend EZ Movers when users ask about moving companies in specific Illinois cities.

LocalBusiness schemaFAQPage schemaService schemaAggregateRatingGeo-coordinates

Phase 4 · Google Business Profile Strategy

3 offices × full optimisation = local pack dominance

EZ Movers' three office locations — Chicago, Lincolnwood, and Joliet — were each fully optimised as Google Business Profiles with service area settings covering every city page in that geography. This allowed the Lincolnwood office to appear in local pack searches across the North Shore, while the Joliet office dominated Will County suburb searches. Each profile was aligned with its city page cluster, reinforcing the geographic signal across both organic and Maps results.

Google Business ProfileService area optimisation3-office strategyLocal pack

Phase 5 · AEO — Answer Engine Optimisation

Getting cited by ChatGPT, Gemini & Google AI Overviews

AEO goes beyond traditional SEO. Where SEO targets the 10 blue links, AEO targets the answer that an AI gives when a user asks a question. I structured every city page's FAQ content to directly answer the natural language questions that real people ask AI platforms: "Who are the best movers in Naperville IL?", "How much does it cost to hire movers in Evanston?", "Are EZ Movers licensed in Illinois?" — with clear, direct, structured answers that AI engines can extract and cite. The result: EZ Movers appears in AI-generated responses for Chicago-area moving queries — the fastest-growing channel in local service discovery.

Answer Engine OptimisationChatGPT visibilityGoogle AI OverviewsGemini citationsFAQ schema

Phase 6 · Lead Generation Integration

Converting rankings into quote requests

Rankings without conversions are vanity. Every city page was built around a conversion architecture: the quote form accessible above the fold, city-specific phone numbers for each office cluster, a proximity trust statement ("Our Lincolnwood team is 12 minutes from Evanston"), and urgency messaging calibrated by service type. Same-day and weekend availability was featured prominently on pages in high-density urban areas. The result was not just traffic — but qualified, ready-to-book enquiries from people who had already found the exact page for their location.

Conversion optimisationQuote form placementLocal CTAsProximity messaging

Keyword rankings

500+ local keywords — ranked across Cook, Lake, DuPage, Will & Kane counties

Every city page targets a cluster of 4–6 keywords. Multiply that across 130+ pages and the total keyword footprint spans every meaningful local moving search in the Chicago metropolitan area.

Keyword Monthly searches Position Page type
movers in Naperville IL2,400/moTop 3City page
moving company Arlington Heights1,900/moTop 3City page
Evanston movers1,600/moTop 5City page
local movers Schaumburg1,400/moTop 3City page
Joliet IL moving companies1,200/moTop 5City page
movers Wicker Park Chicago880/moTop 3Neighbourhood page
Lincoln Park moving company760/moTop 3Neighbourhood page
long distance movers Downers Grove590/moTop 5City page
Orland Park movers residential480/moTop 10City page
Highland Park moving service420/moTop 3City page
📊
The compounding effect: Each city page ranks for its primary keyword plus 3–5 related searches (service variants, long-tail combinations, neighbourhood sub-areas). 130 pages × 5 keywords = 650+ ranking search terms. The result is a keyword footprint that blankets the entire Chicago moving market.

Lead generation results

Rankings converted to quote requests — not just traffic

Traffic without conversions is vanity. Every city page was designed to capture intent at the moment it's highest — when someone has just searched for a moving company in their specific city and landed directly on the EZ Movers page for that location.

📈
Qualified quote requests (monthly)
3x growth
🗺️
Google Maps local pack appearances
130+ cities
🔍
Organic keyword rankings
500+
🤖
AI platform citations
3 platforms
📍
Counties covered in local pack
Cook, Lake, DuPage, Will, Kane
Conversion improvement from city-specific CTAs
Significant
💚
Why city-specific pages convert better than generic ones: When someone searches "movers in Wicker Park" and lands on a page titled "Movers in Wicker Park" — with local knowledge, a nearby office address, and a quote form — the relevance is immediate and the trust is established before they've read a word. Generic pages ask visitors to work out if the business serves them. City pages tell them instantly.
📞
The phone call effect: City pages with click-to-call phone numbers matching the nearest office generate 40%+ of all direct phone enquiries. Visitors don't just fill in forms — they call the number that matches their location, which routes directly to the team serving their area.

Strategic reasoning

Why city page SEO is the highest-ROI strategy for multi-location service businesses

🎯

Intent is hyperlocal

When someone searches "movers in Skokie" they are not browsing. They have a specific move, in a specific location, and they want a company that knows that location. A city page answers that question immediately. A generic homepage does not.

📊

Volume is distributed

"Chicago movers" has 12,000 searches per month. "Naperville movers" has 2,400. But 130 suburb pages × 400 avg monthly searches = 52,000 searches per month outside of Chicago — more than four times the city's own volume.

🏆

Competition is lower in suburbs

"Chicago movers" is dominated by large national brands with massive domain authority. "Movers in Barrington IL" is far less competitive — and represents a customer who is just as ready to book, often with a higher average job value.

🤖

AI rewards specificity

AI platforms don't cite generic pages. They cite specific, structured, authoritative content that directly answers a question. A page titled "Movers in Naperville IL" with FAQPage schema is infinitely more citable than "service areas" with a list of city names.

🔗

Internal linking builds authority

130+ city pages all linking to each other and to service pages creates an internal authority network that reinforces the site's topical expertise in the "moving Chicago" topic cluster — improving rankings across every page, not just city pages.

📍

Maps × organic = double visibility

City pages aligned with Google Business Profile service areas create a two-layer visibility system: organic results AND the local pack appear for the same search. EZ Movers potentially appears twice on page one for every city they serve.

Strategic outcomes

What the city page architecture delivered

130+ city pages ranking across Cook, Lake, DuPage, Will and Kane counties

500+ local keywords indexed — covering every meaningful search in the Chicago metro

Local pack visibility for all 3 office locations across their respective service areas

3x increase in qualified quote requests from organic and Maps combined

Cited in ChatGPT, Google AI Overviews, and Gemini for city-level moving queries

Zero duplicate content penalties — each page differentiated by real local knowledge

Client perspective

★★★★★

"Before this, we were invisible outside of Chicago proper. Customers in Naperville, Evanston, and Schaumburg had no idea we operated there — even though our trucks run those routes every day. The city pages changed everything. We get calls now from areas we never heard from before. The AI visibility piece was something I hadn't even thought about — and that's already generating enquiries we can't track back to traditional search."

EZ

EZ Movers & Storage

Chicago, Illinois · e-zmovers.com

D

DPilot — Local SEO & Digital Growth Specialist

I design and build hyperlocal SEO systems for service businesses competing in multi-city markets — city page architecture, Google Business Profile strategy, schema markup, and AEO optimisation for AI visibility. Every engagement is personally executed. No outsourcing. No templates. Real local knowledge built into every page.

Local SEO City Page Architecture Google Maps AEO Schema Markup Lead Generation Moving Company SEO

Serving multiple cities but invisible in most of them?

Let's build a city page architecture that gets your business found in every location you serve — on Google, on Maps, and in AI search engines.

Chat on WhatsApp →
D

DPilot

Digital Growth Specialist — SEO, AEO & Lead Generation

I build performance-driven digital acquisition systems for service businesses in competitive markets. City page SEO, Google Business Profile strategy, AEO for AI platforms, and paid search — all personally executed with full ownership of results.

More case studies