How to Structure a Car Wash Website: Pages, Navigation and Conversion Paths
Architecture vs design: what this article is about
It's worth being precise about the word "structure," because structure and visual design are easy to conflate. Visual design is the presentation layer — how the site looks, the imagery, the typography, the feel. Architecture is something else: which pages exist, how they relate to each other, how a visitor moves between them, and which task each one completes. A beautiful site with the wrong architecture sends a member hunting for a cancellation link, or makes a first-time visitor scroll past three sections before they can find the nearest location. This article is about the architecture. The design layer matters, but it sits on top of a structure that either matches how customers behave or fights it.
The Perennis website-architecture framework
Here's a way to reason about the whole site as a set of functional stages rather than a fixed list of pages. This is a Perennis website-architecture framework — an operator model, not a Google rule, not an industry standard, and not a mandatory page list:
Orient → Route → Decide → Act → Support
- Orient — establish what the business is, where it operates, and the core reason to choose it. This can live on the homepage, an About/Why Us page, or trust sections — it isn't one single page.
- Route — navigation and contextual links move each visitor toward the page that matches their task: a location, a wash package, membership, fleet, or support.
- Decide — decision pages carry the information a visitor needs to choose. Wash packages and memberships are common ones, but location pages, fleet pages, and offers can be decision pages too.
- Act — the page presents the next action that fits the decision: get directions, join, buy, continue to checkout, request fleet information, or get support.
- Support — account management and help run as a parallel layer for existing customers: manage membership, log in, update payment, cancel, get help, open the app.
Two notes on scale. A one-location site can compress several of these functions into fewer pages, as long as it stays clear and maintainable. A multi-location site usually needs a stronger routing and location layer, because which location becomes a real customer decision in its own right. ("Usually" is architectural reasoning here, not a Google requirement.)
Framework overlay — spans the whole site
Each stage can be served by more than one page; no page maps to only one stage.
- OrientWhat is this, where, why choose it
- RouteNav + links move each visitor to their task
- DecideDecision pages carry what a visitor needs
- ActThe next action that fits the decision
- SupportAccount + help for existing customers
Core orientation / decision layer
Where visitors get oriented and make the main wash decisions
- Home
- Wash Packages
- Memberships
- About / Why Us (where useful)
Location layer
How a visitor finds the site that fits their task
Multi-location: a Locations hub that links to real individual location pages
Single-location: the homepage and/or an optional dedicated location page
- Locations hub
- Individual location pages
Utility / support layer
A parallel layer for existing customers, not part of the acquisition path
- Manage Membership / Login
- Help / Support
- Contact (where useful)
Conditional commercial pages
Earn a URL only when there is a real, distinct reason
- ConditionalFleet / Commercial
- ConditionalOffers
- ConditionalApp
- ConditionalResources
This is an architecture model, not a mandatory page list. A one-location site may combine functions that a multi-location operator separates.
What the homepage should own
The homepage can become overloaded when it tries to answer every question at once. A more useful principle — a Perennis one, not a Google rule — is orient, prove and route: the homepage should answer the highest-level questions a visitor needs to get oriented, establish that the business is credible, and route them onward; deeper decision detail can live on the pages best suited to it. In practice that means a visitor should quickly grasp what kind of wash this is, where it operates, the wash or package options at a high level, whether there's a membership, why the business is trustworthy, and what to do next.
Possible routes off the homepage include find a location, view wash packages, view membership, and — where it applies — buy a wash or view an offer. But resist forcing a single CTA hierarchy onto every wash. For a drive-up or express wash, the common high-priority tasks are finding a location, understanding the wash and package options, and evaluating membership — and the actual primary CTA should follow the operator's business model and the page's intended decision. A drive-up or express wash should not use appointment language unless there is an actual appointment-based service or task behind it; if an appointment is not part of the wash's real customer journey, a "Book Now" CTA or appointment flow is a mismatch. Note too that "route them onward" doesn't mean "keep the homepage shallow" — a homepage can carry genuinely useful detail; it just shouldn't try to be every page at once. (For why a car-wash homepage differs from a detailer's or a protection shop's, see how vehicle-care websites should differ.)
Primary and utility navigation
Navigation is where architecture becomes visible. Fixed menu rules such as "keep it to seven items" or "six or fewer" are not the basis of this framework. There's no universal number. Organize the menu by customer frequency, decision importance, commercial importance, and task urgency, and use as few top-level items as cleanly express the real customer tasks.
The distinction that matters more than the count is between acquisition intent and account-management intent. Prospect-facing items — Locations, Wash Packages, Memberships, Why Us, and Fleet if it's material — are the acquisition layer. Existing-member tasks — Manage Membership, Login, Support, the app — are a different job for a different audience. The principle: separate acquisition intent from account-management intent, but keep important existing-member tasks easy to find. Depending on the operator, Manage Membership or Login might live in a utility bar, an account control, the mobile menu, or another persistent secondary navigation — not necessarily buried in the footer. The goal is that a prospect comparing washes and a member trying to update a card each find their path quickly, without the two audiences crowding each other in the primary nav.
How a single-location car wash can structure its site
For one location, the structure should be minimal but complete. A workable core is Home, Wash Packages/Services, Memberships (when membership is a material offer), plus About/Why Us, FAQ/Help, and a contact/support path where each is useful — with Fleet/Commercial, Offers, and Resources added only if they're real. A single-location homepage may function as the primary business and location page; a separate location page is optional, and justified when it serves a real user or operational need.
That optionality cuts both ways. Some one-location operators are better with a dedicated location page — for example, when the homepage carries a broader brand role, when a location-specific paid or organic destination is useful, when hours, pricing, services, or amenities need substantial dedicated detail, or when the architecture is expected to scale to more sites later. Others are perfectly served by the homepage doing double duty. These are examples, not requirements: don't assume every single-location wash needs a /locations/city-name page, and don't assume every one should avoid one. The test is whether a second page carries real, distinct information — not whether a template says it should exist.
How a multi-location car wash should structure locations
Multiple locations add a routing problem the site has to solve: which location fits this visitor's task? A practical scalable pattern is a locations hub supported by useful pages for genuine locations.
The hub is the router. It can offer a finder or search, group locations regionally, surface the nearest one, and — this part matters technically — link to each individual location page through real, crawlable links. Each location page then carries what a customer actually needs at that site: the location identifier, address, hours, map and directions, the washes and services genuinely available there, any real package or pricing differences, membership availability and its route, actual amenities, relevant operational facts, and a local call to action.
The discipline here is resisting the city-page factory that a lot of SEO advice pushes. A location page should exist because the location creates a real customer decision or information need — not merely because another city keyword exists. One useful page per genuine location can be appropriate when each page serves a real location-specific information or decision need; the architecture should represent your real locations, not manufactured geographic targets. There's no word-count target to hit, and adding generic introductions, neighborhood filler, or duplicated city boilerplate does not create meaningful location-specific substance. A simple gut check, borrowed lightly from local-SEO thinking: could this page only have been written about this real location? The deeper local-search treatment — Google Business Profile, ranking mechanics, reviews — belongs to local SEO for car washes; here the point is purely architectural.
Wash packages and services: one page or many?
One structural decision is whether wash options belong on a single comparison page or on separate service pages. It's a decision, not a template. A single comparison page is often appropriate when the packages are tiers of the same underlying wash decision and separate URLs would add little distinct substance — Perennis operator reasoning, not an industry statistic. Separate service pages start to make sense when the customer intent is materially different, when substantial explanation is required, when the operational experience differs, when availability differs by location, or when the next action differs — think express exterior versus full-service interior versus self-serve versus detailing versus fleet, where those are genuinely different offerings.
The same logic governs individual features. A package feature normally belongs inside the package comparison unless it develops genuinely distinct customer intent, substantive information, and a separate task or decision. Features such as tire shine, an underbody rinse, or a ceramic-application add-on normally belong inside the package comparison when they don't represent distinct customer intent, substantive information, or a separate task. Creating separate URLs for feature-level content without that distinction can produce thin, repetitive pages.
That question — does this deserve its own page? — comes up often enough to deserve a test.
Intent
Is there a distinct customer / user need or question?
Substance
Is there enough real, specific information to justify a page?
Task
Is there a distinct decision, task, route or information need better handled separately?
Maintenance
Can the operator keep the page accurate over time?
All four strong
Stronger case for a dedicated URL
One or more weak — consider instead
- A section on an existing page
- Support / help content
- A utility / system destination
- No new public page
Perennis page-existence test — not a Google rule. Operational, legal, privacy and account-system pages may exist for reasons outside this test.
The Perennis page-existence test runs four checks — Intent → Substance → Task → Maintenance: Is there a distinct customer need or question? Is there enough real, specific information to justify a page? Does it support a distinct decision, task, or route better handled separately? And can the operator keep it accurate over time? The more clearly a proposed page clears all four, the stronger the case for a dedicated URL; if one or more are weak, consider a section on an existing page, support content, or no new page. It's a Perennis tool, not a Google rule — and it isn't an absolute gate: support, legal, privacy, accessibility, and account-system pages can exist for reasons outside it.
Showing prices customers can trust
Pricing is where architecture meets an operational reality: prices can change and may vary by location. The governing principle is make price as clear as the operator can accurately maintain it. Price clarity only helps when the information remains accurate; if pricing materially varies by location, a location-selection step may be more reliable than publishing one global number.
A few practical positions follow from that. "Starting at" is fine when it's accurate, meaningful, and not misleading. If an external point-of-sale platform is the authoritative source of live pricing, the marketing site shouldn't publish numbers that will drift out of sync with it. And promotional pricing shouldn't silently replace the evergreen prices customers expect to find. What this doesn't mean: hidden pricing isn't always wrong, every wash doesn't have to expose one global price everywhere, and selecting a location before price isn't universally required. The right call depends on how the operator's pricing actually works and what they can keep accurate.
What the membership page should do
When membership is a material offer, the membership page becomes a high-priority decision page — and its job here is architectural, not the enrollment mechanics themselves. Structurally, the membership page may need to explain what membership is, compare the plans, give price and location context, show the included wash package, lay out the benefits, cover any vehicle or eligibility rules, clarify where it can be used, explain how to join, and make clear how to manage, cancel, or get support — then route cleanly to enrollment. That management-and-cancellation point is worth stating plainly: membership management, cancellation, and support should be findable and clearly routed. Those routes should be explicit rather than obscured, so existing members can reach the appropriate account or support task without unnecessary friction.
Enrollment may happen on a separate platform or app, in which case the marketing site's job is to reduce uncertainty before the handoff — so the visitor understands the plan, the price, and what happens next. The full enrollment journey, from awareness to first use, is the subject of the car-wash membership signup funnel; this page just has to set it up well.
When signup or account management happens somewhere else
When membership signup, payment, or account management lives on a third-party POS, portal, or app rather than the marketing site, the architecture has to make that transition clear. A common and reasonable pattern — not a universal law, since some operators own checkout directly — is that the marketing site should explain and route; the transaction platform may transact. The site reduces uncertainty and hands the visitor off cleanly for the tasks that belong elsewhere: choosing a plan, selecting a location, paying, opening the app, managing a membership, updating payment, or getting account support.
The key is making the handoff explicit. CTA labels like Continue to membership signup, Open membership portal, Manage membership, or Continue to secure checkout tell the visitor they're moving into a transaction or account flow — without necessarily naming the vendor unless that's genuinely useful. Make the handoff explicit enough that the user understands they're moving into the transaction or account flow, while preserving context and a clear path back to support. An unexplained transition can create uncertainty, so the handoff should make the destination and task clear.
Conditional pages: fleet, offers, app, about, help, contact and resources
Beyond the core, several page types are conditional — they earn a URL when there's a real reason, not by default. Fleet or commercial deserves its own page when there's a distinct buyer, billing model, offer, inquiry, or account process, and belongs in primary navigation only when it's commercially material. Offers should distinguish an evergreen offers page from temporary campaign landing pages; when a promotion ends, retire the landing page cleanly — redirect it only when there's a genuinely relevant successor, otherwise remove it with an appropriate status and clean up stale internal links (not every expired promo should point at the homepage or the offers page). App / Login / Manage Membership is existing-customer utility that should stay easy to find without competing with prospect CTAs in the primary nav.
About / Why Us is usually useful but conditional — build it when there's real content: a meaningful story, ownership or history, an operating method, substantiated proof, or trust information, including verified sustainability claims where they apply. Don't create it just to fill a menu slot. FAQ / Help should separate sales-friction questions from existing-member support and account tasks — and no, FAQPage schema is not an answer-engine tactic. Contact is usually useful but architecture-dependent: the better pattern is task routing — directions to the location page, membership or account help to support, fleet to the fleet page, general or corporate inquiries to Contact — rather than forcing everyone through one generic lead form. And Resources or a blog is conditional: core commercial pages come first, no car wash needs a blog simply because an agency says every site does, and mass-generated AI content is not a strategy.
Match the CTA to the page's decision
A call to action isn't a global site element to stamp everywhere; it should change with the page. The CTA should match the decision the page is designed to complete. A homepage routes (find a location, view memberships, view washes); a location page acts locally (get directions, view this location's washes, join where applicable); a membership page converts (choose a plan, join); a wash page routes to a location or a purchase; a fleet page requests information; a support page manages a membership or gets help. Where a page has several legitimate tasks, establish one primary action where possible, and preserve secondary routes without making every CTA visually equal. What doesn't belong is a forced "Book Now" on a business with nothing to book.
Here's how the common page types tend to sort out:
| Page type | Status | Primary customer question | Primary next step | Common failure |
|---|---|---|---|---|
| Home | Core | “What is this, where, and what next?” | Route to locations/packages/membership | Trying to answer everything; forced “Book Now” |
| Locations hub | Core (multi-loc) / optional (single) | “Where’s my nearest wash?” | Open nearest location page | A finder that doesn’t expose crawlable links to the real location URLs |
| Location page | Usually core (multi-loc) / optional (single) | “What’s true at this site?” | Directions / this site’s washes / join | Boilerplate city copy; thin duplicate |
| Wash Packages | Usually core | “What are the tiers and what do they cost?” | Compare / find location / join | Feature-spam pages; no price context |
| Memberships | Core when membership is material / conditional otherwise | “Is a plan worth it, and how do I join?” | Choose plan / join | Duplicating the enrollment funnel; hard-to-find cancellation |
| Fleet / Commercial | Conditional | “Can you handle my fleet?” | Request information | Building it with no real fleet offer |
| About / Why Us | Usually useful / conditional | “Can I trust this operator?” | Route to packages/locations | Unverifiable claims; filler |
| FAQ / Help | Architecture-dependent | “How do I resolve X?” | Answer / manage / contact | FAQPage-as-hack; mixing sales and support |
| Contact | Usually useful / architecture-dependent | “How do I reach the right place?” | Directions / support / fleet | Forcing everyone into one generic lead form |
| Offers | Conditional | “Is there a current deal?” | Redeem / find location | Archives of expired thin promos |
| App / Login / Manage | Conditional utility | “How do I manage my membership?” | Log in / open app | Competing with prospect CTAs in primary nav |
| Resources / Blog | Conditional | “Is there useful info here?” | Read / route to a commercial page | Blog because “every site needs one”; mass AI content |
Home
- Status
- Core
- Primary customer question
- “What is this, where, and what next?”
- Primary next step
- Route to locations/packages/membership
- Common failure
- Trying to answer everything; forced “Book Now”
Locations hub
- Status
- Core (multi-loc) / optional (single)
- Primary customer question
- “Where’s my nearest wash?”
- Primary next step
- Open nearest location page
- Common failure
- A finder that doesn’t expose crawlable links to the real location URLs
Location page
- Status
- Usually core (multi-loc) / optional (single)
- Primary customer question
- “What’s true at this site?”
- Primary next step
- Directions / this site’s washes / join
- Common failure
- Boilerplate city copy; thin duplicate
Wash Packages
- Status
- Usually core
- Primary customer question
- “What are the tiers and what do they cost?”
- Primary next step
- Compare / find location / join
- Common failure
- Feature-spam pages; no price context
Memberships
- Status
- Core when membership is material / conditional otherwise
- Primary customer question
- “Is a plan worth it, and how do I join?”
- Primary next step
- Choose plan / join
- Common failure
- Duplicating the enrollment funnel; hard-to-find cancellation
Fleet / Commercial
- Status
- Conditional
- Primary customer question
- “Can you handle my fleet?”
- Primary next step
- Request information
- Common failure
- Building it with no real fleet offer
About / Why Us
- Status
- Usually useful / conditional
- Primary customer question
- “Can I trust this operator?”
- Primary next step
- Route to packages/locations
- Common failure
- Unverifiable claims; filler
FAQ / Help
- Status
- Architecture-dependent
- Primary customer question
- “How do I resolve X?”
- Primary next step
- Answer / manage / contact
- Common failure
- FAQPage-as-hack; mixing sales and support
Contact
- Status
- Usually useful / architecture-dependent
- Primary customer question
- “How do I reach the right place?”
- Primary next step
- Directions / support / fleet
- Common failure
- Forcing everyone into one generic lead form
Offers
- Status
- Conditional
- Primary customer question
- “Is there a current deal?”
- Primary next step
- Redeem / find location
- Common failure
- Archives of expired thin promos
App / Login / Manage
- Status
- Conditional utility
- Primary customer question
- “How do I manage my membership?”
- Primary next step
- Log in / open app
- Common failure
- Competing with prospect CTAs in primary nav
Resources / Blog
- Status
- Conditional
- Primary customer question
- “Is there useful info here?”
- Primary next step
- Read / route to a commercial page
- Common failure
- Blog because “every site needs one”; mass AI content
The technical hygiene that holds the structure together
Good architecture needs a little technical hygiene to actually work — kept operational, not turned into an SEO tutorial. A few things matter, stated in current Google terms:
For links you expect Google to crawl reliably, use standard crawlable <a> elements with resolvable href URLs and descriptive anchor text; important customer and location pages shouldn't depend solely on a finder interaction that exposes no crawlable destination links. Use simple, descriptive, stable URLs that make sense to users and are easy to maintain — /locations, /locations/calgary-ne, /wash-packages, /memberships, /fleet, /about, /help are reasonable illustrations — but Perennis isn't claiming one folder hierarchy ranks better than another. This article does not use a fixed "three-click" requirement; important pages should instead be easy to reach through obvious navigation and contextual links.
Google uses the mobile version of a site's content for indexing, so important content, links, and structured information should remain available in the mobile experience — including readable package comparisons that don't force a horizontal table off the screen. Core Web Vitals are user-experience metrics worth monitoring, but they're not a magic score or a substitute for useful content and sound architecture. Canonicalization helps signal a representative URL among duplicate or very similar pages, but it does not make thin duplicate location or service pages meaningfully unique — it's not a content-quality fix, and location pages shouldn't all be canonicalized to one page unless they're genuinely duplicates. Give genuinely distinct pages accurate, descriptive titles, headings, and useful metadata appropriate to their content; provide useful alt text for informative images while not forcing decorative images to carry keyword-stuffed descriptions. Where you use structured data such as Organization, LocalBusiness, or BreadcrumbList, it should accurately describe the page it's on. It can make content eligible for supported Search features, but it does not guarantee that a rich result will appear and should not be treated as a ranking shortcut.
One distinction worth keeping straight: private or account-only information should be protected through proper authentication or access control. Search-indexation directives are not access-control mechanisms. For a public URL that should not appear in Google Search, a noindex directive can be appropriate when Google is allowed to crawl the page and see that directive; robots.txt controls crawling; neither robots.txt nor noindex is an access-control or privacy mechanism.
Clarity is the answer-engine strategy
For Google Search's generative AI features, current guidance still starts with the same foundational SEO and content principles rather than a separate AEO or GEO technical architecture. Clear page purpose, explicit facts, descriptive headings, crawlable internal links, and accurate structured information make the site easier for search systems to interpret. You don't need AI schema, GEO schema, an llms.txt file for Google, FAQPage markup as a citation hack, hidden AI-generated content, or a farm of generated city pages. For this article, the durable takeaway is to make each public page's purpose, facts, relationships, and next steps explicit rather than adding speculative AI-specific markup.
A website self-audit
Walk your own site through these:
- Can a first-time visitor tell what kind of wash this is?
- Can they find the nearest location?
- Can they compare wash and package choices?
- Can they understand membership before enrolling?
- Is pricing and its context clear enough to decide?
- Does each important page have an obvious next step?
- Can existing members find account and support tasks easily?
- Are real locations represented with real information rather than boilerplate?
- Are there thin or duplicate pages with no distinct purpose?
- Can important pages be reached through crawlable links?
- Does mobile retain the same critical information and routes?
- Can the operator realistically keep every page accurate?
A "no" identifies an architecture question to investigate, not automatically a design failure.
Key takeaways
- Structure follows customer tasks, not visual trends: architecture is which pages exist, how they're organized, and how visitors route and act — Orient → Route → Decide → Act → Support.
- There's no universal blueprint — no fixed page count, no mandatory nav-item count, no forced "Book Now," and no required city pages.
- Single vs multi-location differs: a one-location site can combine more functions on fewer pages; a multi-location operator will often need a stronger locations hub and useful pages for genuine locations because location becomes a customer-routing decision.
- Use the page-existence test — Intent → Substance → Task → Maintenance — to evaluate whether a proposed public page deserves its own URL. Keep existing-member account, management, and support routes clearly findable as a separate architecture responsibility.
- Match pricing and CTAs to reality: show price as clearly as you can accurately maintain it, and make each page's primary action fit the decision it completes.
- Technical hygiene supports the structure — crawlable links, descriptive URLs, mobile parity, honest canonicalization, and accurate schema — without becoming SEO folklore, and access control is not the same as indexation.
