— TRADES · CONTENT STRATEGY
Content strategy for trades: the six disciplines that win
How question-format H2s, specific-data claims, real customer quotes, and a 90-day freshness cadence compound into trades-content that wins SEO and AI citations.
Run the thought experiment: two roofers in the same metro publish roughly the same volume of content for a year. One ships 18 guides across the year on topics like “How long does a roof last in Cleveland,” “Storm damage roof inspection checklist,” and “Insurance claim timeline for hail damage.” The other ships 24 blog posts on topics like “Top 5 reasons to call us for your roofing needs” and “Why we’re the best in town for asphalt shingles.” Everything this pillar covers predicts the same ending: the first roofer becomes the cited answer when a homeowner asks Perplexity or ChatGPT about roof replacement, and the second is invisible in those answers while grinding out positions 6 to 12 on Google. Same metro, roughly equal investment, wildly different outcome.
This pillar is the trades-vertical content discipline. It defines what makes a roofing or plumbing or electrical contractor’s content win, walks through the six editorial disciplines that move the needle, gives you a publishable first-year content calendar with monthly cadence, and ends with a 10-point scorecard you can use to rate any page on your existing site. The schema graphs pillar covers the JSON-LD layer that wraps this content. The two work as a pair.
What trades content has to do that other content doesn’t
Trades businesses sell into a buying decision that’s unusually compressed and unusually high-stakes. A homeowner who needs a roof replaced isn’t comparison-shopping for six months. Sometimes the decision happens in 48 hours because the storm just hit. The content has to do its work fast, has to anchor trust in the absence of any prior relationship, and has to answer specific operational questions a customer will Google in the middle of the night.
The second factor, often overlooked: most trades customers are one-shot buyers. A roof gets replaced every 20 to 30 years. A water heater every 8 to 12. The repeat-purchase economics that drive SaaS or DTC content (drip campaigns, retention marketing, lifetime-value optimization) don’t apply. Every piece of trades content is fighting to win a first impression against competitors a homeowner has no prior context for.
Both factors push the editorial bar higher than B2B or ecommerce equivalents. Specific data outperforms generic claims. Real customer testimonials outperform unsourced “great service” quotes. Hyper-local depth outperforms metro-wide generalization. Genuine expertise (the kind only someone who has actually replaced a roof can produce) outperforms ghostwritten generalist copy. The six disciplines below cover the specific editorial moves that compound.
The six disciplines that win trades content
Every guide and service page on a trades site should satisfy all six. A page that satisfies four is acceptable. A page that satisfies two has minimal AEO weight and middling SEO weight. The disciplines are independent; missing one is a real gap, not an acceptable trade-off.
- 1. Question-format H2s anchored to real customer queries
- H2 headings written as the questions a customer would type into Google or ChatGPT, not as topic labels. "How much does roof replacement cost in Cleveland?" outperforms "Pricing." The question version anchors AI extraction; the topic version doesn't. Source the questions from your sales team's actual inbox or from your Google Business Profile Q&A section.
- 2. Specific data with verifiable sources, not generic adjectives
- Every numeric claim should match a real source the reader could check. "2-3 day average from contract to install completion" outperforms "fast turnaround." "GAF Timberline HDZ shingles with 50-year manufacturer warranty" outperforms "premium materials." Numbers without sources are still better than adjectives without sources, but the strongest pattern pairs the number with the attestation.
- 3. Real customer quotations marked up with Quotation schema
- Every service page should embed at least three verbatim quotes from real customers, attributed by first name + last initial + city, linked back to the verifiable source review URL. Quotation schema (the Schema.org type, walked through in the schema graphs pillar) gets AI engines to extract these as citable passages. Fabricated testimonials are detected at scale and create legal exposure. Real ones compound.
- 4. Hyper-local depth, one page per (service, city)
- A roofer serving five cities builds five pages per service, not one. Each city-specific page carries content the others don't: neighborhoods, building codes, storm history, local roof types, real customer reviews from that specific city. Generic "we serve Cleveland, Akron, Canton, and surrounding areas" pages rank for none of those cities. Per-city depth wins in both Google's Local Pack and AI Overviews.
- 5. Freshness discipline — substantive updates on a 90-day cycle
- Pages updated in the last 90 days get cited by AI engines at roughly double the rate of stale pages. Trades-relevant numbers change predictably: pricing rises, materials evolve, codes update, storms shift the local market. Build a rolling update cadence. Three pages a month, every month, every page revisited at least twice a year. The dateModified field has to match a real substantive change, not a one-word tweak to satisfy a calendar reminder.
- 6. Inline citations to authoritative external sources
- Linking to peer-reviewed studies, government regulations, industry-association guidance, and manufacturer documentation increases your citation likelihood. AI engines treat outbound links to authoritative sources as a credibility signal. The intuition that linking out hurts your SEO is empirically wrong for AEO; the data goes the other direction.
The six are independent disciplines. Two pages on the same site can satisfy different subsets. The goal isn’t to monolith every page into all six at once. The goal is to make sure no page on the site is missing more than two.
How to find the question-format H2s your customers actually search
The mistake most trades content makes on this dimension is writing H2 questions a homeowner would never actually ask. “What considerations matter when selecting a roofing contractor?” is not the question. “How do I tell if my roofer is licensed?” is. The phrasing matters because AI engines anchor extraction to headings that match the user’s prompt.
Three sources produce the real questions:
-
Your sales team’s inbox. Search the last 90 days of customer-introduction emails for question marks. The questions homeowners ask during the sales conversation are usually the questions they Googled first.
-
Your Google Business Profile Q&A section. The questions the public posts there are real customer questions, formatted as customers actually phrase them. Don’t paraphrase. Use the language verbatim.
-
AI engines themselves. Open ChatGPT or Perplexity. Ask “what questions do homeowners ask about roof replacement in Louisiana?” The AI returns a curated list of real-world questions. Use it as a draft outline. Validate against #1 and #2.
The reason this is hard is that the questions homeowners actually ask are often embarrassingly direct (“how much does it cost?” “how long will my house be a mess?” “can I stay home during the work?”) and trades-business owners often want to write content that sounds more sophisticated. Resist that pull. The direct phrasing wins.
Specific-data H2s and what numbers to publish
The pattern that produces the biggest AEO lift in this category: replace any sentence in your content that contains a generic claim with a sentence that contains a specific, sourced, defensible number.
A few examples from a typical roofing service page, before and after:
| Generic (low AEO weight) | Specific (high AEO weight) |
|---|---|
| “Fast turnaround" | "2-3 day average from contract signature to install completion across the last 247 jobs" |
| "Affordable pricing" | "$7,500-$18,000 typical range, depending on roof size, pitch, and tear-off requirements" |
| "Experienced team" | "12 crew members, 8 year average tenure, all OSHA-30 certified" |
| "Quality materials" | "GAF Timberline HDZ shingles with 50-year manufacturer warranty (top 3% of installer sales volume = GAF Master Elite eligibility)" |
| "We serve all of Cleveland" | "Serving Cleveland, Akron, Canton, and the I-77 corridor; 247 roofs installed in Greater Cleveland in 2024” |
The right-column versions run longer, and the length is doing work: AI extractors pull substantive sentences and ignore generic ones, so the extra words are exactly the part that earns the citation.
The discipline to enforce: every number on the page has to be defensible. If you say “247 roofs in 2024,” that number should match what your job-management software shows on demand. If you say “8 year average tenure,” the team roster has to prove it. Specific data that isn’t verifiable is worse than no data at all, because it’s a claim a regulator, competitor, or attorney could pick apart.
Helpful content is content that's helpful to people, not content created primarily to attract visits from search engines.
That guidance is the core of every Google content-quality update since 2022. The specific-data discipline is one of the most direct ways to satisfy it on a trades site. Generic content is always written for search engines first. Specific, defensible content is always written for a real reader who could verify the claims independently.
Real customer quotation discipline
Every service-detail page should embed at least three verbatim quotations from real customers, sourced from your Google Reviews, attributed by first name plus last initial plus city, and linked back to the verifiable source URL. The reason this works for trades specifically is that homeowners hiring contractors are in a low-trust, high-stakes context, and a quote from a real previous customer is one of the few things that immediately moves trust.
The minimum viable pattern:
<blockquote cite="https://g.page/r/CXXX...">
<p>"They replaced our roof in two days flat, came in $400 under the estimate, and the crew cleaned up better than we did the day we moved in."</p>
<cite>— Sarah M., Watson, LA · Google Review · 5★ · April 2026</cite>
</blockquote>
For maximum AEO weight, add Schema.org Quotation markup as inline JSON-LD or microdata. For maximum Google rich-results entitlement, add Review schema too. The two coexist; they describe the same underlying quote from different angles. The schema graphs pillar walks through the schema choice in detail.
The rules that protect the system are non-negotiable:
- Never fabricate quotes. Detected at scale through cross-referencing against the actual Google Review record. Creates legal exposure even when the customer is fictional.
- Never edit a customer’s words substantively. Ellipsis (
...) and clarifying brackets ([their roofer]) are fine. Rewriting the substance is not. - Always link to the verifiable source. A Google Review attribution that doesn’t link to the source review URL gets weighted lower by AI engines than one that does.
The cadence that produces sustainable review supply: send a personalized text or email to every completed-job customer within 48 hours with a direct link to your Google Review form. No incentives, ever. Google’s policy bans them, and the algorithm increasingly catches review-for-payment patterns.
Hyper-local content depth: a page per (service, city)
The structural mistake most trades sites make is one page per service, mentioning every city served as a list. That page ranks for none of the cities, gets cited by no AI engine in city-specific queries, and looks like every other generalist contractor page in the metro. The fix is straightforward to describe and tedious to execute: build one page per (service, city) combination for every commercially significant pairing.
A roofer serving Greater Baton Rouge would build something like:
/services/roof-replacement/baton-rouge/for Baton Rouge specifically/services/roof-replacement/watson/for Watson/services/roof-replacement/denham-springs/for Denham Springs/services/roof-replacement/zachary/for Zachary/services/roof-replacement/central/for Central
Each city page carries real, substantive content the others don’t:
- Specific neighborhoods and developments where you’ve worked
- Local building codes and HOA rules that affect roofing decisions
- Common roof types in that area (Watson trends older shingle homes; Baton Rouge has more historic slate)
- Storm history specific to that city (Hurricane Ida’s effect on Baton Rouge differs from Watson’s)
- Real customer review quotes from customers in that specific city
- Service-radius notes and driving directions
- Pricing ranges specific to that local market when you can defend them
This is also where the AEO and local SEO disciplines compound. A city-specific page with question-format H2s, real Google review quotes, and a populated LocalBusiness schema for the service area becomes the page AI engines cite when a homeowner asks “best roofer in Watson.” The local SEO essentials pillar covers the foundation that makes this pattern work.
The freshness discipline
AI engines weight recency aggressively for trades-relevant queries. The assumption is that pricing, materials, codes, and offerings change often enough that stale content is unreliable. Pages updated in the last 90 days get cited at roughly double the rate of pages 12 months stale.
The four signals that have to align:
The substantive part matters more than the cadence number. A one-word change to satisfy a calendar reminder doesn’t trigger the freshness signal. Google’s algorithm looks at the actual content delta. Real freshness updates include:
- Pricing range adjustments backed by your actual job records
- New customer review quotes added from the last 30-60 days
- Updated photos from recent jobs in the relevant city
- Material or product changes (new shingle warranty, updated certification status)
- Code or regulation updates relevant to the topic
- New first-party data points from your own operational records
The dateModified field on your page’s Article or LocalBusiness schema has to match the most recent substantive change. Faking it is detectable and erodes the very freshness signal you’re trying to manufacture.
The first-year content calendar
For a trades business starting from a baseline of weak existing content, the first 12 months follow a defensible rhythm. The shape below assumes the business has 4-5 core services and operates across 3-5 cities in a metro. Adjust upward for larger operations, downward for solo operators.
| Month | Publish (new) | Revise (existing) | Focus |
|---|---|---|---|
| 1 | Foundation home page rewrite | Top 3 service pages | Establish baseline disciplines on highest-traffic pages |
| 2 | 2 service-detail pages (top 2 services) | 1 existing service page | Add specific data, quotes, schema |
| 3 | 2 hyper-local pages (top 2 cities, top 1 service) | 1 service page | Begin per-city depth pattern |
| 4 | 2 guides (first guide pillar + 1 spoke) | 1 hyper-local page | Establish editorial cadence |
| 5 | 2 hyper-local pages (next 2 cities × top service) | 2 service pages | Continue local depth build |
| 6 | 2 guides (second pillar setup) | 1 hyper-local page | Mid-year content audit and review-cadence check |
| 7 | 2 guides (spokes off pillar 2) | 2 service pages | Refresh data, integrate new reviews |
| 8 | 2 hyper-local pages (services 3-4 × top cities) | 2 hyper-local pages | Continue grid coverage |
| 9 | 2 guides (industry-trend pieces, seasonal) | 1 pillar | Q3 freshness pass |
| 10 | 2 hyper-local pages (round out grid) | 2 service pages | Hit majority of (service × city) cells |
| 11 | 2 guides (audit-driven spokes filling gaps) | 1 pillar | Address weakest pages from analytics |
| 12 | 2 high-value updates instead of new pieces | 4 service pages, full refresh | Annual freshness audit and Q4 update push |
That’s roughly 24 new pages and 23 substantive revisions over 12 months. The total publishing rhythm is 1 new + 1 revision per week, averaged. Some weeks will be heavier, others lighter. The constraint is that no week should pass without either a new piece or a substantive revision touching the site.
The calendar assumes the business has the editorial capacity to produce this volume in-house or through a regular contributor. If the realistic capacity is half that, halve every row and accept the slower compounding. A roofer publishing 12 substantive pieces a year still outpaces 80% of competitor sites in mid-tier US metros, where the typical pattern is 0 to 4 pieces a year.
Common objections — and the honest answers
The pushback this content discipline gets, in the field:
“Our customers don’t read this kind of content.” They don’t read all of it. They read the parts that matter to their specific question. A 2,500-word guide that’s structurally extractable lets them land on the H2 that answers their question and read 200 words. The other 2,300 words exist for the next ten customers with different specific questions. Length isn’t a usability problem when the structure is right.
“We don’t have time to publish 24 pieces a year.” Most of the time, that’s true at first. The output ramps. Month 1 produces less than month 6. Building the editorial template (question H2 inventory, quote-collection rhythm, photo library, service-list reference) front-loads the time investment. By month 4 the per-page time drops by 40-60% because the components are reusable. The capacity constraint is real, but it eases on a predictable curve.
“Won’t this stuff get scraped and used against us by AI engines?” AI engines extract and credit. Refusing to publish doesn’t prevent the extraction; it just ensures the extracted answer comes from a competitor who did the work. The asymmetric outcome favors publishing. If your content is good and your schema is clean, you become the cited source. If you don’t publish, someone else gets cited as the authority in your market.
“Can’t we just use AI to write all of this?” No. AI-generated content without human expertise and verifiable data underperforms across every metric that matters here. AI engines preferentially cite content with E-E-A-T signals (real authors, verifiable credentials, defensible data, real customer quotes). Pure AI-generated content has none of those. Use AI as a drafting assistant for the structural template, then layer in the trade-specific expertise from your team. That works. Letting AI write the whole thing doesn’t.
“How do we measure whether this is actually working?” Three metrics over a 90-day rolling window. GA4 referral traffic from chatgpt.com, perplexity.ai, claude.ai, and gemini.google.com. Manual prompt audits of your top 10 commercially-important queries across those engines. Google Search Console impression growth on long-tail informational queries. Move all three in the right direction and the discipline is paying off. If only one moves, your content is winning on one surface but missing on others; audit which discipline is weak.
The trades-content scorecard
Take any existing page on your site. Rate it on each of the 10 criteria below, 0 or 1. A page scoring 8+ is competitive in your metro. A page scoring 5-7 has real gaps but can be improved page-by-page. A page scoring under 5 is unlikely to compound and should be rebuilt rather than edited.
- Question-format H2s — Headings phrased as the questions a real customer would ask
- First-sentence answers — The first 1-2 sentences after each H2 directly answer that H2’s question
- Specific data with sources — Generic adjectives (“fast,” “affordable,” “premium”) replaced with sourced numbers
- Real customer quotations — At least three verbatim quotes from real reviews, attributed and linked
- Schema markup —
LocalBusinesssubtype,Service,FAQPage, andQuotation/Reviewschema present and validated - Inline citations — At least three outbound links to authoritative external sources within the body
- Hyper-local depth — Content specific to a named city (neighborhoods, codes, storm history, local context), not metro-generic
- Freshness —
dateModifiedreflects a substantive update within the last 90 days - HTML-first — Critical content visible in View Source, not rendered by client-side JavaScript
- E-E-A-T signals — Named author byline with credentials, team-member
Personschema withworksForandhasCredential
Run the scorecard on your 10 highest-traffic pages before rebuilding anything new. Most trades sites discover that 3 to 5 of those top pages score under 5, and those are the highest-leverage improvements. The AEO fundamentals pillar covers the underlying AEO mechanics. The schema graphs pillar covers the schema layer. The local SEO essentials pillar covers the local SEO foundation. The four pillars together describe the full discipline.
First-party data
Dynamic Promotion launched the first cohort of trades-vertical sites with this content discipline in 2026. Page-by-page citation-share data from those builds (measured via monthly prompt audits across ChatGPT, Perplexity, Claude, and Google AI Overviews) will be added to this guide once the cohort has 12 months of post-launch publishing under the disciplines described here.
Frequently asked
How is content strategy for trades different from content strategy for any other business?
How often does a trades site need to publish to stay AEO-competitive?
What's the difference between an AEO content page and a traditional SEO page?
Are guides better than blog posts for trades content?
Can I outsource trades content writing or do I need to write it myself?
Should I write for AI engines or for human readers?
Sources
- Google Search Central · Creating helpful, reliable, people-first content (E-E-A-T)
- Aggarwal et al. (Princeton, Georgia Tech, Allen AI) · GEO — Generative Engine Optimization (KDD 2024)
- Google Search Central · Search Essentials
- Google Search Central · Article structured data
- Schema.org Community Group · Schema.org Article type
- Schema.org Community Group · Schema.org HowTo type
- Schema.org Community Group · Schema.org Question type
- Google Search Central · Helpful content update
- Google Search Central · Google's guide to its search ranking systems (incl. freshness systems)
- BrightLocal · Local Consumer Review Survey
Want this audited on your own site?
Free 1-page report — AEO compliance score, top 3 fixes, no obligation. Delivered within 7 days.