Precision Exteriors: 134 URLs, 26 Town Pages, Built On Our Own Money
The founder’s own exterior-contracting company, and the place every method sold on this site was built and tested first. 134 URLs, 69 service pages, 26 location and service-area pages, server-rendered, with a schema stack you can read in the page source.
Exterior contracting · Measured over Built and maintained continuously; page counts and schema verified 16 August 2026.
How we approach this sector: Home Services
Results
- URLs in the sitemap
- 134
- Service pages
- 69
- Location and service-area pages
- 26
- Blog posts published
- 24
Counted 16 August 2026
30 core services, 6 category hubs, 29 child services, 4 authority pillars. Counted 16 August 2026
19 roofing-contractor town pages plus 7 town and county pages. Counted 16 August 2026
Counted 16 August 2026
The challenge
Start with the disclosure, because burying it would undermine the point of the page. Precision Exteriors is not a third-party client. It is Adam Whitaker’s own exterior-contracting company, and Pufferfish Media exists because of it. Roofing, siding, windows and doors, gutters, decking and fencing, out of two offices in Cambridge and Salisbury, serving eight Maryland counties and two in Delaware.
That relationship is the reason this write-up is worth reading rather than a reason to discount it. Every decision described below was made with our own money on the line. A month where the phone did not ring was a month we absorbed directly, not a line item in someone else’s report. There is no version of this engagement where the marketing looked fine and the business quietly suffered, because they were the same business.
The problem was the ordinary one for a contractor with a wide service area: the crews drive to dozens of towns, and a website with one roofing page and one contact form gives a search engine no reason to show the company in any of them. National lead aggregators sit at the top of the results and resell the same homeowner to several contractors at once. Buying that lead means paying for a customer you had already earned, then bidding against three competitors for their attention.
What we did
The site was built as a structure rather than a brochure, and the structure is the part you can go and count.
Service architecture
Sixty-nine service pages, organised as a hierarchy instead of a flat list: 30 core service pages, 6 category hub pages that gather them, 29 child service pages beneath those for the specific jobs homeowners actually search, and 4 authority pillar pages that carry the depth. A hierarchy does two things a flat list cannot. It gives every child page an obvious parent to inherit relevance from, and it gives a reader a route from a broad question to the exact job without going back to search.
Location coverage
Twenty-six location and service-area pages: 19 built on the roofing-contractor-plus-town pattern, and 7 covering towns and counties more broadly. Each exists because there was something specific and true to write about working in that market. Where there was not, no page was published — which is why the count is 26 and not 80.
Schema
The structured-data stack is deployed across the site and is readable in any page source: RoofingContractor, LocalBusiness for both office locations, FAQPage, Service, Offer, PriceSpecification, BreadcrumbList, WebPage with SpeakableSpecification, EducationalOccupationalCredential, and Article on blog posts. The credential entity is the Owens Corning Platinum Preferred Contractor status, which has its own explainer page on the site rather than sitting as a badge image in a footer — a certification a buyer cannot understand is not doing any work.
Rendering and machine access
The site is server-rendered: the full body copy of every page is in the initial HTML response, not assembled by JavaScript afterwards. An llms.txt file is published so language models have a plain-text map of the site. Titles follow one pattern, {keyword} {City} {ST} | Precision Exteriors, and meta descriptions end with the phone number, so the number is visible in a result even when nobody clicks.
Twenty-four blog posts
Written against the questions homeowners ask before they are ready to call — storm damage, claims, materials, what a job costs and why. Blog posts do not close a roofing job on their own. They make the site the place the answer came from, which is what an answer engine needs before it will name you.
The outcome
What is published here is what can be counted: 134 URLs, 69 service pages, 26 location pages, 24 blog posts, server rendering, llms.txt, and the schema types listed above. Open precision-exteriors.com/sitemap.xml and check every one of them. That is the entire claim, and it is deliberately the entire claim.
What is not published here is a traffic multiple or a revenue figure. We have those numbers, because it is our own company. We are not publishing them, because you would have no way to audit them and no way to distinguish them from the invented ones every other agency puts on a page like this. A number you cannot check is not evidence, however flattering it is.
The useful takeaway is not the size of the site. It is that this architecture was built and revised over years against a real profit-and-loss statement before any of it was sold to another business. The method on this site is not a framework read about in a newsletter. It is what we do to our own company.