Why "just write about your business" is bad advice
Ask a generic marketing agency what to blog about and you get "share your story" or "post project updates." That advice fills a blog. It does not fill a phone. Nobody is searching "read about a roofing company's 20th anniversary." They are searching "how much does a roof replacement cost in [city]" or "why is my AC blowing warm air." The gap between those two things is the whole reason most contractor blogs sit at zero traffic three years after launch.
Walk into any shop and ask the foreman what customers ask on the first call. It's never "tell me about your company history." It's "how much is this going to cost me" and "how bad is it" and "can this wait until next month." A blog that mirrors those actual questions has a shot at showing up when someone runs the search. A blog that mirrors a corporate "about us" page never will, because nobody types that into Google.
A blog post earns its keep one of two ways: it ranks for a search a buyer runs before they call, or it gets pulled into an AI answer (ChatGPT, Gemini, Perplexity, AI Overviews) when someone asks that question conversationally. Both of those require the post to actually answer the question a homeowner has, in plain language, with real numbers. "5 Reasons to Choose Us" does neither. "How Much Does It Cost to Replace a Water Heater in [City]" does both, if it's written straight.
The second mistake is treating every post as a one-off. A blog that ranks is built as a silo: one pillar page owning a broad topic (say, "gutter installation"), with 8-15 cluster posts underneath it answering the narrower questions that feed that topic (cost, materials, seasonal timing, DIY vs. pro, warranty). Orphan posts with no structure around them rarely rank for anything competitive, no matter how well they're written. See how contractor blogging turns into calls for the mechanics of that structure.
- Post ideas should answer a real pre-call question, not narrate the business
- Cost, timeline, and "is this normal" questions outperform "about us" content every time
- Posts work in clusters around a pillar page, not as isolated one-offs
- If a topic wouldn't survive being asked out loud to a foreman on a job site, it's not a real topic
The three buckets every contractor blog needs
Every trade is different, but the topics that work sort into the same three buckets. Skipping a bucket is why a lot of blogs plateau: all cost posts and no trust posts means traffic without calls; all trust posts and no cost posts means nobody finds the site at all.
| Bucket | What it does | Example topics |
|---|---|---|
| Cost & comparison | Captures search volume; ranks on Google, gets cited in AI cost answers | "How much does X cost," "X vs. Y," "is X worth it" |
| Problem & seasonal | Captures urgent, high-intent searches; strong AI-answer bait because the question is specific | "Why is my X doing Y," "when to do X before winter," "signs you need X" |
| Local trust & process | Converts visitors who already found the site; supports Local SEO and the map pack | "What to expect during X," "permits for X in [city/state]," "how we bid X jobs" |
A healthy 12-month calendar runs roughly 40% cost/comparison, 35% problem/seasonal, and 25% local trust. That ratio shifts by trade: emergency trades (plumbing, HVAC, electrical) lean harder into problem/seasonal because that's where the urgent search volume lives; project trades (roofing, remodeling, decks) lean harder into cost/comparison because the buying cycle is longer and more research-heavy.
Titles matter more than most contractors expect. A post titled "Water Heater Replacement" competes with every water heater manufacturer, big-box retailer, and national franchise in the country. A post titled "How Much Does a 50-Gallon Water Heater Replacement Cost in [City]" competes with almost nobody, because almost nobody bothers to get that specific. Specificity is the whole game, both for ranking and for getting quoted by an AI engine that's trying to give a precise answer.
- Cost/comparison posts should carry a real number or range, never just "contact us for pricing"
- Problem/seasonal posts should read like a diagnosis, not a sales pitch
- Local trust posts should mention the actual service area, not just "we serve the region"
- Broad, generic titles lose to specific ones almost every time
30 post ideas, sorted by trade
These are starting points, not a finished calendar. Swap in the exact city, trade specialty, and season that matches the business. The pattern underneath each one is what matters: cost, comparison, problem, or process.
| Trade | Post ideas |
|---|---|
| Roofing | How much does a roof replacement cost by material (shingle vs. metal vs. tile) · signs of storm damage insurance will actually cover · how long a roof inspection takes and what's checked · metal vs. asphalt shingle for [climate] |
| HVAC | Why is my AC running but not cooling · how much does a new HVAC system cost installed · how often should ductwork be inspected · heat pump vs. furnace cost to run in [region] |
| Plumbing | How much does re-piping a house cost · tankless vs. tank water heater, real cost comparison · signs of a slab leak before it floods · what a sewer camera inspection actually shows |
| Electrical | How much does a panel upgrade cost and how long does it take · signs your panel can't handle an EV charger · is a permit required for a subpanel in [state] · whole-home surge protection, worth it or not |
| Landscaping/Lawn | How much does a sprinkler system cost installed · best time of year to aerate and overseed in [region] · sod vs. seed, real cost and timeline · how much does hardscape/paver patio cost per square foot |
| Remodeling/GC | How much does a kitchen remodel cost by scope (cosmetic vs. full gut) · permit timeline for an addition in [city] · what to expect during a bathroom remodel week by week · how to compare two remodel bids that look nothing alike |
Every trade has the same six slots worth filling at minimum: a flagship cost post, a materials/method comparison, a seasonal timing post, a "signs you need this" diagnostic post, a permit/process post specific to the state or city, and a "how to read a bid" post that builds trust without naming competitors. Trades not listed here (concrete, painting, fencing, tree service, pest control, and the rest) follow the identical pattern: swap the nouns, keep the structure.
Notice what's missing from that list: nothing about the company's history, nothing about a new hire, nothing about a truck wrap. Those aren't bad content, they're just not blog content. A homeowner researching a $9,000 HVAC replacement is not searching for a company's mission statement. They're trying to figure out if the number a salesman quoted them is fair, and whether the unit that's failing needs to be replaced or just repaired. Every one of the 30 ideas above exists to answer a version of that question for its trade.
How often should a contractor actually post
Frequency matters less than most agencies pretend it does, and cadence matters more than most contractors think it does. One sharp, specific, 1,200-word post that actually answers a real question outperforms four rushed 400-word posts that restate the same generic advice everyone else already published.
That said, a blog needs enough volume to build a real silo. A pillar page with one or two thin cluster posts under it rarely outranks a competitor's pillar with ten. As a practical target: 2-4 posts a month is enough to build meaningful topical depth inside a single service silo over 6-12 months, without burning out an owner trying to write them between jobs.
- New site or new silo: front-load the first 90 days, roughly 8-10 posts covering the pillar's core questions, then settle into a steady 2-4/month cadence
- Established site with thin content: audit what exists first, fix or consolidate weak posts before adding more (a silo with 20 mediocre posts often underperforms one with 8 sharp ones)
- Seasonal trades: weight publishing toward 60-90 days ahead of the season, not during it (a "prep your AC for summer" post published in July already missed the search spike)
Who writes it matters as much as how often. A post that reads like it came from a generic content mill (vague, adjective-heavy, no real numbers) gets ignored by readers and increasingly gets ignored by AI answer engines too, which favor sources that read as genuinely knowledgeable. The strongest contractor blogs get built from a short interview with the owner or a foreman (what actually goes wrong, what a real bid includes, what homeowners always ask on the first call) turned into a structured post, not a copywriter guessing at trade details from a search results page.
What makes a post good enough to get cited by AI, not just ranked
Ranking on Google and getting quoted by ChatGPT or an AI Overview are related but not identical goals. Ranking rewards relevance and authority signals over time. Getting cited by an AI answer engine rewards a very specific kind of clarity: a direct answer near the top, a real number or range, and a structure the engine can lift cleanly (a short paragraph, a list, a table) without having to interpret marketing language.
Posts that get quoted tend to share a pattern: the question is answered in the first two or three sentences, in plain words, before any pitch. A number appears (a cost range, a timeframe, a percentage) that reads as a real fact, not a rounded marketing claim. And the post commits to a specific trade, region, or scenario rather than hedging with "it depends" and stopping there.
This isn't a separate content strategy from good blogging. It's the same discipline: answer the real question, use real specifics, structure it so a skimmer (human or machine) can find the answer fast. The technical side of AI citation (schema markup, entity structure, how a business gets recognized as an authority across a topic) is a separate discipline from the writing itself. That's covered in AI Search Optimization, not here.
- Answer the question in the first 2-3 sentences before any pitch
- Use a real number, range, or timeframe wherever one exists
- Commit to specifics (a trade, a region, a scenario) instead of hedging
- Structure for skimmability: short paragraphs, lists, and tables where useful
Common mistakes that waste a contractor's blogging budget
The single most expensive mistake is paying for volume instead of specificity. A $25-per-post content mill produces generic, keyword-stuffed articles that read the same for a roofer in Ohio and a roofer in Texas. They rarely rank for anything competitive and they actively hurt AI-answer chances, because generic content is exactly what those engines are learning to filter out in favor of sources that sound like they know the trade. An owner who's paid for 40 of these posts over two years and still sees zero organic leads isn't unlucky. That's the expected outcome of that kind of content.
The second mistake is publishing without a home. A blog post with no pillar page above it and no related cluster posts around it is an orphan. It might rank briefly for a long-tail phrase, but it won't build the topical authority that gets a whole service area of searches. Every post should answer: which pillar page does this support, and what does it link to next. If a post can't answer that question, it's a candidate for cutting, not publishing.
The third mistake is writing for the owner's ego instead of the buyer's question. Posts about company milestones, new trucks, or team photos have their place (social media owns that lane), but they don't answer anything a homeowner searched. A blog is not a newsletter. Every post should be able to answer "what question was someone typing when they needed this."
The fourth mistake, and the one that's hardest to see from the inside, is confusing activity with strategy. Posting consistently feels productive. But posting consistently about the wrong topics, with no pillar structure and no real numbers, produces a blog that looks busy and performs like it's empty, because it is. The fix isn't more effort, it's redirecting the same effort toward the three buckets and the silo structure covered above.
- Cheap, generic content mill posts rarely rank and actively hurt AI-citation odds
- Orphan posts with no pillar page or cluster structure underperform even when well written
- Company-news posts belong on social media, not carrying the blog's SEO weight
- A post with no real number or specific answer is a post that won't get cited
- Consistent posting on the wrong topics is still a wasted budget