Limited Time Offer: Get a free one-one-one session with our marketing expert!

    Get Started
    TreeCraft Tree Service

    TreeCraft Tree Service

    Programmatic SEO Tree Service Website

    TreeCraft Tree Service

    TreeCraft Tree Service is a tree removal, trimming, stump grinding, storm response and land clearing company working Buffalo, Rochester and Batavia, New York, built on a hand coded WordPress theme where 62 towns and 5 services are rendered from two PHP data files instead of hundreds of hand built pages.

    Project Highlights
    Custom WordPress ThemeNo Page BuilderProgrammatic Page RoutingStructured Data & SchemaAI Search DiscoverabilityContent Differentiation SystemCRM IntegrationTechnical SEO Foundation
    Project Overview

    TreeCraft Tree Service works three metro areas at once, Buffalo, Rochester and Batavia, each with its own neighborhoods, soil, and storm patterns, through one crew and one phone line. The client brief was explicit: a real, separately rankable page for every town the crew actually drives to, crossed with every service it actually performs, not a single service area page listing sixty towns in a paragraph. Calibre Associates built a hand coded WordPress theme with no page builder, where that entire catalog, 62 towns by 5 services, lives in two plain PHP files a developer can read top to bottom rather than hundreds of rows in wp admin.

    Business

    Tree Removal, Trimming, Storm Response & Land Clearing

    Industry

    Tree Services & Arboriculture

    Location

    Buffalo, Rochester & Batavia, New York

    Client Goals
    • Give every town and every service its own real, indexable page
    • Avoid the duplicate content risk that a hand built page per town usually creates
    • Keep the entire catalog editable from two files instead of hundreds of admin rows
    • Build for AI answer engines as well as classic search
    • Ship a review widget without resorting to fake review schema
    • Catch structural bugs before handover, not after
    The Challenge

    Sixty two towns times five services is 310 pages. Hand authoring that many WordPress pages means 310 rows in wp admin, 310 places for copy to drift out of date, and near certain duplicate content penalties if each page is not genuinely distinct from its neighbors. That was the brief that shaped everything downstream, real separation at that scale without 310 people ever touching an editor.

    Our Strategy

    Rather than a custom post type with hundreds of database rows, we treated the town and service catalog as data, not content. Two plain PHP arrays and a routing layer render every location page, every service page, and every town and service combination on request, so adding town number 63 or a sixth service later means one new array entry, not a new page built by hand.

    The Solution

    Calibre Associates built locations-data.php and services-data.php as the entire town and service catalog, 62 towns with county, metro area, neighboring towns, ZIP codes, and real per town facts like soil type and lake effect snow pattern, plus 5 services each with its own pitch, process steps, and FAQ set. A template_include filter matches three URL patterns against those arrays and renders one of three shared templates, 404ing cleanly on anything that does not validate. Each page opening pulls from a small rotation of hand written paragraphs chosen by a hash of its own URL slug, so the same page always renders the same way and no two neighboring towns read identically, without an AI rewriting anything at request time. The full site carries a hand written schema graph, LocalBusiness and TreeService sitewide, Service scoped to each town on combination pages, FAQPage matched to visible copy, BreadcrumbList per page type, BlogPosting on the six long form articles, and a Speakable specification on every page naming TreeCraft directly rather than starting with an anonymous we. A dynamic llms.txt route, rendered by WordPress rather than a static file, always reflects the current service and town list. With no review platform connected yet, the site runs a small custom rotating review widget instead of a third party embed, deliberately without Review or AggregateRating schema, since structured review data on a widget not fed by a real review platform is exactly what search guidelines flag for manual action.

    WHAT SHIPPED

    Website Features

    Custom WordPress theme with no page builder
    Entire town and service catalog driven by 2 PHP data files
    Virtual routing matching 3 URL patterns against the data layer
    Deterministic per page content variation with no AI generation at request time
    6 schema types: LocalBusiness, Service, FAQPage, BreadcrumbList, BlogPosting, Speakable
    Dynamic llms.txt route reflecting the live service and town list
    6 long form articles across 5 topic categories with reciprocal cross linking
    Custom rotating review widget with no fake Review or AggregateRating schema
    GoHighLevel embedded lead form sized to its own content
    Hand built sitemap split into 5 sub sitemaps
    BUILT TO LAST

    Technical Foundation

    SEO Foundation
    • Keyword hierarchy applied by template, not entered page by page
    • Title pattern of primary keyword, town, and brand on every combination page
    • Meta descriptions templated per service with a town placeholder
    • Image alt text generated from the same keyword and location logic across all pages
    • Internal linking mesh connecting every service, town, combination, and article page both ways
    • Full JSON-LD schema graph validated across every page type
    Performance & Mobile
    • Hosted on Hostinger with LiteSpeed caching purged on every deploy
    • Deployed via SSH and WP-CLI rather than a manual upload process
    • Five dimension audit run before handover: technical SEO, content quality, structured data, answer engine readiness, and sitemap integrity
    • Two critical bugs caught and fixed: duplicate titles between generic service pages and their Buffalo combination page, and an SEO plugin corrupting the title tag on every generated page
    • Two medium bugs caught and fixed: double escaped HTML entities inside JSON-LD, and a speakable schema block pointing at a CSS selector that did not exist
    THE OUTCOME

    Business Impact

    The build gives TreeCraft a real, separately rankable page for every town and service combination it actually serves, without the duplicate content risk that usually comes with covering three metro areas at once. Being upfront about the review widget, a custom built display rather than fake review schema, keeps the site inside search engine guidelines instead of gambling with a manual action. The five dimension audit caught structural bugs, including one that would have had two of the site's own pages competing against each other in search, before either ever reached a live visitor.

    • 310 town and service combination pages rendered from 2 data files instead of hundreds of hand built posts
    • Full 6 type schema graph in place across every page, not a generic plugin default
    • Dynamic llms.txt keeps AI answer engines current with the live service and town list automatically
    • Review widget built to avoid fake Review schema, keeping the site inside search guidelines
    • Two critical and two medium bugs caught and fixed by a structured audit before handover
    • Adding a new town or service now takes one data entry, not a new page built by hand
    0

    Indexable URLs At Launch

    0

    Towns Covered

    0

    Town & Service Combination Pages

    0

    Data Files Driving The Entire Site

    OUR ROLE

    Built by Calibre Associates

    Custom WordPress Theme
    No Page Builder
    Programmatic Page Routing
    Structured Data & Schema
    AI Search Discoverability
    Content Differentiation System
    CRM Integration
    Technical SEO Foundation
    Let's Talk

    Ready to Build Your Next Digital Success Story?

    Whether you're launching a new business, scaling an existing brand, or transforming your online presence, let's build something exceptional together.

    Privacy & Cookies

    We use cookies to enhance your browsing experience and analyze site traffic. You can choose which cookies to allow.