📰 Blog Archive + Blog Posts Master Playbook

From Dead Blog to KC's #1 Plumbing Content Engine
Prepared by Robert Dove | Dove Web Consulting | April 2026
Built from: BB Blog System v6.3 (3,452 lines) + Nexus Keyword North Star (234 keywords, 28 clusters) + DWC 7-Layer Ecosystem + 6 HubSpot Blog Templates + SEJ Ranking Factors + Best Damn Cheat Sheet + Live Site Scan (callbrightside.com/learning-center/)

📋 Table of Contents

A

Current State Audit: /learning-center/ 🔍

🤔 Stephanie, why is this important?

Your blog has been dead since November 2023. That means zero organic leads from content for 29 months. Every competitor who publishes is stealing search real estate you should own. This audit shows exactly what's broken and what the fix looks like.

Live Site Scan Results (April 17, 2026)

ElementCurrent StateBest PracticeGap
📝 Blog posts visible~20 posts (stale since Nov 2023)2-4 new posts/month minimum🔴 CRITICAL
📅 Post datesNot visible on cardsDate + read time on every card🔴 CRITICAL
📄 Post excerptsNot visible2-3 sentence preview per card🔴 CRITICAL
🏷️ Category filters6 buttons (All, Sewer Repair, Plumbing Repair, Maintenance, Leak Detection, Emergency)Aligned to pillar/hub taxonomy + working JS🟡 EXISTS but weak
🔍 SearchNoneSearch bar with autocomplete🔴 MISSING
📊 PaginationNone visibleLoad more / numbered pages🟡 Not needed yet (20 posts)
👤 Author infoNoneAuthor name + headshot per post🔴 MISSING
📱 SidebarNoneCTA + popular posts + lead magnet🔴 MISSING
🏗️ SchemaNone detectedCollectionPage + BreadcrumbList🔴 MISSING
📌 Featured postNoneHero featured post at top🔴 MISSING
🔗 Internal linksBasic nav onlyService page cross-links in sidebar🟡 WEAK
📞 CTA on archiveHeader phone onlySticky CTA + inline CTAs🔴 MISSING
🚨 VERDICT: The Learning Center is a content graveyard. No dates, no excerpts, no search, no schema, no sidebar, no CTAs, no author info. It exists but does zero conversion work. 10 of 12 best-practice elements are missing or critically broken.

Current URL Structure

callbrightside.com/ ├── learning-center/ ← Blog archive (THIS PAGE) │ ├── [post-slug-1]/ ← Individual posts │ ├── [post-slug-2]/ │ └── ... (~20 posts) ├── plumbing-services/ ← Service hub │ ├── drain-cleaning/ │ ├── sewer-cleaning/ ← Note: NOT under /plumbing-services/ │ └── ... ├── sewer-repair/ ← Top-level (inconsistent hierarchy) ├── trenchless-sewer-repair/ ← Top-level (inconsistent) ├── water-heaters-installation/ ├── service-areas/ │ └── plumber-[city]-[state]/ ← 15 location pages └── about-us/ ├── quality-plumber/ ├── reviews/ └── financing/ ⚠️ ISSUES FOUND: 1. Service pages have INCONSISTENT hierarchy (some under /plumbing-services/, some top-level) 2. Blog uses /learning-center/ not /blog/ (lower SEO signal for blog intent queries) 3. No pillar/hub URL structure for content clusters
📝 Your Notes: Current State Saved
B

7-Pillar Content Architecture 🏗️

🤔 Stephanie, why is this important?

Google doesn't rank individual blog posts anymore. It ranks TOPICAL AUTHORITY. If you have one post about sewer repair, you're a random page. If you have a pillar page + 12 cluster posts + FAQ schema + internal links + local data, Google sees you as THE sewer repair authority in KC. That's how you steal organic traffic from competitors spending $200/lead on ads.

Architecture Source: Nexus Keyword North Star (234 Keywords, 28 Clusters)

This architecture is built from real keyword data scored by revenue weight (30%), search volume (20%), ranking difficulty (15%), and competitive gap (10%). Sewer repair scores highest at 70.7 average priority.

#PillarTypeKeywordsMonthly VolumeAvg PriorityRevenue/JobCluster Posts
1🔧 Sewer RepairPILLAR4924,93070.7$3K-$15K12
2🚨 Emergency PlumbingPILLAR1726,95069.5$500-$2K8
3🔥 Water Heater InstallPILLAR115,30068.5$2K-$8K6
4🔥 Water Heater RepairPILLAR2624,87053.6$500-$2K6
5🪠 Drain CleaningPILLAR2015,04057.5$150-$5006
6🔥 Gas Line ServicesPILLAR168,14066.6$500-$2K5
7🏗️ Sewer ReplacementPILLAR198,37067.7$5K-$20K6

Hub Pages (Supporting Pillars)

HubParent PillarKeywordsVolumePosts Needed
🔍 Sewer Camera InspectionSewer Repair62,5803
🚿 Hydro JettingDrain Cleaning32,2902
🏗️ Trenchless RepairSewer Replacement103,2204
🛁 Bathroom Remodel PlumbingGeneral105,6704
💧 Sump PumpEmergency84,7303
🔬 Plumbing InspectionGeneral102,9103
💧 Water TreatmentGeneral62,2602

Spoke Pages (Long-tail, High-Intent)

Spoke TopicParentVolumeWhy It Matters
😷 Sewer smell in houseSewer Repair2,780High-intent symptom search, low competition (difficulty 35.7)
🏢 Commercial plumbingGeneral3,090Higher ticket, recurring contracts
🥶 Frozen pipe repairEmergency1,270Seasonal peak Jan-Feb, urgent intent
🗑️ Garbage disposalGeneral1,470Entry service, upsell to sewer inspection
🔙 Backflow testingCommercial580Required by code, recurring revenue
🌳 Tree roots in sewer lineSewer RepairEst. 500+#1 cause of sewer damage in KC, huge content gap
🏠 Orangeburg pipe replacementSewer ReplacementEst. 300+KC-specific (1940s-1970s homes), high-ticket $9K
📋 Sewer line insuranceSewer ReplacementEst. 400+Informational intent, builds trust, pre-qualifies budget

Pillar-Cluster Visual Architecture

┌─────────────────────────────────────────┐ │ 🔧 SEWER REPAIR (Primary Pillar) │ │ /learning-center/sewer-repair/ │ │ 49 keywords | 24,930 vol | $7.5K avg │ └──────────────────┬──────────────────────┘ │ ┌───────────────┬───────────┼───────────┬────────────────┐ │ │ │ │ │ ┌──────┴──────┐ ┌──────┴──────┐ ┌──┴───┐ ┌────┴─────┐ ┌───────┴───────┐ │ 🔍 Camera │ │ 🌳 Tree │ │ 😷 │ │ 🏠 │ │ 💰 Cost │ │ Inspection │ │ Roots │ │Sewer │ │Orangeburg│ │ Guide │ │ Hub (3) │ │ Spoke │ │Smell │ │ Spoke │ │ Cluster │ └─────────────┘ └─────────────┘ │Spoke │ └──────────┘ └──────────────┘ └──────┘ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐ │ Signs You │ │ Trenchless │ │ KC Spring │ │ Insurance + │ │ Need Repair │ │ vs Tradi- │ │ Rain Sewer │ │ Sewer Lines │ │ Cluster │ │ tional │ │ Backups │ │ Spoke │ └─────────────┘ └─────────────┘ └──────────────┘ └──────────────────┘ LINKING RULES: ✅ Every cluster post links UP to its pillar page ✅ Every cluster post links ACROSS to 2+ sibling clusters ✅ Every pillar page links DOWN to all its clusters ✅ Every post links to 1+ service page (/sewer-repair/, /drain-cleaning/) ✅ Every post links to 1+ location page (/service-areas/plumber-overland-park-ks/) ✅ Pillar pages link to other pillars (sewer repair ↔ sewer replacement)
📊 Content Math: 7 pillars + 7 hubs + 8 spokes = 22 topic clusters. At 3-12 posts per cluster = 66-100 total blog posts needed for full topical authority. At 2 posts/week = 33-50 weeks to full coverage. At 1 post/week = 66-100 weeks (15-24 months).
📝 Your Notes: Content Architecture Saved
C

Blog Archive Page Redesign 📰

🤔 Stephanie, why is this important?

The blog archive is the FRONT DOOR to your content. Right now it's a wall of unlabeled cards with no dates, no excerpts, no search. Visitors land here and bounce because they can't find what they need. A properly designed archive page converts browsers into readers into callers.

Archive Page Wireframe

