How this site is built
A working website for a multi-service local contractor, built so each trade can rank on its own. Keystone Fence & Deck Co. is fictional; the architecture, templates and lead system are real.
Five silos, one site
Each trade is a self-contained topic cluster: a hub page for the head term and child pages for specific services. Internal links run down from the hub, sideways between related services and up through breadcrumbs, so each cluster builds its own relevance instead of competing with the others.
The same pattern carries any multi-trade contractor: swap Fencing / Gates / Decks / Repair / Clearing for, say, Demolition / Land Clearing / Tree Services / Site Cleanup, and the templates, linking rules and schema carry over unchanged. Adding a trade is one data entry: the Land Clearing silo was added that way, and every menu, footer, sitemap and city page picked it up automatically.
Five page types
| Template | Built to rank for | What's on it |
|---|---|---|
| Home | Brand + head term (fence company Plano) | Hero film, silo cards, process, standards, service-area map, FAQ |
| Silo hub | The trade's head term (fence installation Plano) | Child grid, comparison guide, estimate factors, FAQ, ItemList schema |
| Service | One specific service + city | Elevation drawing, options, inclusions, spec table, factors, FAQ, sticky quote form, related services |
| City | Service + city intent (fence company Frisco TX) | Local considerations, featured services with local anchors, neighborhoods, nearby cities |
| Estimate | Conversion, not ranking | Two-step form, service prefill, photo upload, next-step reassurance |
Linking rules
- Every service page links up to its hub (breadcrumb and sidebar) and the hub links down to every child.
- Each service links sideways to two or three related services, with one or more in another silo where jobs genuinely pair (privacy fence → staining, walk gates).
- Every service page links to every city page with descriptive anchors ("Wood Privacy Fence in Frisco"); every city page links back to its top services and all four hubs.
- The footer carries hubs, cities and six popular services only (not every URL), so link weight stays concentrated.
- Every estimate CTA on a service page passes ?service= so the form arrives pre-filled.
Schema by page type
| Page | JSON-LD |
|---|---|
| All pages | HomeAndConstructionBusiness (service-area business: city and region, no street address), WebPage, BreadcrumbList |
| Home | WebSite, OfferCatalog of every service, FAQPage |
| Silo hub | Service, ItemList of child services, FAQPage |
| Service | Service with provider and areaServed, FAQPage |
| City | Service scoped to the city, FAQPage |
FAQPage markup stays for machine readability and AI answer engines, but the build doesn't count on FAQ rich results. Google limited those to government and health sites in 2023.
Implemented on every page
- Unique title, 70 characters or fewer
- Unique meta description, 165 or fewer
- One H1, logical H2/H3 below it
- Canonical URL
- Breadcrumbs, visible and in schema
- Open Graph and social image
- XML sitemap and robots.txt
- Indexing switch in one config value
Lead system
- Free Estimate and click-to-call in the header, plus a sticky call/estimate bar on phones
- A quote card on every service page, pre-labelled with that service
- Two-step estimate form: contact first, details and photos second
- Phone photos resized in the browser before upload, so large images don't fail
- If the form provider refuses photos, the lead is still delivered without them
- Honeypot spam trap; GA4 generate_lead and click_to_call events when analytics is on
Light by design
Every illustration is inline SVG drawn in code, crisp on any screen. The hero film is a 10.75-second, 2,624 KB H.264 loop cut from licensed stock footage: it shows its poster first, stays still for reduced-motion and Save-Data visitors, and pauses off-screen. Maps load lazily. Photos dropped into the photos folder are resized to 800 and 1600 px WebP and JPEG with all metadata, GPS included, stripped. One stylesheet, one deferred script, self-hosted fonts.
How it maps to WordPress
The URL tree becomes the page hierarchy one to one (parent and child pages with identical slugs). Each template becomes a block pattern; titles, metas and schema move to Rank Math or Yoast; the estimate form becomes Gravity Forms or WPForms with file upload; GA4 and Search Console connect through Site Kit. Adding a city is one new page from the city template.
Every page and its target
| URL | Type | Primary target |
|---|---|---|
| / | Home | fence company plano tx |
| /services/ | Service index | fence gate deck services plano |
| /fencing/ | Silo hub | fence installation in plano & north dallas |
| /fencing/wood-privacy-fence/ | Service | wood privacy fence installation |
| /fencing/horizontal-slat-fence/ | Service | horizontal slat fence installation |
| /fencing/wrought-iron-fence/ | Service | wrought iron & ornamental steel fencing |
| /fencing/pipe-ranch-fence/ | Service | pipe & ranch fence installation |
| /fencing/pool-fence/ | Service | pool fence & barrier installation |
| /fencing/commercial-fence/ | Service | commercial & chain link fencing |
| /gates/ | Silo hub | custom gates & gate openers in north dallas |
| /gates/driveway-gates/ | Service | custom driveway gates |
| /gates/automatic-gate-openers/ | Service | automatic gate opener installation |
| /gates/custom-walk-gates/ | Service | custom walk gates |
| /gates/access-control/ | Service | gate access control & intercoms |
| /gates/gate-repair/ | Service | gate repair |
| /decks/ | Silo hub | decks, pergolas & patio covers in north dallas |
| /decks/wood-decks/ | Service | wood deck construction |
| /decks/composite-decks/ | Service | composite deck construction |
| /decks/pergolas/ | Service | custom pergola construction |
| /decks/patio-covers/ | Service | patio cover construction |
| /decks/deck-repair/ | Service | deck repair & restoration |
| /repair/ | Silo hub | fence repair & restoration in plano & north dallas |
| /repair/fence-repair/ | Service | fence repair |
| /repair/storm-damage-fence-repair/ | Service | storm damage fence repair |
| /repair/fence-staining/ | Service | fence staining & sealing |
| /repair/post-replacement/ | Service | fence post replacement |
| /repair/fence-removal/ | Service | fence removal & haul-off |
| /land-clearing/ | Silo hub | land clearing & site prep in collin county |
| /land-clearing/acreage-clearing/ | Service | acreage & land clearing |
| /land-clearing/lot-clearing/ | Service | residential & vacant lot clearing |
| /land-clearing/brush-clearing/ | Service | brush & undergrowth clearing |
| /land-clearing/fence-line-clearing/ | Service | fence line clearing |
| /land-clearing/forestry-mulching/ | Service | forestry mulching |
| /land-clearing/site-grading/ | Service | site prep & grading |
| /service-areas/ | Area hub | fence contractor collin county |
| /service-areas/plano/ | City | fence company plano tx |
| /service-areas/frisco/ | City | fence company frisco tx |
| /service-areas/mckinney/ | City | fence company mckinney tx |
| /service-areas/allen/ | City | fence company allen tx |
| /service-areas/richardson/ | City | fence company richardson tx |
| /service-areas/prosper/ | City | fence company prosper tx |
| /projects/ | Projects | fence projects plano |
| /about/ | About | about keystone fence |
| /free-estimate/ | Estimate form | free fence estimate plano |
| /contact/ | Contact | contact fence company plano |