Product Architecture · Information Architecture Diagram

Air Duct Cleaning
Directory — Site IA

Page-type taxonomy, URL schema, internal-link strategy, and SEO matrix for airductcleaningservices.co — canonical directory domain.

Domain airductcleaningservices.co
Stack Astro 5 · Cloudflare Pages
Platform Pure SSG · No build step
Program Directory Builder v0
Date June 2026
Status Design Reference
Node Type
Standard page
Money page
SEO workhorse
Service tier
Cross-link pattern
Link Type
Breadcrumb
Hub→Spoke
Lateral
Matrix
Footer
Geographic hierarchy Core URL tree · Depth 1–4
Home
× 1
/
National entry point. Browse by state or let geo-detection surface local results.
Geo-Aware Homepage — Key Feature
Detects visitor location at the Cloudflare edge (CF-IPCountry / CF-IPCity headers) or falls back to browser navigator.geolocation with permission prompt.
✦ Near You (primary)
Surfaces "Cities Near You" + top-rated businesses within ~50 mi. Edge-rendered, no JS required for initial paint.
◇ Browse by State (fallback)
Full alphabetical state grid always visible. Fallback if geo fails or user is outside service area.
LocalBusiness schema Top nav Edge geo detect FAQ block
State
× ~50
/{state}/
State hub — grids all cities with active listings, highlights top businesses in state.
Breadcrumb ← → all cities State Page schema
City
× ~3–4K
/{state}/{city}/
City hub — lists all businesses, top services offered in the city, nearby city links.
Breadcrumb ← → businesses ↔ nearby cities City schema
Location (Business)
× ~23.5K
/{state}/{city}/{business}/
Per-business profile page. GBP data, services, reviews, photos, hours, NAP, "also serving" SAB cities, schema markup. Converts visitors → calls.
Breadcrumb ← Reviews embed LocalBusiness + Review schema Service FAQ → SAB cities
Location × Service
× on-demand
/{state}/{city}/{business}/{service}/
A specific business's detail page for one service. Deepest crawlable node — generated only for businesses with that service confirmed.
Breadcrumb ← Service schema
Service-Area "Also Serving"
cross-link
not a separate URL tier
SAB pattern: on Location page, a "Cities We Serve" block links laterally to sibling /{state}/{city}/ pages, spreading internal equity without creating new URL depth.
↔ lateral links → nearby city hubs
Service dimension Parallel URL tree · Crosses geo hierarchy
Service Landing
× 6
/services/{service}/
Top-of-funnel for a service category. National overview, links to all State × Service combos. Thin but strong anchor for service taxonomy.
Service schema Top-nav Services → all states
Service × State
× ~300
/services/{service}/{state}/
Service hub for a state — which cities have businesses offering this service, top providers.
Breadcrumb ← → service × cities
Service × City
× ~20K+
/services/{service}/{state}/{city}/
Programmatic SEO workhorse. Targets "air duct cleaning [city]" queries. Lists all businesses in city offering this service. Interlinks to Location pages and sibling service-city pages to form the SEO web.
Breadcrumb ← LocalBusiness + ItemList schema ↔ sibling services → location pages Local FAQ
Page Scale Overview
Home
1
States
~50
Svc Landing
6
Svc × State
~300
Cities
~3–4K
Svc × City
~20K+
Locations
~23.5K

Total indexable pages: ~50K+. Locations + Svc×City form 87% of the index.

Internal Link Strategy
Service × Geo Matrix (SEO Web)
Dryer Vent
HVAC Clean
Furnace
Texas
Svc×State
Svc×State
Svc×State
Austin TX
Svc×City
Svc×City
Svc×City
Round Rock
Svc×City
pending
Svc×City
Cedar Park
pending
Svc×City
pending

Each cell = one programmatic SEO page. 6 services × ~3–4K cities = ~20K+ Svc×City pages forming the bulk of the index. Green = published, muted = business-gated (generated only when listings exist).

Schema.org Markup by Page Type
Page Type Schema Types
Home WebSite, Organization, FAQPage
State / City WebPage, BreadcrumbList
Location LocalBusiness (HomeAndConstructionBusiness), Review, AggregateRating, GeoCoordinates
Svc × City ItemList, LocalBusiness (repeated), FAQPage, BreadcrumbList
Service Landing Service, WebPage