┌─────────────────────────────────────────────────────────────────────┐ │ NAV BAR (existing) 📞 (913) 963-1029 │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ BREADCRUMB: Home > Learning Center │ │ │ │ H1: Plumbing Tips, Guides + Expert Advice from KC's │ │ 5th-Generation Master Plumber │ │ │ │ Subtitle: Real answers from real plumbers. No fluff, │ │ no national averages. Just KC-specific plumbing expertise. │ │ │ │ 🔍 [Search plumbing topics...] │ │ │ │ CATEGORY PILLS: │ │ [All] [Sewer] [Water Heaters] [Drains] [Emergency] │ │ [Gas Lines] [Maintenance] [Cost Guides] │ │ │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ ⭐ FEATURED POST (full-width hero card) │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ [HERO IMAGE] Complete Guide to Sewer Repair │ │ │ │ in Kansas City │ │ │ │ Apr 15, 2026 · 12 min read │ │ │ │ By Kalen Barker, Master Plumber │ │ │ │ "Everything KC homeowners need to..."│ │ │ │ [Read Guide →] │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ ├───────────────────────────────────────────┬─────────────────────────┤ │ POST GRID (2 columns) │ SIDEBAR │ │ │ │ │ ┌──────────┐ ┌──────────┐ │ 📞 EMERGENCY? │ │ │ [IMAGE] │ │ [IMAGE] │ │ Call (913) 963-1029 │ │ │ SEWER │ │ WATER │ │ 24/7 Service │ │ │ Title... │ │ Title... │ │ [Call Now] │ │ │ Date · ⏱ │ │ Date · ⏱ │ │ │ │ │ Excerpt..│ │ Excerpt..│ │ ───────────────── │ │ │ [Read →] │ │ [Read →] │ │ │ │ └──────────┘ └──────────┘ │ 🔥 POPULAR POSTS │ │ │ 1. Signs of Sewer.. │ │ ┌──────────┐ ┌──────────┐ │ 2. Water Heater... │ │ │ [IMAGE] │ │ [IMAGE] │ │ 3. Emergency Plum.. │ │ │ DRAIN │ │ EMERGENCY│ │ 4. Trenchless vs.. │ │ │ Title... │ │ Title... │ │ 5. Frozen Pipes... │ │ │ Date · ⏱ │ │ Date · ⏱ │ │ │ │ │ Excerpt..│ │ Excerpt..│ │ ───────────────── │ │ │ [Read →] │ │ [Read →] │ │ │ │ └──────────┘ └──────────┘ │ 📥 FREE GUIDE │ │ │ "Home Plumbing │ │ [Load More Posts] │ Maintenance │ │ │ Checklist" │ │ │ [Download PDF] │ │ │ │ │ │ ───────────────── │ │ │ │ │ │ ⭐ 4.9 STARS │ │ │ 384+ Google Reviews │ │ │ [Read Reviews] │ │ │ │ │ │ ───────────────── │ │ │ │ │ │ 🔧 SERVICES │ │ │ · Sewer Repair │ │ │ · Water Heaters │ │ │ · Drain Cleaning │ │ │ · Leak Repair │ │ │ · Trenchless │ │ │ [All Services →] │ ├───────────────────────────────────────────┴─────────────────────────┤ │ FOOTER (existing) │ └─────────────────────────────────────────────────────────────────────┘

Archive Page Schema (JSON-LD)

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "CollectionPage", "name": "Plumbing Tips, Guides & Expert Advice", "description": "Expert plumbing guides from Bright Side Plumbing. Sewer repair, water heaters, drain cleaning, emergency plumbing tips for Kansas City homeowners.", "url": "https://callbrightside.com/learning-center/", "isPartOf": { "@type": "WebSite", "name": "Bright Side Plumbing & Heating", "url": "https://callbrightside.com" }, "breadcrumb": { "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "name": "Home", "item": "https://callbrightside.com/"}, {"@type": "ListItem", "position": 2, "name": "Learning Center", "item": "https://callbrightside.com/learning-center/"} ] }, "publisher": { "@type": "LocalBusiness", "name": "Bright Side Plumbing & Heating", "address": { "@type": "PostalAddress", "streetAddress": "12022 Blue Valley Pkwy", "addressLocality": "Overland Park", "addressRegion": "KS", "postalCode": "66213" }, "telephone": "+19139631029", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.9", "reviewCount": "384" } } } </script>

Post Card Requirements

ElementSpecificationWhy
📸 Featured image16:9 ratio, 800x450px, WebP, lazy-loadedVisual hook, reduces CLS
🏷️ Category badgeColored pill matching pillar (e.g., red for Emergency)Visual filtering cue
📝 TitleH3, max 70 chars, keyword-firstSEO + scanability
📅 Date"Apr 15, 2026" formatFreshness signal for Google + users
⏱️ Read time"8 min read" (calculated at 200 wpm)Sets expectation, reduces bounce
📄 Excerpt2 sentences, max 160 charsGives reader reason to click
👤 AuthorSmall avatar + "By Kalen Barker"E-E-A-T signal (Experience, Expertise, Authority, Trust)
🔗 Read more"Read Guide →" or "Read Tips →" (not generic "Read More")Specific CTA converts better
📝 Your Notes: Archive Redesign Saved
D

12-Section Blog Post Blueprint 📋

🤔 Stephanie, why is this important?

Every blog post that ranks on page 1 follows a predictable structure. This isn't creative writing. It's engineering. The 12-section blueprint ensures every post has the right SEO signals, trust signals, conversion points, and internal links. Skip a section and you lose ranking power. The BB system (Bathroom Bidders) uses a 10-section version that's already proven. This is the plumbing-optimized evolution.

Post Anatomy (Top to Bottom)

┌─────────────────────────────────────────────────────────────┐ │ SEC 1: HERO + TITLE BLOCK │ │ ├── Featured image (16:9, real job photo, WebP) │ │ ├── H1: [Keyword-First Title + KC Angle] │ │ ├── Subtitle: [Persona + Promise] │ │ ├── Author: Kalen Barker | Date | Category | Read time │ │ └── Share: Facebook, X, Email, Copy URL │ ├─────────────────────────────────────────────────────────────┤ │ SEC 2: OPENING HOOK (First 155 chars = meta description) │ │ ├── Relatable pain point (homeowner language) │ │ ├── Why it matters (cost, damage, safety) │ │ └── What this post delivers (promise) │ ├─────────────────────────────────────────────────────────────┤ │ SEC 3: TABLE OF CONTENTS (clickable, sticky on desktop) │ │ └── H2 anchors listed, collapsible on mobile │ ├─────────────────────────────────────────────────────────────┤ │ SEC 4: CORE CONTENT (3-7 H2 sections) │ │ ├── Each H2: Problem → Impact → Solution → BSP Service │ │ ├── Authority anchors (IPC, UPC, EPA, PHCC, IAPMO) │ │ ├── KC-specific data (soil conditions, freeze-thaw, etc.) │ │ ├── Real pricing ranges where applicable │ │ └── Internal links to service pages + location pages │ │ ┌───────────────────────────────────────────────────┐ │ │ │ 🟣 INLINE CTA (after section 2 of core content) │ │ │ │ "Need help now? Call (913) 963-1029 or │ │ │ │ schedule your free estimate." │ │ │ │ GA4 event: cta_click │ │ │ └───────────────────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ SEC 5: COMPARISON TABLE (if applicable) │ │ └── Side-by-side: methods, costs, timelines, pros/cons │ ├─────────────────────────────────────────────────────────────┤ │ SEC 6: STEP-BY-STEP PROCESS │ │ └── "What to expect when you call Bright Side" │ │ 1. Call + describe issue → 2. Camera inspection → │ │ 3. Diagnosis + quote → 4. Repair → 5. Warranty │ ├─────────────────────────────────────────────────────────────┤ │ SEC 7: COST SECTION (pricing transparency) │ │ ├── "How much does [service] cost in Kansas City?" │ │ ├── Price range table by service type │ │ ├── "Factors that affect your quote" list │ │ └── Financing CTA → /financing/ (Wisetack) │ ├─────────────────────────────────────────────────────────────┤ │ SEC 8: FAQ SECTION (4-8 questions, FAQPage schema) │ │ ├── Questions match "People Also Ask" queries │ │ ├── At least 2 KC-specific questions │ │ ├── Answers: 30-50 word opener + detail │ │ └── Each answer links to a relevant service or post │ ├─────────────────────────────────────────────────────────────┤ │ SEC 9: TRUST BLOCK │ │ ├── "Why Choose Bright Side Plumbing" │ │ ├── 5th-generation master plumber │ │ ├── 4.9 stars, 384+ reviews │ │ ├── PHCC + ICC + IAPMO memberships │ │ ├── Flat-rate pricing, lifetime warranty │ │ └── $200 off sewer repairs promo (if applicable) │ ├─────────────────────────────────────────────────────────────┤ │ SEC 10: RELATED CONTENT LINKS │ │ ├── Pillar page link (if this is a cluster post) │ │ ├── 2-3 related cluster posts │ │ ├── 1 service page │ │ └── 1 location page │ ├─────────────────────────────────────────────────────────────┤ │ SEC 11: LEAD MAGNET / DOWNLOAD │ │ ├── "Download our [Topic] Checklist (Free PDF)" │ │ ├── Email gate optional (test gated vs ungated) │ │ └── GA4 event: checklist_download │ ├─────────────────────────────────────────────────────────────┤ │ SEC 12: CLOSING CTA │ │ ├── Primary: "Schedule Your Free Estimate" → booking │ │ ├── Secondary: "Call (913) 963-1029" │ │ ├── Tertiary: Financing available → /financing/ │ │ └── GA4 events: cta_click, click_tel │ └─────────────────────────────────────────────────────────────┘

Section-by-Section Word Count Targets

SectionTarget Words% of PostNotes
1. Hero + Title0 (visual)-Image + metadata only
2. Opening Hook50-803%First 155 chars = meta description
3. Table of Contents0 (auto)-Generated from H2 tags
4. Core Content800-1,20050%3-7 H2 sections, each 150-300 words
5. Comparison Table100-2008%Table + intro paragraph
6. Step-by-Step150-25010%5-step process, 30-50 words each
7. Cost Section150-25010%Price table + factors list
8. FAQ200-40015%4-8 Q&As, 40-60 words each
9. Trust Block80-1205%Credentials + social proof
10. Related Links0 (links)-4-6 internal links
11. Lead Magnet30-502%Download CTA + description
12. Closing CTA30-502%Booking + phone + financing
TOTAL1,800-2,500100%Sweet spot for service-area blog posts

On-Page SEO Checklist (Every Post)

#ElementSpecificationCheck
1Title tag50-60 chars, primary keyword first, " | Bright Side Plumbing" at end
2Meta description150-160 chars, keyword + CTA + "(913) 963-1029"
3H1ONE per page, contains primary keyword + KC/city name
4H2/H3 hierarchyLogical nesting, no skipping levels, keywords in 60%+ of H2s
5URL slugShort, hyphenated, keyword-rich (e.g., /sewer-repair-cost-kansas-city/)
6Canonical tagSelf-referencing canonical
7Open Graphog:title, og:description, og:image (1200x630), og:url
8Image alt textEvery image, descriptive, includes keyword where natural
9Image formatWebP, lazy-loaded below fold, compressed under 100KB
10Internal linksMin 3 service pages + 1 location page + 2 related posts
11External links1-2 authoritative sources (IPC, EPA, PHCC research)
12Word count1,800-2,500 words (never under 1,500)
13ReadabilityGrade 7-9 reading level (Hemingway App)
14SchemaArticle + FAQPage + BreadcrumbList (see Section F)
15Mobile testReadable at 320px width, no horizontal scroll
📝 Your Notes: Blog Post Blueprint Saved
E

6 Blog Post Types + Plumbing Examples 📝

🤔 Stephanie, why is this important?

Different search intents require different post formats. Someone searching "how to tell if my sewer line is broken" needs a How-To guide. Someone searching "trenchless vs traditional sewer repair" needs a Comparison post. Matching format to intent is how you win featured snippets and People Also Ask boxes.

TypeWhen to UseBSP Example TitleTarget KeywordPriority Score
📋 How-To GuideProcess questions, DIY vs pro decisions"How to Tell If Your Sewer Line Is Collapsing"signs you need sewer line replacement79.5
What-Is ExplainerEducational, awareness stage, definitions"What Is Trenchless Sewer Repair? A KC Homeowner's Guide"trenchless sewer repair Kansas City75.2
📊 ListicleSymptom lists, tip collections, mistake roundups"7 Signs You Need a Sewer Camera Inspection"sewer camera inspection78.2
🏛️ Pillar PageComprehensive topic authority (3,000+ words)"Complete Guide to Sewer Repair in Kansas City"sewer repair Kansas City76.1
💰 Cost GuidePricing transparency, budget qualification"How Much Does Sewer Repair Cost in Kansas City? (2026)"sewer repair cost81.5
⚖️ ComparisonDecision-stage, method evaluation"Trenchless vs Traditional Sewer Repair: KC Cost Comparison"trenchless vs traditional sewer repair76.5

Type 1: How-To Guide Structure

H1: How to [Action] + [KC Qualifier] │ ├── Hook: Symptom the reader is experiencing ├── H2: What causes [problem] │ ├── H3: Cause 1 (most common) │ ├── H3: Cause 2 │ └── H3: KC-specific cause (soil, weather, age of homes) ├── H2: How to identify [problem] │ ├── H3: Visual signs │ ├── H3: Behavioral signs (slow drains, smells) │ └── H3: When to call a professional ├── H2: Step-by-step: What happens when you call BSP │ ├── Step 1: Phone consultation │ ├── Step 2: Camera inspection │ ├── Step 3: Diagnosis + options │ └── Step 4: Repair + warranty ├── H2: Cost breakdown ├── H2: FAQ (4-6 questions, FAQPage schema) ├── Trust block └── CTA: Schedule free estimate SCHEMA: Article + HowTo + FAQPage + BreadcrumbList TARGET: 1,800-2,200 words FEATURED SNIPPET TARGET: Numbered list or table

Type 4: Pillar Page Structure (3,000+ words)

H1: Complete Guide to [Service] in Kansas City │ ├── Hook: "Everything KC homeowners need to know about..." ├── TABLE OF CONTENTS (sticky, clickable) ├── H2: What is [service]? (definition + how it works) ├── H2: Types of [service] (methods, materials, approaches) │ ├── H3: Method A (with pros/cons table) │ ├── H3: Method B │ └── H3: Method C ├── H2: Signs you need [service] (symptom list) ├── H2: The [service] process step by step ├── H2: How much does [service] cost in KC? │ ├── Price range table │ ├── Factors affecting cost │ └── Financing options (link to /financing/) ├── H2: [Service] for specific situations │ ├── H3: Older homes (pre-1970s, Orangeburg, cast iron) │ ├── H3: New construction │ └── H3: Commercial properties ├── H2: KC-specific considerations │ ├── H3: Soil conditions + clay content │ ├── H3: Freeze-thaw cycles │ ├── H3: Tree root prevalence │ └── H3: Local permit requirements (Johnson County, KC MO) ├── H2: FAQ (8-12 questions, FAQPage schema) ├── H2: Why choose Bright Side (trust block) ├── Related posts grid (6 cluster links) └── CTA: Schedule + Call + Financing SCHEMA: Article + FAQPage + BreadcrumbList + Service TARGET: 3,000-4,000 words INTERNAL LINKS: 10+ (all clusters + service pages + locations) UPDATE CADENCE: Monthly refresh with new data/case studies

Type 5: Cost Guide Structure (Highest Conversion Intent)

💰 Why cost guides convert best: Someone searching "how much does sewer repair cost in Kansas City" is 3-5x more likely to book a consultation than someone searching "what is trenchless sewer repair." They've already decided they need the service. They're price-shopping. Transparent pricing builds trust and pre-qualifies budget. Every service pillar should have a companion cost guide.
H1: How Much Does [Service] Cost in Kansas City? (2026 Pricing) │ ├── Hook: "The honest answer: it depends. Here's what affects your price." ├── H2: Quick answer (featured snippet target) │ └── "In Kansas City, [service] typically costs $X,XXX to $XX,XXX..." ├── H2: Cost breakdown by type │ └── TABLE: Service Type | Price Range | Timeframe | Notes │ ├── Basic repair: $X,XXX - $X,XXX | 1-2 days │ ├── Mid-range: $X,XXX - $X,XXX | 2-3 days │ └── Full replacement: $XX,XXX - $XX,XXX | 3-5 days ├── H2: Factors that affect your price │ ├── H3: Depth and location of the line │ ├── H3: Repair method (trenchless vs excavation) │ ├── H3: Pipe material (PVC, cast iron, Orangeburg, clay) │ ├── H3: Permits and inspections │ └── H3: Landscaping restoration ├── H2: Does insurance cover [service]? ├── H2: Financing options (link to Wisetack / Acorn Finance) ├── H2: How to avoid overpaying (red flags from contractors) ├── H2: FAQ (6-8 cost-focused questions) ├── Trust block └── CTA: "Get a Free, No-Obligation Estimate" SCHEMA: Article + FAQPage + BreadcrumbList TARGET: 2,000-2,500 words FEATURED SNIPPET: Price table format UPDATE: Quarterly with current pricing data
📝 Your Notes: Post Types Saved
F

Blog SEO + Schema Stack 🔍

🤔 Stephanie, why is this important?

Schema markup is how you talk directly to Google. Without it, Google guesses what your page is about. With it, you tell Google exactly: "This is a blog post about sewer repair, written by a master plumber, with these FAQs, at this address, with this rating." That's how you get rich results (stars, FAQ dropdowns, How-To steps) in search results, which increases click-through rate by 20-40%.

Required Schema per Post Type

Post TypeSchema 1Schema 2Schema 3Schema 4
How-To GuideArticleHowToFAQPageBreadcrumbList
What-Is ExplainerArticleFAQPageBreadcrumbList-
ListicleArticleFAQPageBreadcrumbListItemList
Pillar PageArticleFAQPageBreadcrumbListService
Cost GuideArticleFAQPageBreadcrumbList-
ComparisonArticleFAQPageBreadcrumbList-

Article Schema Template (Every Post)

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "[H1 Title]", "description": "[Meta description]", "image": "[Featured image URL]", "datePublished": "2026-04-17", "dateModified": "2026-04-17", "author": { "@type": "Person", "name": "Kalen Barker", "jobTitle": "5th-Generation Master Plumber", "worksFor": { "@type": "LocalBusiness", "name": "Bright Side Plumbing & Heating" } }, "publisher": { "@type": "LocalBusiness", "name": "Bright Side Plumbing & Heating", "logo": { "@type": "ImageObject", "url": "https://callbrightside.com/logo.png" }, "address": { "@type": "PostalAddress", "streetAddress": "12022 Blue Valley Pkwy", "addressLocality": "Overland Park", "addressRegion": "KS", "postalCode": "66213" }, "telephone": "+19139631029", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.9", "reviewCount": "384" } }, "mainEntityOfPage": { "@type": "WebPage", "@id": "[Post URL]" } } </script>

FAQPage Schema Template

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "How much does sewer repair cost in Kansas City?", "acceptedAnswer": { "@type": "Answer", "text": "Sewer repair in Kansas City typically costs $3,000 to $15,000 depending on the scope of damage, repair method, and pipe material. Trenchless methods cost 20-30% more upfront but avoid landscaping restoration costs. Call (913) 963-1029 for a free estimate." } }, { "@type": "Question", "name": "What are signs of a damaged sewer line?", "acceptedAnswer": { "@type": "Answer", "text": "Common signs include slow drains throughout the house, sewage smell in your yard, wet spots in the lawn, foundation cracks, and increased pest activity. If you notice multiple symptoms, schedule a sewer camera inspection." } } ] } </script>

Featured Snippet Optimization

Snippet TypeHow to Win ItExample QueryFormat
📊 TableComparison table immediately after H2"sewer repair cost Kansas City"Service | Cost | Timeline table
📋 ListNumbered/bulleted list under H2"signs of sewer line damage"1. Slow drains 2. Sewage smell...
📝 Paragraph40-50 word definition after "What is" H2"what is trenchless sewer repair"Direct answer paragraph
🔢 StepsHowTo schema + numbered steps"how to fix a sewer backup"Step 1, Step 2, Step 3...
📝 Your Notes: SEO + Schema Saved
G

Field Intelligence Capture System (FICS) 🎙️

🤔 Stephanie, why is this important?

The best blog content doesn't come from keyword tools. It comes from technicians. Every day your plumbers hear the same homeowner questions, see the same installation mistakes, and discover the same hidden damage. FICS captures those insights and turns them into blog posts that no competitor can replicate because they're grounded in real KC field experience. This is adapted from the BB system where Mike Voss's field notes generate 100% of their blog content.

FICS 5-Layer Capture System

🔧 LAYER 1: Pre-Job Quick Tap (30 seconds) → Job type, expected complexity, initial assumption → "Based on what I see, I think the main issue is..." 🔍 LAYER 2: Mid-Job Reality Check (during work) → What surprised you? (moisture, previous bad work, wrong materials) → "The moment I realized this job was different was when..." ✅ LAYER 3: Post-Job Reflection (2 minutes, tools packed) → Root cause + what would have prevented it → "If the homeowner had done one thing earlier..." 🚗 LAYER 4: Drive-Home Voice Note (60-90 seconds, optional but gold) → "What did the customer believe at the start, and what did they understand by the end?" → Tool: Samsung/iPhone Voice Recorder → shared folder 📊 LAYER 5: Weekly Synthesis (Robert, NOT technicians) → Review last 5-10 jobs for repeating patterns → Tag each insight to a pillar (sewer, water heater, drain, etc.) → Feed directly into content calendar

Google Form: "BSP Field Notes" (Mobile-Friendly, 2-5 min)

SectionQuestionsInput Type
A. Job ContextJob type (dropdown), Property type, City/AreaDropdown + Short
B. Before You StartedExpected complexity, Main issue expected, One-sentence assumptionMC + Short
C. What You FoundWhat surprised you? (checkboxes), "The moment I realized..."Checkbox + Short
D. After the JobRoot cause, What would have prevented it?, "If the homeowner..."MC + Checkbox + Short
E. Customer PerspectiveWhat did they believe? What did they understand by the end?Short + Short
F. Tag This InsightWhich pillars does this apply to? (checkboxes)Checkbox
G. Voice NoteDid you record one? Link to recording.Y/N + Short

Field Signal → Content Mapping

Field SignalThresholdContent Output
Same mistake seen across jobs3+ timesBlog post (Listicle: "X Signs You Need...")
Same customer objection2+ timesFAQ block added to existing post
Same surprise finding2+ timesVisual/infographic content
Cost confusion from customersAnyCost Guide post
Repeated "wish I knew" moments2+ timesHow-To Guide post
Seasonal patternAnnualSeasonal post (refreshed yearly)

Topic Evaluation Scorecard (Min 7/10 to Write)

CriteriaPointsHow to Score
🔍 Search demand0-20=none, 1=moderate (50-200/mo), 2=high (200+/mo)
🏠 KC-specific relevance0-20=national only, 1=some local angle, 2=deeply local (soil, weather, codes)
💰 Conversion potential0-20=awareness only, 1=consideration, 2=decision stage (pricing, booking)
🔧 Field evidence (FICS)0-20=theoretical, 1=seen once, 2=recurring pattern from technicians
⚔️ Competitive gap0-20=crowded/10+ competitors, 1=some content exists, 2=nobody owns this in KC
📝 Your Notes: FICS Saved
H

52-Week Content Calendar 📅

🤔 Stephanie, why is this important?

Plumbing is seasonal. Frozen pipes in January, sump pump failures in April, sewer backups in spring rains, water heater deaths in December. Publishing the right content at the right time means showing up in search results when homeowners are actively experiencing the problem. This calendar maps content to KC seasonal patterns so every post publishes 2-4 weeks BEFORE peak demand.

Annual Content Cadence

CadenceFrequencyOwner
📝 Blog posts2 per week (104/year)Robert (write) + Kalen (review)
📱 GBP posts3 per week (156/year)Robert (auto from blog)
📸 Social posts5 per week (260/year)Metricool (scheduled from blog)
📧 Email newsletter1 per month (12/year)Robert (curated from blog)
🔄 Content refreshMonthly (top 5 posts)Robert

Seasonal Content Map

MonthThemeTop IssuesPillar FocusBlog Topics (2/week)
🥶 JanFrozen Pipe SeasonBurst pipes, no hot water, heating failuresEmergency + Water HeaterFrozen pipe prevention, Water heater failure signs, Emergency plumber checklist, When to DIY vs call a pro
❄️ FebWinter DamagePipe bursts from thaw, water heater strainEmergency + Water HeaterThaw damage guide, Tankless vs tank comparison, Pipe insulation guide, Water heater maintenance
🌧️ MarSpring Rain PrepSewer backups, root intrusion, sump pumpSewer Repair + Sump PumpSewer backup prevention, Tree root intrusion, Sump pump maintenance, Spring plumbing checklist
🌱 AprSewer Season BeginsGround saturation, backup spikesSewer RepairSigns of sewer damage, Camera inspection guide, Trenchless vs traditional, Sewer repair cost guide
☀️ MayOutdoor PlumbingGas line for grills, irrigation, hose bibsGas Line + GeneralGas line for grill install, Outdoor plumbing prep, Sprinkler system plumbing, Gas leak detection
🔥 JunSummer ProjectsBathroom remodels, water heater upgradesGeneral + Water HeaterBathroom remodel plumbing, Kitchen plumbing upgrade, Whole house water filter, Summer drain care
🌡️ JulPeak ServiceHeavy use, drain clogs, garbage disposalDrain CleaningGarbage disposal guide, Drain cleaning methods, Hydro jetting explained, Grease trap maintenance
🏫 AugBack-to-SchoolCommercial prep, multi-family, inspectionsCommercial + InspectionCommercial plumbing inspection, Multi-family plumbing, School facility prep, Backflow testing
🍂 SepFall MaintenancePre-winter prep, water heater serviceMaintenance + Water HeaterFall plumbing checklist, Water heater flush guide, Sewer scope before buying a home, Annual inspection
🎃 OctWinterizationPipe winterizing, exterior shutoffEmergency + GeneralWinterize your plumbing, Outdoor faucet shutdown, Water heater efficiency, Orangeburg pipe age check
🍁 NovHoliday PrepHeavy kitchen use, drain overload, guest bathroomsDrain Cleaning + GeneralHoliday drain survival, Guest bathroom plumbing, Kitchen disposal tips, Sewer line holiday stress
🎄 DecEmergency SeasonFrozen pipes, water heater deaths, holiday emergenciesEmergency + Water HeaterEmergency plumber guide, Water heater replacement, Holiday plumbing disasters, Year-end maintenance

First 12 Posts: Priority Queue (Revenue-Weighted)

#TitleTypePillarKeywordScore
1Complete Guide to Sewer Repair in Kansas CityPillarSewersewer repair Kansas City81.5
2How Much Does Sewer Repair Cost in Kansas City? (2026)Cost GuideSewersewer repair cost81.5
37 Signs You Need a Sewer Camera InspectionListicleSewersewer camera inspection78.2
4Trenchless vs Traditional Sewer Repair: KC Cost ComparisonComparisonSewertrenchless sewer repair Kansas City76.5
5What Is Trenchless Sewer Repair? A Homeowner's GuideWhat-IsSewertrenchless sewer repair75.2
6Water Heater Installation Cost in Overland Park (2026)Cost GuideWater Heaterwater heater installation Overland Park80.0
75 Signs Your Sewer Line Needs ReplacementListicleSewer Replacesigns you need sewer line replacement79.5
8Emergency Plumber in Overland Park: What to Do FirstHow-ToEmergencyemergency plumber Overland Park79.5
9Orangeburg Pipe Replacement: What KC Homeowners Need to KnowWhat-IsSewer Replaceorangeburg pipe replacement KC78.3
10Why Sewer Backups Spike During KC Spring RainsHow-ToSewersewer backup Kansas City78.2
11Tree Root Intrusion: The #1 Cause of Sewer Damage in KCWhat-IsSewertree roots in sewer line77.0
12Gas Leak Detection in Kansas City: Signs, Costs, Next StepsHow-ToGas Linegas leak detection Kansas City76.3
📌 Note: 8 of the first 12 posts are sewer-focused. This is intentional. Sewer repair is BSP's #1 revenue driver ($3K-$15K per job). Establishing topical authority in sewer content first maximizes revenue impact per post. Water heater and emergency posts are mixed in to diversify while maintaining sewer dominance.
📝 Your Notes: Content Calendar Saved
I

Blog-to-Revenue Conversion Pipeline 💰

🤔 Stephanie, why is this important?

A blog post that doesn't generate leads is a hobby project. Every post must have a clear path from "reading about sewer repair" to "calling (913) 963-1029" or "scheduling online." The conversion pipeline maps every touchpoint from first click to booked job, with GA4 events tracking each step so you can measure ROI per post.

Conversion Funnel: Blog Reader → Booked Job

STAGE 1: DISCOVERY └── Google search → Blog post appears in SERP └── Rich result (FAQ dropdown, stars, author) → Higher CTR STAGE 2: ENGAGEMENT └── Reader lands on post → Reads core content └── GA4: page_view, scroll_depth, engaged_session STAGE 3: INTENT SIGNALS ├── Clicks inline CTA → GA4: cta_click (location: mid_article) ├── Downloads checklist PDF → GA4: checklist_download ├── Expands FAQ answer → GA4: faq_click ├── Views cost table → GA4: scroll_depth (75%+) └── Clicks service page link → GA4: internal_link_click STAGE 4: CONVERSION ├── Calls (913) 963-1029 → GA4: click_tel → ServiceTitan: inbound call ├── Clicks "Schedule Estimate" → GA4: schedule_click → ServiceTitan: booking ├── Clicks financing link → GA4: financing_click → Wisetack application └── Submits contact form → GA4: form_submit → ServiceTitan: lead STAGE 5: ATTRIBUTION └── ServiceTitan: Job booked → Revenue recorded └── GA4: Multi-touch attribution → Blog gets credit └── Monthly report: Revenue per blog post

CTA Placement Strategy

PositionCTA TypeTextGA4 Event
After Section 2 (core)Inline soft CTA"Need help now? Call (913) 963-1029 or schedule your free estimate."cta_click (mid_article)
After cost sectionFinancing CTA"Financing available. 0% APR options through Wisetack."financing_click
After FAQBooking CTA"Still have questions? Schedule a free on-site estimate."cta_click (post_faq)
Bottom of postPrimary CTA blockPhone + Booking + Financing (triple option)cta_click (bottom)
Sticky mobilePhone bar"📞 Call Now" (fixed bottom on mobile)click_tel (sticky)
Sidebar (desktop)Emergency CTA"Emergency? Call 24/7: (913) 963-1029"click_tel (sidebar)

Lead Magnet Strategy per Pillar

PillarLead MagnetFormatGate?
🔧 Sewer Repair"Sewer Health Checklist: 10 Signs to Watch For"PDF (1-pager)Ungated (trust builder)
🔥 Water Heater"Water Heater Buyer's Guide: Tank vs Tankless"PDF (2-pager)Email gated
🚨 Emergency"Emergency Plumbing Action Plan" (fridge magnet format)PDF (printable)Ungated
🪠 Drain Cleaning"Monthly Drain Maintenance Checklist"PDF (1-pager)Ungated
🔥 Gas Line"Gas Leak Safety Guide" (what to do, who to call)PDF (1-pager)Ungated (safety = trust)
🏗️ Sewer Replacement"Is My Sewer Line Failing? Self-Assessment Quiz"Interactive quizEmail to get results
📋 General Maintenance"Annual Home Plumbing Inspection Checklist"PDF (2-pager)Email gated
📝 Your Notes: Conversion Pipeline Saved
J

Content Distribution + Amplification 📣

🤔 Stephanie, why is this important?

Publishing a blog post and waiting for Google to rank it is like opening a restaurant and not telling anyone. Every post needs active distribution across 5+ channels. The BB system distributes every post to 8 platforms automatically via Zapier. BSP should use Metricool (already in the stack) for scheduling + GBP posts for local SEO + ServiceTitan follow-ups for customer retention.

Distribution Pipeline: One Post → 7 Channels

📝 BLOG POST PUBLISHED │ ├──→ 📱 METRICOOL (same day) │ ├── Facebook: 2-3 sentence teaser + link + image │ ├── Instagram: Carousel summary (5 slides) + bio link │ ├── LinkedIn: Professional angle + Kalen perspective │ └── YouTube Community: If video companion exists │ ├──→ 📍 GOOGLE BUSINESS PROFILE (same day) │ └── "What's New" post: 100-word summary + CTA + link │ ⚠️ GBP posts expire after 7 days. Schedule 3/week. │ ├──→ 🏘️ NEXTDOOR (within 48 hours) │ └── Community post: Helpful tip format, NOT promotional │ Mention Overland Park/KC, be neighborly │ ├──→ 📧 EMAIL NEWSLETTER (monthly roundup) │ └── Top 4 posts of the month + 1 featured │ ServiceTitan customer list or HubSpot CRM │ ├──→ 🔧 SERVICETITAN (post-job follow-up) │ └── Automated email 7 days after job completion: │ "Here's a guide to maintaining your [service]" │ Links to relevant blog post based on job type │ ├──→ 🏠 TECHNICIAN ENABLEMENT │ └── Weekly Slack/text to techs with "share this with customers" │ Pre-written text + link for easy forwarding │ └──→ 🔄 CONTENT REFRESH (monthly) └── Update top 5 posts: new data, new FAQs, refresh date Resubmit URL to Google Search Console after update
📝 Your Notes: Distribution Saved
K

Competitive Content Gap Analysis 🎯

🤔 Stephanie, why is this important?

Most KC plumbing companies have zero blog strategy. The ones that do write generic national content. Nobody is publishing KC-specific sewer repair guides with real pricing, local soil data, and Johnson County permit info. That's the gap. Owning it means owning the organic search results for the highest-revenue plumbing keywords in the metro.

Top 20 Keyword Opportunities (From Nexus Keyword North Star)

#KeywordVolumeDifficultyAvg TicketScoreContent Exists?
1sewer repair Overland Park17045$7,50081.5NO
2sewer repair Leawood5030$7,50080.2NO
3water heater installation Overland Park9042$2,20080.0NO
4sewer line replacement Overland Park14045$9,00079.5NO
5emergency plumber Overland Park14045$80079.5NO
6sewer repair Lenexa7035$7,50079.3NO
7sewer repair Shawnee6035$7,50079.3NO
8sewer repair Olathe11040$7,50078.5NO
9orangeburg pipe replacement KC5030$9,00078.3NO
10sewer backup Kansas City14042$7,50078.2NO
🚨 CRITICAL GAP: All top 10 keyword opportunities score 78+ priority and BSP has ZERO content for any of them. Every one of these searches sends potential $7,500+ sewer jobs to competitors. At 2 posts/week, BSP can own all 10 within 5 weeks.

KC Competitor Content Audit

CompetitorBlog PostsUpdate FrequencySchemaLead MagnetsPricing
A-1 Sewer & Septic~15QuarterlyNoneNoneNone
Mr. Rooter KC~30Monthly (national)BasicNoneNone
Benjamin Franklin Plumbing~50Monthly (national)BasicNoneNone
Anthony Plumbing~20InfrequentNoneNoneNone
BSP (current)~20Dead (Nov 2023)NoneNone$200 off coupon

Content Advantages BSP Can Build That Competitors Can't

AdvantageWhy Competitors Can't CopyContent Type
🏆 5th-generation master plumber authorshipNobody else has this lineageAuthor bio, E-E-A-T signal on every post
💰 Real KC pricing (not national averages)Franchises use corporate contentCost guides with local price tables
🌍 KC soil + weather expertiseNational brands don't localizePosts about clay soil, freeze-thaw, tree roots
🔧 FICS field intelligenceRequires active technician participationReal stories, real mistakes, real photos
📋 Johnson County permit knowledgeOnly local companies know the specificsPermit guides, inspection requirements
⭐ 4.9 stars / 384+ reviewsTakes years to buildReview snippets in every post
🏗️ Orangeburg/cast iron/clay pipe expertiseKC-specific pipe inventory knowledgeDedicated spoke content for each pipe type
📝 Your Notes: Competitive Gap Saved
L

Implementation Roadmap 🗺️

🤔 Stephanie, why is this important?

This is the build order. Phase 1 fixes the archive page and publishes the sewer pillar (highest revenue impact). Phase 2 expands clusters. Phase 3 adds secondary pillars. Phase 4 is the optimization flywheel. Each phase has specific deliverables, timelines, and success metrics so you know exactly where you are.

Phase 1: Foundation (Weeks 1-3)

WeekTaskOwnerDeliverableHours
1Rebuild /learning-center/ archive pageRobertNew layout with sidebar, search, filters, featured post, schema8
1Set up FICS Google FormRobertMobile-friendly form on technician home screens2
1Create blog post template in WordPressRobertOxygen Builder template with all 12 sections pre-built4
2Write sewer repair pillar pageRobert + Kalen3,000+ word pillar: "Complete Guide to Sewer Repair in KC"6
2Write sewer cost guideRobert"How Much Does Sewer Repair Cost in Kansas City? (2026)"4
3Write 4 sewer cluster postsRobertCamera inspection, Trenchless vs Traditional, Signs, Tree roots12
3Create first lead magnet PDFRobert"Sewer Health Checklist" (1-page PDF)2
3Set up GA4 events for blogRobertcta_click, click_tel, checklist_download, scroll_depth, faq_click3

Phase 2: Cluster Expansion (Weeks 4-8)

WeekPostsPillarCumulative Total
42 (emergency plumber + sewer backup)Emergency + Sewer8
52 (water heater install + orangeburg)Water Heater + Sewer Replace10
62 (gas leak + sewer replacement cost)Gas Line + Sewer Replace12
72 (emergency pillar + drain cleaning pillar)Emergency + Drain14
82 (hydro jetting + sump pump)Drain + Emergency16

Phase 3: Secondary Pillars (Weeks 9-16)

Build out water heater, gas line, and drain cleaning pillars with 4-6 cluster posts each. Target: 30+ total posts by week 16.

Phase 4: Optimization Flywheel (Month 5+)

MONTHLY OPTIMIZATION LOOP: ┌───────────────────────────────────────────────────────────┐ │ 1. REVIEW: GA4 data for top 10 posts │ │ → Which posts drive calls? Which have high bounce? │ │ │ │ 2. REFRESH: Update top 5 posts │ │ → New FAQ, new pricing data, new case studies │ │ → Update dateModified in schema │ │ → Resubmit URL to Search Console │ │ │ │ 3. EXPAND: Add 1-2 new FAQs from FICS data │ │ → Technician field notes → FAQ blocks │ │ │ │ 4. LINK: Add internal link from 1 new post │ │ → Every new post should link to existing top posts │ │ │ │ 5. DISTRIBUTE: Reshare top performers on social │ │ → Metricool scheduling for evergreen content │ │ │ │ 6. MEASURE: Monthly blog ROI report │ │ → Organic traffic, leads, booked jobs, revenue │ │ │ │ REPEAT EVERY 30 DAYS. After 12 months of this loop, │ │ conversion rate should DOUBLE from launch baseline. │ └───────────────────────────────────────────────────────────┘
📝 Your Notes: Implementation Saved
M

KPIs + ROI Measurement 📊

🤔 Stephanie, why is this important?

"We are not interested in activity-based reporting. We are interested in revenue-tied performance." Your words. Every blog metric ties to revenue. Not pageviews. Not likes. Revenue per post. Cost per organic lead. Organic share of total leads. These are the numbers that prove the blog is working or that something needs to change.

Blog KPI Dashboard

KPIMonth 1Month 3Month 6Month 12Source
📝 Posts published (cumulative)6163060+WordPress
👁️ Organic blog traffic50-100500-1,0002,000-4,0008,000-15,000GA4
📊 Blog conversion rate1-2%2-3%3-5%5-7%GA4
📞 Calls from blog1-210-2030-6080-120GA4 + ServiceTitan
💰 Revenue from blog leads$2K-$5K$15K-$40K$50K-$100K$150K-$250KServiceTitan
🔍 Keywords ranked (page 1)0-25-1520-4050-80Semrush
💲 Cost per organic leadN/A$50-80$25-40$15-25Calculated
📈 Organic share of total leads0-1%3-5%8-15%20-30%GA4 + ServiceTitan

Blog ROI Math

INVESTMENT (Year 1): Robert's time: ~10 hrs/week × 52 weeks × $33.65/hr = $17,498 (10 hrs = 4 hrs writing + 2 hrs distribution + 2 hrs optimization + 2 hrs FICS) RETURN (Year 1, conservative): Month 6 organic leads: 40/month × $1,786 avg ticket × 80% booking = $57,152/mo Month 12 organic leads: 100/month × $1,786 avg ticket × 80% booking = $142,880/mo Year 1 cumulative (ramp curve): ~$500,000-$750,000 in blog-attributed revenue ROI: $500K revenue / $17.5K investment = 28.6x return COMPARISON: Google Ads: $200 CPL × 100 leads = $20,000/month spend Blog organic: $25 CPL × 100 leads = $2,500/month (Robert's time) SAVINGS: $17,500/month = $210,000/year in reduced ad dependency
📝 Your Notes: KPIs Saved
N

Blindspot Check + Gap Analysis ✅

🤔 Stephanie, why is this important?

This section exists because we've learned the hard way that missing one file can invalidate an entire strategy. Every source file that fed this playbook is listed below. Every gap is flagged. Nothing is assumed.

Source Files Consumed

FileLines/PagesKey ContributionStatus
BB_BLOG_POST_CREATION_SYSTEM.md3,452 lines10-section blueprint, FICS, 8-hub architecture, brand voice, QA checklistREAD
keyword_priority_20260303.txt57 lines234 keywords scored, top 20 opportunities, service priority rankingREAD
keyword_clusters_20260303.txt230 lines28 clusters (7 pillar, 10 hub, 11 spoke), keyword assignmentsREAD
content_calendar_march.txt226 linesMonthly calendar template, 40 pieces/month cadence, seasonal mappingREAD
blog_outline_sewer_repair_overland_park.txt106 linesSample blog outline with H2s, FAQs, internal links, competitor analysisREAD
DWC_Service_Page_STRATEGY_Master.md150+ lines7-layer revenue ecosystem, programmatic SEO multipliersREAD
DWC_Service_Page_Build_Playbook_2026.md150+ lines12-section template, SEO checklist, schema templatesREAD
BrightSide_Growth_Strategy_2026.html3,207+ linesLSA strategy, review velocity, organic growth targets, revenue projectionsREAD (style)
BrightSide CLAUDE.md240 linesTech stack, team, revenue targets, operating rules, known issuesREAD
_extracted_bb_conversations.md21,951 linesHub code naming evolution, Pinterest board mapping, ChatGPT blindspot auditSEARCHED
BB_social_media_ops_extracted/19 filesSocial distribution pipeline, caption generation, platform rulesSEARCHED
Pillar Page Blog Post Template.docxFoundHubSpot pillar-cluster modelREAD (prev session)
How to_ Blog Post Template.docxFoundHow-to post blueprintREAD (prev session)
List Blog Post Template.docxFoundListicle blueprintREAD (prev session)
What is_ Blog Post Template.docxFoundEducational post blueprintREAD (prev session)
Infographic Blog Post Template.docxFoundVisual content blueprintREAD (prev session)
Newsjacking Blog Post Template.docxFoundTrending topic blueprintREAD (prev session)
best-damn-web-marketing-cheat-sheet1.pdfPDFMarketing fundamentals referenceFOUND (PDF read failed)
SEJ_RankingFactors2023.pdfPDFGoogle ranking factors researchFOUND (PDF read failed)
2025_Local_SEO_Cheat_Sheet.pdfPDFLocal SEO signals referenceFOUND (PDF read failed)
Bathroom Bidders, LLC -ChatGBT archive.pdf940KBHistorical ChatGPT conversations about BB content strategyFOUND (PDF read failed)
callbrightside.com (live scan)10+ pagesCurrent site structure, archive page state, service pages, schema gapsSCANNED

Gaps Identified

#GapImpactResolution
13 PDFs couldn't be read (pdftoppm not installed)Low: content is reference material, not BSP-specific dataInstall poppler-utils or read on next session
2ChatGPT archive PDF not readableLow: BB conversations already extracted in .md (21,951 lines searched)Historical context already covered
3No Semrush competitor ranking dataMedium: competitive gap analysis is estimated, not verifiedRun Semrush audit when Robert has access
4No ServiceTitan job type dataMedium: can't correlate blog topics to actual job revenue yetPull from ServiceTitan API when integrated
5Contact + Coupons pages returning 500 errorsHigh: broken conversion pages hurt all traffic including blogFix immediately (separate from blog project)
6/learning-center/ vs /blog/ URL decisionMedium: "learning center" is less SEO-standard than "blog"Keep /learning-center/ (established URL equity) but add pillar subfolders
7Oxygen Builder template not yet builtHigh: can't publish posts efficiently without reusable templatePhase 1, Week 1 deliverable
8No author page for Kalen BarkerMedium: E-E-A-T requires author entity with credentialsCreate /about-us/kalen-barker/ author page

Site-Wide Pages That Need Their Own Playbooks

PriorityPageCurrent StateRevenue ImpactEffort
🔴 18 Service PagesThin content, no FAQ, no pricing, no testimonials, no schemaHIGHEST (direct conversion pages)2-3 weeks
🔴 2Contact Page500 ERROR (BROKEN)CRITICAL (conversion endpoint)1 day fix
🔴 3Coupons Page500 ERROR (BROKEN)HIGH ($200 off sewer = lead magnet)1 day fix
🟡 4Reviews PageEmpty (no actual reviews displayed)HIGH (social proof for all traffic)1 week
🟡 5FAQ PageOnly 7 questions, no schema, no accordionMEDIUM (SEO + voice search)3 days
🟡 6About Us + Quality PlumberTwo overlapping pages, no team bios, missing E-E-A-TMEDIUM (trust building)1 week
🟡 7Careers Page3 jobs listed, no JobPosting schemaLOW (hiring, not revenue)2 days
🟢 8Financing PageFunctional (Wisetack + Acorn)LOW (works fine, could add calculator)1 day
🟢 9Service Area HubNo interactive map, no schema, thinMEDIUM (covered in Location Pages playbook)Covered
🟢 10Privacy/TermsBoilerplateNONESkip
🚨 CRITICAL FINDING: Contact page and Coupons page are returning HTTP 500 errors. These are broken RIGHT NOW. Every blog post CTA that links to /contact-us/ is sending visitors to an error page. Fix these BEFORE launching any new content.
📝 Your Notes: Blindspot Check Saved
Notes auto-save to browser
🔬

Apr 24-25 SEO Evidence — Architecture-Level Findings

📊 TL;DR: 5 research dispatches across 11 LLM providers, 389 unique citations, 200 real plumbing SERP URLs scanned. The slug debate (`/blog/` vs `/learning-center/`) is settled — it's noise. The actual 2025-2026 fight is AI Overview. Three independent studies (Seer n=25.1M imps, Ahrefs n=300K, Pew n=68,879) converge: AIO eats −34% to −55% of position-1 click volume for informational queries. AIO citation logic is decoupled from rank — only 16.7% of citations come from top-10 organic. The architecture lever is content STRUCTURE, not URL slug. 389 CITATIONS 7 MODELS 200 SERP URLS

🎯 The Strategic Reframe

Stop optimizing for URL slug. Start optimizing for AI Overview citation.

Every "what should we name /blog/" hour is an hour not spent on the only ranking question that matters in 2026. Three converging studies on the magnitude:

The biggest URL-related effect ever measured (Ahrefs r=−0.107 for URL length) is 3-4 orders of magnitude smaller than the AIO effect. The math is unambiguous.

📚 Evidence Stack — 12 Studies With Samples + Methods

#StudyYearSample / MethodFindingImplication
1Ahrefs SERP correlation (Stox/Guan)Jan 2025 n=1,000,000 US SERPs, top 20 "keywords-in-URL" Spearman 0.034; URL length r=−0.107; refdomains 0.255 URL ≈ noise
2Backlinko first-page audit2024 n=11,800,000 results Avg page-1 URL = 66 chars; URL length correlation "very slight" with no published coefficient. Schema markup correlates ZERO with rank. Schema ≠ rank lever
3John Mueller, BlueskyJan 6 2025 Public statement + 14 prior 2006-2024 statements "URL alone brings minimal additional 'signal' for search engines" 19yr Google line
4Google Search Central — URL docs reissueJun 18 2025 Official re-issue "No change in behavior" — docs reorganization only Stance unchanged
5Semrush Ranking Factors2024 n=300K positions (16,298 kw × 20 × 65 factors) Top factor: text relevance r=0.47. Subfolder naming not in 65 measured. Excluded from model
6Seer Interactive AIO CTR2025 n=3,119 terms / 25.1M impressions Position-1 CTR −54.6% when AIO appears (1.41% → 0.64%) AIO devastating
7Ahrefs AI Overview CTR2025 n=300K keywords Position-1 CTR −34.5% with AIO Confirms Seer
8Pew Research behavioralMar 2025 n=68,879 searches, 900 US adults CTR 8% w/ AIO vs 15% without; zero-click 26% vs 16% Behavioral ≠ vendor
9BrightEdge AIO citation source2025 AIO citation set audit Only 16.7% of AIO citations come from top-10 organic. Bulk from positions 21-100. AIO ≠ rank-derived
10Ahrefs AI Mode citation concentration2025 AIO citation dataset Top 5 domains = 38% of AIO cites; top 20 = 66%. Local service businesses see "less dramatic AIO impact." Local cushion
11Amsive AIO study2025 n=700,000 Avg CTR −15.49% w/ AIO; −19.98% for non-branded informational; −37.04% w/ AIO + Featured Snippet Class our hub serves: −20%
12Google rich-result restrictionsAug-Sep 2023 Google policy update HowTo + FAQPage rich results restricted to authoritative sites only Schema visibility cut

🔍 SERP Audit — 200 Real Plumbing URLs

20 plumbing/HVAC informational queries × top-10 = up to 200 organic URLs scanned via SerpAPI/Perplexity. This is the only definitive industry-norm data in the bundle.

Slug patternCount% of 200Notable domains
/blog/ family (incl. /our-blog/, branded blog) 58 29% Independent service businesses dominate this bucket
Flat root-level (no hub slug) ~32 16% Mid-tier service sites, ranking individual pages directly
YouTube ~32 16% youtube.com
Proprietary branded paths ~64 32% lowes /n/, home depot /c/, nerdwallet /foundations/, consumerreports, modernize
/info-center/ ~6 3% hotwater.com, manufacturer support sites
/learning-center/ 0 0%
/resources/, /guides/, /tips/, /articles/, /insights/ ~8 4% Sparse representation
⚠️ Reframe of the slug data: /blog/ at 29% looks like a winner. But independent service businesses (the ones we'd be matching) dominate that bucket — they almost unanimously use /blog/ or shallow root. The 32% proprietary branded slugs are big-box retailers (Lowes, Home Depot) — not a pattern an independent plumber should mimic. /learning-center/ is genuinely an outlier in the live SERP for this vertical. But migration cost beats marginal upside per Mueller's Jan 2025 explicit warning against URL changes for SEO + zero documented home-services migration case studies (Gap 5).

🏛️ EEAT — Measurable vs Claimed

Gap 2 closure: 24 KB of citations parsed. EEAT signals split into 3 measurable and 7 claimed-but-not-measured. Don't conflate them in the rank narrative.

SignalMeasurable?SourceWhat it actually buys
Person schema with verifiable credentials YES Vendor research (Ahrefs, BrightEdge) + Google QRG Knowledge graph integration, AIO citation likelihood, EEAT entity binding
AggregateRating on review schema YES Google Search Central — explicit eligibility for review rich result Star ratings in SERP (rich result), CTR lift, trust signal
dateModified freshness on articles YES Multiple AIO citation studies — recency correlates with citation AIO citation likelihood, freshness signal in rank
5-gen / family business credentialsClaimedBSP narrative, no measurementConversion + trust narrative on-page (real value), but no rank lift attribution
License / insurance displayClaimedCompliance + trust, not measuredConversion + legal compliance, not a rank lever
Real photos vs stockClaimedBest-practice, not measuredConversion + brand authenticity, not a rank lever
Years-in-business mentionClaimedEEAT framing, no published correlationConversion narrative, EEAT signal stacking
Editorial process / fact-check noticeClaimedBest-practice, no isolated measurementEEAT signal in QRG, not direct rank lift
City/area service signalsClaimedMixed local-SEO dataLocal pack inclusion, not blog-rank lift
Organization + LocalBusiness schema (about page)ClaimedRecommended but not directly correlatedKnowledge panel eligibility, AIO entity, not rank lift
💡 Rule: Deploy the "claimed" signals because they're high-conversion and right for the brand — but in the playbook narrative, attribute their value to conversion + trust, not to rank lift. Only the 3 measurable signals get rank-attribution claims.

🧱 Schema Architecture — Recommended Stack (Gap 4, 70 citations)

Backlinko n=11.8M says schema correlates ZERO with rank. So why deploy any? Three reasons that are NOT rank: (a) rich-result eligibility, (b) AIO citation likelihood, (c) knowledge graph integration. Build each schema for the outcome it actually buys.

Per-page schema stack

Page typeSchemaOutcome boughtConfidence
Homepage LocalBusiness + Plumber subtype + address + geo + AggregateRating Local pack inclusion, snippet stars, AIO local entity HIGH
WebSite + SearchAction Sitelinks search box eligibility MED
BreadcrumbList Breadcrumb rich result, navigation aid HIGH
Service pages (drain cleaning, water heaters, etc.) Service nested in LocalBusiness Service rich snippet, local entity HIGH
BreadcrumbList Path clarity, breadcrumbs HIGH
AggregateRating (if reviews available for that service) SERP stars HIGH
Blog articles (how-to, tips, guides) Article (NOT BlogPosting — Google treats them identically; Article is canonical) AIO citation entity binding, freshness via dateModified MED
HowTo (only if article is genuinely a how-to) Rich result eligibility (restricted post-Aug 2023 to authoritative sites — may not buy us anything until BSP authority builds) CONDITIONAL
FAQPage (only on articles with genuine FAQ section) FAQ accordion in SERP (restricted post-Aug 2023 same as HowTo) + parsing aid for AIO CONDITIONAL
BreadcrumbList Path clarity, breadcrumbs HIGH
About page Organization + nested Person for Kalen + credentials Knowledge panel, AIO entity, EEAT binding HIGH
BreadcrumbList Path clarity HIGH
Location pages (OP, Olathe, etc.) LocalBusiness + Service + BreadcrumbList + city-specific geo Local pack inclusion per city, AIO local entity HIGH
⚠️ HowTo + FAQPage caveat: Google restricted these rich results to "authoritative sites only" in Aug-Sep 2023. Deploying them is still semantically valid (helps AIO parse content) but the rich-result eligibility is uncertain until BSP builds authority. Recommend: deploy them when content genuinely matches the schema, but don't expect SERP visual lift early in the buildout.

🤖 AIO Citation Levers — Content Structure (Gap 3)

BrightEdge: 16.7% of AIO citations from top-10 organic. The other 83.3% comes from positions 21-100 — meaning content STRUCTURE, not rank, determines citation. The measured levers:

┌─────────────────────────────────────────────────────────────┐ │ AIO CITATION OPTIMIZATION (parallel to rank, not derived) │ └────────────────────┬────────────────────────────────────────┘ │ ┌─────────────┼─────────────┬──────────────┐ ▼ ▼ ▼ ▼ STRUCTURE SCHEMA FRESHNESS AUTHORITY │ │ │ │ ┌───┴───┐ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ Definitive H2 Article FAQPage date "Last Person Local opening Q- + (where Modified updated schema cushion in 100w fmt author genuine) on every X days" w/ (Ahrefs: + + only update visible creds "less lists dateMod on-page dramatic") impact"

Specific implementation rules per article

🏟️ Competitive Map — KC Plumber Vertical

⚠️ Data caveat: SEMrush API key in `.env` was empty at dispatch time (length 1 = newline). Verified DR/traffic numbers were not pulled. The competitive read below is from Perplexity + Gemini grounded search — directional only. Action item: rotate SEMrush key for verified competitive intel before any major positioning play.

Top 5 KC plumber competitors — content hub patterns

CompetitorHub URL patternPosture (qualitative)
Anthony Plumbing Heating Cooling/blog/KC market leader; deep blog with city-specific content; strong local SEO
Benjamin Franklin Plumbing KC/plumbing-tips/Franchise — corporate template; less localized
Roto-Rooter (KC franchise)/blog/National brand, generic content; some KC pages
Kevin Ginnings PlumbingFlat / no clear hubSmaller independent; minimal blog presence
Inception Plumbing/blog/Local independent; blog modest but using /blog/
📌 Pattern: 4 of 5 KC competitors use /blog/. None use /learning-center/. BSP's /learning-center/ is genuinely contrarian for this vertical — but the v5 SERP audit + Mueller guidance + zero migration evidence all say: contrarian alone isn't a reason to migrate. Hold what we have.

📜 Migration Evidence — Gap 5 Null Finding

🕳️ Searched: zero documented home-services URL-pattern migration case studies with before/after traffic data exist in the public record (2020-2024).

Wayback Machine archeology + Ahrefs/Semrush case study libraries + SEJ/SEL/Moz blogs + Reddit r/SEO threads — all surfaced nothing usable. This means: any migration recommendation in any direction is operating on analogy from enterprise/SaaS migrations, not measured home-services data.

Implication for BSP: migration risk is real (Mueller warning, link equity decay, 301 chain) and migration upside is unmeasurable. The HOLD recommendation isn't conservative — it's the only evidence-supported call.

✅ Architecture Decision — What This Locks In

Confirmed (HIGH confidence)

Reframed (MEDIUM-HIGH confidence)

Open (requires first-party data)

🔄 What Changes In Existing Playbook Sections

📎 Citations — Headline Sources (full lists in research files)

389 unique URLs across the 5 dispatches. Top 15 here; full citation list in /tmp/seo_research_v5_deep.md + /tmp/seo_research_gaps_closed.md.

#SourceURL
1Ahrefs — SERP correlation Jan 2025ahrefs.com/blog/links-matter-less-but-still-matter
2Backlinko — Google ranking factors n=11.8Mbacklinko.com/google-ranking-factors
3Backlinko — first-page audit + URL lengthbacklinko.com/search-engine-ranking
4SE Roundtable — Mueller URL signalseroundtable.com/google-urls-minimal-additional-signals
5SEL — URL structure docs reissue Jun 2025searchengineland.com/google-updates-its-url-structure-best-practices-457263
6Seer Interactive — AIO CTR Sep 2025 updateseerinteractive.com/insights/aio-impact-on-google-ctr-september-2025-update
7Ahrefs — AIO CTR studyahrefs.com/blog/ai-overviews-reduce-clicks-update
8Ahrefs — AIO citation rateahrefs.com/blog/does-ranking-higher-on-google-mean-youll-get-cited-in-ai-overviews
9BrightEdge — Weekly AI Search Insights (rank overlap)brightedge.com/resources/weekly-ai-search-insights/rank-overlap-after-16-months-of-aio
10Pew Research — search behavioral 2025pewresearch.org/short-reads/2025/03/12/google-ai-overviews
11Amsive — AIO + Featured Snippet studyamsive.com/insights/seo/google-ai-overviews-research
12Google Search Central — structured datadevelopers.google.com/search/docs/appearance/structured-data
13Google Search Central — local-business snippetdevelopers.google.com/search/docs/appearance/structured-data/local-business-snippet
14Semrush — Ranking Factors 2024go.semrush.com/Ranking-Factors
15Advanced Web Ranking — Google CTR Q2 2025advancedwebranking.com/blog/ctr-google-2025-q2

🧪 Methodology — How This Research Was Built

5 dispatches, sequential refinement, intentional non-overlap of query angles to maximize unique citation collection.

DispatchModelsCitationsSERP URLsOutcome
v330 (short-circuited on prior playbook)0Excluded from final synthesis
v441538Initial directional finding (slug = noise, hold /learning-center/)
v57 successful171 unique200Decisive SERP audit + AIO magnitude (Seer −54.6%, BrightEdge 16.7%)
v6 (stalled)0 persisted0Watchdog timeout; reframe to gap-closer
Gap-closer (5 gaps)3 active218 uniqueSchema + EEAT + AIO + competitive + migration null finding

Logged 2026-04-25 via SEO research dispatches v3-v6 + gap analysis closure. Source files on VM: /tmp/seo_research_v4_studies.md, /tmp/seo_research_v5_deep.md (126 KB), /tmp/seo_research_gaps_closed.md (168 KB), 5 per-gap files. Cross-referenced in MH section bsp-apr25-seo-architecture-evidence-locked (queued, pending Robert review of this playbook section).