Rendered at build time from COMPASS_EXTERIORS_MERGE.md in the repo — edit the source
file and rebuild to update this page.
Version 1.8 · 2026-09-05 · Status: Phase 1 shipped, Phase 3 inbound-redirect reversal shipped, roofing-insurance/claims and four-season-decking clusters triaged, all four Open items resolved — remaining Phase 2 triage (~85-post category backlog) is the gate on Phase 3's outbound side.
| Objective | Retire compassexteriors.com entirely and absorb its service lines, content, and traffic into honey-doers.com, with zero net loss of lead capture. Compass Exteriors as a brand fully dissolves — Honey-Doers is the surviving brand, full stop. |
| Nature of work | One-time domain consolidation + content migration + redirect engineering. Not a recurring lever, not an experiment arm. |
| Blocking | Unblocks I10 Item 7 (roofing FAQ), parked in Search_Strategy.md specifically because writing new roofing content ahead of this merge would likely get redone. |
| Progress | Site audited (2026-08-21) — live source at ../ce-com (own Astro repo, same stack as honey-doers.com): 9 service pages, 88 blog posts (Dec 2023–Feb 2026), no city pages. Presented to the owner 2026-08-26, not decided that day. Decided 2026-09-04 (business priority, not just a search-strategy call): all three Phase 0 decisions resolved as full consolidation — NAP → Lakeville, GBP → merge into the Lakeville profile, brand → dissolves entirely, no "formerly Compass Exteriors" carryover anywhere. Same session, a real Ahrefs pull replaced the 2026-08-21 manual backlink scan — see Backlink audit finding below. No code execution yet. |
| Next action | Phase 1 shipped 2026-09-04: /services/roofing/, /services/siding-windows/, and /services/decks-exteriors/ are all live in src/data/services.ts, each with a supporting blog-post refresh. Phase 3's inbound half also shipped the same day: /our-services/roofing-and-exterior/ no longer forwards to Compass, now points at /services/roofing/. Same day: the 15-post roofing-insurance/claims cluster (2 Compass + 13 HD) fully triaged — 7 duplicate HD posts retired, the 2 Compass posts' unique content ported into the HD survivor ahead of their own retirement; project-gallery CTA/carousel hidden on all 3 exterior pages until real case studies exist (ServiceData.hasProjects); placehold.co placeholders on all 3 pages replaced with real CompanyCam job photos, then the Roofing and Siding & Windows images each swapped again for a dedicated hero shot where that trade is the clear subject. 2026-09-05: the four-season-decking soft overlap also resolved — HD's how-to-build-a-deck-to-withstand-all-four-seasons refreshed as survivor with Compass's material-comparison content merged in, Compass's post marked to retire into it. Remaining: Phase 2's ~85-post category backlog (see COMPASS_REDIRECT_MAP.md for sequencing — now on a 3×/week cadence with one exterior slot) and the rest of Phase 3 (outbound Compass→HD redirect map, built once Phase 2 resolves exact blog targets). |
This file is self-contained. Ledger entry: I12 in Search_Strategy.md.
Honey-Doers runs two websites for one business. compassexteriors.com (Compass Exteriors) covers
roofing, siding, windows, decks, gutters, insulation, doors, and storm damage — trades honey-doers.com
had no service pages for at all until Phase 1 shipped 2026-09-04. Before that,
/our-services/roofing-and-exterior/ on honey-doers.com forwarded to Compass (public/_redirects
lines 83 and 341, plus the matching Pages Functions catch-alls in functions/our-services/[[catchall]].ts
and functions/roofing-and-exterior.ts) — reversed the same day Phase 1 shipped, now pointing at
/services/roofing/ instead.
Audited 2026-08-21 against the live source repo (../ce-com, relative to this repo — same Astro/
Markdown stack as honey-doers.com, so migration is closer to a merge than a rebuild):
| Compass Exteriors | honey-doers.com | |
|---|---|---|
| Service pages | 9 (roofing, siding, windows, decks, gutters, insulation, doors, storm-damage, free-inspection) | 4 (kitchen, bath, basement, whole-home) |
| City×service pages | 0 | 104 (I11) |
| Blog posts | 88 (src/content/blog/*.md, Dec 2023 – Feb 2026, steady ~2/week cadence) |
232 |
| Address | Elko/New Market, MN | Lakeville, MN |
| Phone | (952) 457-0894 | (952) 985-5383 |
| License # | BC857474 | — |
| FAQ schema, refresh cadence, GTM lead tracking | None found | I5t, I6, I1 |
Blog volume changes the shape of this project. 88 posts is closer to honey-doers.com's own
232-post archive than the earlier 3-post estimate (a WebFetch summary of the live /blog page badly
undercounted — corrected here from the source repo) — dupe-checking, quality-triaging, and migrating
88 posts against TOPIC_MAP.md is Phase 2's real weight, not a side task. Some fraction of these are
plausibly thin/dated (e.g., 2024 seasonal-tips posts) and better retired than migrated; that triage
needs its own pass, not a blanket port.
This is a split NAP (different address, different phone, on top of a different domain) — a known source of local-pack confusion — and a second, untracked lead-capture surface: Compass's contact form isn't in the lead-log instrument at all, so B1–B3 (contract value, close rate, margin by service) have a blind spot for exteriors work regardless of how the rest of that program resolves.
Compass's service-page footprint is small (9 pages, no city pages) but its content archive is not — 88 blog posts is real inventory, actively maintained on a near-weekly cadence through at least Feb 2026. Folding both into a system that already runs 104 remediated city pages, live FAQPage schema, a decay-triggered refresh queue, and (once I1 ships) GTM lead tracking is still cheaper than building that machinery for Compass standalone — but the blog side means this is a genuine content-migration project (triage, dedupe, refresh-to-standard for whatever's kept), not a light lift. The honey-doers.com system is the one getting ongoing investment (I6, I11, E-series); every session spent improving or adding to Compass in place — including its own blog — is investment in a site that's going away.
Absorb into the existing structure, don't bolt on a subdomain. A subdomain or a lightly-styled
subdirectory would preserve Compass's page structure (9 thin, single-topic pages) — the opposite of
what I11 spent a phase fixing on the city-page side. Exterior services should become first-class
entries in src/data/services.ts, in the same one-deep-page-per-service pattern as kitchen/bath/
basement/whole-home, not a re-import of Compass's thinner structure.
Three decisions needed the business owner, not just engineering judgment, before Phase 1 starts — all three resolved 2026-09-04:
Written 2026-09-04, alongside the redirect map (COMPASS_REDIRECT_MAP.md).
The short version: mostly a merge into existing machinery, not a parallel system — but "adding
services" is real added surface area, concentrated in three places below, not evenly distributed.
1. Service-page structure — decided, see the redirect map. Roofing, Siding & Windows, and
Decks & Exteriors become first-class pages in src/data/services.ts, same one-deep-page-per-service
pattern as kitchen/bath/basement/whole-home — not Compass's thinner 9-page structure. FAQ schema
(the I5t pattern, 75dfbc9) and the responsive-image standard apply at launch, not retrofitted later —
these three pages should ship already meeting the bar every other service page meets, not join the
site below standard because the content already existed elsewhere.
2. City depth — do NOT build a city×service matrix for exteriors. I11 already collapsed the
city×service model to two levels (location hub only, per
LOCAL_PAGE_REMEDIATION.md §Level 2 collapse) —
building a third, brand-new trade into the old three-level pattern would be re-adding the exact
structure I11 spent a phase retiring. Exteriors should surface inside the existing location hub
pages (a section or service-card entry, same shape kitchen/bath/basement/whole-home already get) once
that hub work resumes, not as standalone /locations/<city>/roofing/ pages. This is already
Phase 4 in the Action Plan below, sequenced
after E1's 2026-10-14 read — no change, just reaffirming it now that the merge itself is unblocked.
3. Content migration is a third concurrent content stream — budget it deliberately. Two content programs already run on the standing Tue/Thu cadence: I6's legacy-refresh queue and I15's Ahrefs-gated basement push (currently paused on new moves until the 2026-09-23 read). Compass's 88-post triage adds a third. Don't let it silently eat I15's or I6's slots — same warning already on record for I6 vs. E1 in the Next section below. Practically: budget migrated/rebuilt exterior posts as their own allocation within the cadence (e.g., one exterior slot per week) once Phase 2 triage starts, rather than letting the largest backlog win by default.
4. The roofing-insurance/claims cluster is the single highest-value target — treat it as a real
I15-style content-gap project, not a copy-merge. The redirect map's dupe-check found HD already has
~11 loosely-related roofing/insurance posts and Compass has 2 more, but neither is anchored by an
actual roofing service page today (HD's /our-services/roofing-and-exterior/ currently just forwards
to Compass; Compass's own roofing content is dated and generic). This is a genuine content gap, not a
duplication problem to solve by picking a survivor — worth an Ahrefs pull (site-explorer-organic- keywords + keywords-explorer-overview against the merged keyword set, same method as I15's basement
work) once Phase 1's /services/roofing/ page exists, to find the actual highest-value angle rather
than defaulting to "keep the better of the two old posts." Window-installation (2 Compass + 1 HD post)
and four-season-deck-materials (1 each) were smaller versions of the same call, lower priority —
both resolved 2026-09-04 and 2026-09-05 respectively, see Version history.
5. New content created for the merged services (not migrated) goes through the I15 gate, same as
any other new post — Ahrefs-validated demand/difficulty before drafting, per Search_Strategy.md's
I15 entry. The migration itself doesn't bypass this discipline just because it's driven by a business
deadline rather than a content-strategy choice.
6. E1 collision guard. None of the roofing/siding/decks work touches E1-treated pages, cities, or links (basement cluster only) — no special handling needed, flagged here only so a future session doesn't have to re-derive that it's clear.
7. Redirect implementation — Pages Functions, not public/_redirects. At ~100-URL scale, and
given this repo's own documented _redirects reliability findings (REDIRECTS.md), implement the
map in COMPASS_REDIRECT_MAP.md as Cloudflare Pages Functions at the
Compass domain/hosting level, with scripts/functions-redirects.json updated to match and
check-redirects.mjs re-run post-launch — same pattern the rest of this repo already uses.
compassexteriors.comsrc/data/services.ts. Recommend consolidating Compass's 9 thin pages into
a smaller number of full-depth pages mirroring the existing pattern — plausibly Roofing,
Siding & Windows, Decks & Exteriors (gutters/insulation/doors/storm-damage folded in as
sections or FAQ entries rather than standalone pages) — final split is a content-planning call, not
a 1:1 port of Compass's page count.new-blog-post skill's standards, applied to service pages).../ce-com/src/content/blog/*.md before migrating any of them. This is
the largest single piece of work in the whole merge, not a side task. Suggested pass:TOPIC_MAP.md — several titles look likely to overlap existing
honey-doers.com content (insulation/R-values vs. basement-moisture FAQ content, storm-damage/
insurance posts, energy-savings/winterizing pieces). Where overlap exists, decide keep-one /
merge / retire per post, same discipline as the I10 consolidation list — don't default to
keeping both.public/_redirects lines 83 & 341, and the two Pages
Functions (functions/our-services/[[catchall]].ts, functions/roofing-and-exterior.ts) that sent
honey-doers.com traffic to Compass now point at /services/roofing/ instead.
scripts/functions-redirects.json updated to match; live verification via check-redirects.mjs
still pending post-deploy./blog/ as a fallback per the existing roofing-services/* pattern)
— a 404 loses the traffic Phase 0's backlink audit was trying to preserve. Follow the Pages
Functions pattern established elsewhere in this repo given the documented unreliability of plain
_redirects rules — same caveat applies wherever this redirect layer ends up living.Method: Ahrefs MCP access (Site Explorer) pulled directly against compassexteriors.com,
mode: subdomains, 2026-09-04. Supersedes the 2026-08-21 manual scan below — that scan's method
(web-search + direct-fetch spot-checks) badly undercounted, the same failure pattern as this doc's
own v1.0→v1.1 blog-post-count correction.
Headline numbers:
| Metric | Compass Exteriors | Honey-Doers (E5 baseline, 2026-08-22) |
|---|---|---|
| Domain Rating | 10 | 31 |
| Live referring domains | 475 (735 all-time) | 444 (1.3K all-time) |
| Live backlinks | 843 (1,873 all-time) | 1.5K (7K all-time) |
| Organic keywords ranking | 13 | — |
| Organic traffic (est.) | 8 visits/mo | — |
| Organic traffic value | ~$27/mo (2,736¢) | — |
The referring-domain count is deceptive — mostly nofollow syndication noise, not editorial links.
The top 30 referring domains by DR include real mastheads (yahoo.com DR94, marthastewart.com DR88,
southernliving.com DR86, thespruce.com DR90, apartmenttherapy.com DR87, bbb.org DR93,
aol.com/aol.co.uk), but nearly all of them show dofollow_links: 0 and cluster tightly around
first-seen dates of 2025-08-20 through 2025-08-22 — the signature of a syndicated PR/content-distribution
placement (e.g. a HARO-style pickup or a wire release), not organic editorial linking. Real dofollow
links exist but are modest: livingetc.com (DR78, 11 dofollow), fixr.com (DR78, 8), homebuilding.co.uk
(DR75, 7), connectively.us (DR80, 4), apartmenttherapy.com/homesandgardens.com/gobankingrates.com/
housedigest.com (DR75–87, 2 each). A handful of the high-DR-looking domains are Ahrefs-flagged spam
(pages.dev, za.com, itxoft.com, rankyour.website, factmags.com) and contribute nothing.
Organic footprint is negligible. 13 total ranking keywords, nearly all zero-to-low volume
(top terms: "how to repair a broken window" 900/mo at position 26, "deck skirting ideas" 600/mo at
position 23 — neither converting real traffic). Top page (what-happens-if-my-insurance-estimate-is- different-from-my-contractor) draws 4 estimated visits/mo. The domain's own branded query ("compass
exteriors," 10/mo) ranks position 3. There is no meaningful non-brand organic presence to preserve.
What was previously found (BBB profile, Owens Corning contractor-profile page, bidroom.io
directory listing) is confirmed as real but immaterial in the fuller picture — those are 3 of 475
referring domains, and not among the ones actually carrying dofollow link equity.
Read for Phase 0's purpose (sizing the stakes): the DR-10 site brings a much larger raw referring-domain count than the manual scan suggested, but a real Ahrefs pull confirms — with harder numbers, not just directionally — that link consolidation is not a meaningful reason to prioritize I12. The organic-traffic case is even weaker than the link case: 8 visits/mo and $27/mo in traffic value is not an asset worth engineering around. The case for I12 continues to rest entirely on the NAP/lead-funnel/content-management reasons in Outcomes — reinforced, not weakened, since there's no meaningful authority or traffic to protect through a careful redirect, which lowers the risk of the migration rather than raising the stakes.
Method: No Ahrefs/Moz/Semrush API access and no GSC credentials for the compassexteriors.com
property (this repo's fetch-analytics-data.yml workflow is scoped to honey-doers.com only), so E5's
two prescribed methods (GSC links report, free-tier checker) weren't directly available. Substituted a
manual web-search scan for external pages mentioning or linking to compassexteriors.com, with
spot-verification by fetching the candidate pages directly.
What was found, confirmed by direct fetch:
| Referring domain | Type | Confirmed link to compassexteriors.com? |
|---|---|---|
bbb.org |
BBB business profile | Yes — fetched directly. A+ rating, but not BBB-accredited (the site's own "BBB A+ Accredited" claim conflates the two — worth a citation-accuracy fix regardless of merge timing) |
owenscorning.com |
Manufacturer contractor-profile page (245368) | Plausible — profile exists under "Compass Exteriors LLC," standard OC profile pages link out, but the fetched excerpt didn't render the outbound link to confirm |
bidroom.io |
General-contractor directory listing | Found via search, not independently verified — looks like a low-authority auto-generated directory |
What was searched for and not found: no Minnesota-specific Compass Exteriors listing surfaced on Angi, HomeAdvisor, Houzz, Yelp, or Nextdoor. Site claims GAF/CertainTeed/Velux/IKO partnerships and "Google Guaranteed" status — not backlinks, relevant to Phase 4 citation cleanup only.
One data-accuracy flag, still relevant to the NAP-consolidation work: BBB lists the LLC's start
date as 2023-05-05 while the site markets "20+ years" of experience (presumably principal
experience predating the LLC — worth confirming before folding into honey-doers.com's own "founded
1996" framing in siteConfig.ts). Also: services.ts-adjacent audit notes recorded license
BC857474; BBB and search results consistently show BC807474 — one of these two is a
transcription error and needs verifying against the MN DLI license lookup before it's used in any
migrated citation.
Conceptual only — no dated source exists yet for any of these, per the house rule against ranking claims without one. This is what the work is for, to size whether it's worth doing, not a result.
lead_form_success attribution as every other service.All four resolved by the owner 2026-09-05 — see v1.7 for detail:
BC857474 is correct, use it in any migrated citation.siteConfig.ts. Don't carry a separate exteriors-specific "20+ years" line — the
principal's experience is continuous with Honey-Doers' own history, so use the one existing claim
site-wide rather than a second one for exteriors content.Four-season-decking soft overlap resolved (item 4's second, lower-priority half). HD's
how-to-build-a-deck-to-withstand-all-four-seasons refreshed as the survivor with Compass's
richer 5-material comparison table merged in; Compass's counterpart marked to retire into it —
per-post disposition in COMPASS_REDIRECT_MAP.md. This was the last individually-flagged
overlap cluster; all remaining Phase 2 work is the undifferentiated ~85-post category
backlog (roofing/gutters/insulation/storm-insurance → /services/roofing/,
windows/siding/doors → /services/siding-windows/, decks-patios/general-exterior/garage →
/services/decks-exteriors/), worked in category rotation per COMPASS_REDIRECT_MAP.md's
sequencing, 3×/week cadence with one exterior slot. No more individual cluster triage remains
to be discovered — the next session should go straight to that backlog.
Owner resolved all four remaining Open items: license number is BC857474 (not BC807474); no fixed
domain-retirement date — tied to Phase 5/6 completion instead; "BBB A+ Accredited" is an accurate claim
to keep, not a citation-accuracy fix; the "20+ years" experience claim folds into honey-doers.com's
existing "founded 1996" framing in siteConfig.ts rather than standing as its own exteriors-specific
line. No code changes yet — these resolve what migrated content should say, applied when Phase 2
migration and any citation updates actually happen.
Phase 3's inbound half shipped: /our-services/roofing-and-exterior/'s Compass forward reversed to
/services/roofing/ (public/_redirects both lines, functions/roofing-and-exterior.ts,
functions/our-services/[[catchall]].ts, scripts/functions-redirects.json). Same day, the 15-post
roofing-insurance/claims cluster (2 Compass + 13 HD) fully triaged — see
COMPASS_REDIRECT_MAP.md's roofing-cluster table for the per-post disposition; the 2 Compass posts'
unique content was ported into storm-damaged-roof-3-things-you-should-do-next before their own
retirement, which is a Phase 3/Compass-domain action, not yet live. Also: project-gallery CTA and
carousel hidden on all 3 new exterior service pages (ServiceData.hasProjects: false,
ServicePageLayout.astro) — none of the three categories have tagged entries in src/data/projects.ts
yet, and the carousel was silently falling back to unrelated kitchen/bath projects instead of showing
nothing. Image polish on the same 3 pages: placehold.co placeholders swapped for real CompanyCam job
photos (Shakopee roof/siding job, a fall-2022 deck build), then Roofing and Siding & Windows each
swapped again for a dedicated hero shot where that trade is the clear subject (the original photo
stayed in use on the other page). Blog cadence moving to 3×/week (one exterior slot) to start working
the Phase 2 backlog — see COMPASS_REDIRECT_MAP.md's version history for the sequencing plan (resolve
four-season-deck overlap first, then rotate roofing/siding-windows/decks-exteriors, quality-filtering
before scheduling rather than porting the category lists in order). Outbound Compass→HD redirect map
still unbuilt.
Phase 1 shipped: all 3 service pages (roofing, siding-windows, decks-exteriors) built in
src/data/services.ts and wired into nav/blog categories, each paired with one supporting
blog-post refresh (storm-damaged-roof-3-things-you-should-do-next,
how-to-plan-a-window-installation-for-your-home, best-deck-designs-for-your-home) chosen via
the primary-query gate against TOPIC_MAP.md and logged in CONTENT_VALUE_REGISTER.md. Targeting
for each page grounded in Ahrefs keywords-explorer-overview pulls (roofing: storm-damage/insurance
terms; siding-windows: "window replacement" at 68K vol/mo, difficulty 3; decks-exteriors: "how much
does it cost to build a deck" at 2K vol, difficulty 22). COMPASS_REDIRECT_MAP.md updated to mark
all 3 slugs live. Deliberately did not touch: /our-services/roofing-and-exterior/'s redirect
target (Phase 3 concern), the remaining 87-post Phase 2 blog triage, or the two flagged HD-overlap
clusters beyond the one post each that anchored the new pages.
Added COMPASS_REDIRECT_MAP.md: top-level pages and all 9 service pages
mapped (3-page consolidation — Roofing, Siding & Windows, Decks & Exteriors — decided), all 88 blog
posts categorized by target page, and a real dupe-check against HD's own 235-post archive (not just
Compass-internal) surfaced two genuine overlap clusters (roofing-insurance/claims, window-installation)
that Phase 2 needs to resolve first. Added a Content & technical SEO strategy section: no city×
service matrix for exteriors (aligns with I11's already-collapsed 2-level model), migration is a third
concurrent content stream needing deliberate cadence budgeting alongside I6/I15, the roofing-insurance
cluster is a real content-gap opportunity worth an Ahrefs pull rather than a copy-merge, and new
exterior content goes through the same I15 Ahrefs-gate as anything else.
All three Phase 0 decisions resolved by the business owner: full dissolution. NAP → Lakeville, GBP → merge into Lakeville profile, brand → Compass Exteriors disappears entirely, Honey-Doers positioned as the superior surviving brand. Unblocks Phase 1. Same session, the 2026-08-21 manual backlink scan was superseded with a real Ahrefs pull: DR 10 (vs. Honey-Doers' DR 31), 475 live referring domains but overwhelmingly nofollow syndication placements rather than editorial links, and only 8 organic visits/mo (~$27/mo traffic value) — confirms with hard numbers that link/traffic consolidation is not a meaningful reason to prioritize this initiative; the NAP/lead-funnel/content-management case stands on its own. Downgraded "Open items" — removed the now-resolved Phase 0 decisions, added two citation- accuracy flags (BBB-accreditation wording, "20+ years" vs. LLC start date) surfaced by the original audit but not yet actioned.
Phase 0 plan and the three open decisions (NAP, GBP, brand persistence) presented to the owner at
the 2026-08-26 meeting (see MEETING_NOTES.md). None decided that day — still open, still blocking
Phase 1.
Phase 0 backlink audit run (manual citation scan — no Ahrefs/Moz/Semrush API access, no GSC
credentials for the Compass property). Finding: modest citation footprint (BBB, Owens Corning
contractor profile, one low-authority directory), no meaningful link-equity asset found. Downgraded
"Consolidated authority" in Outcomes from a leading justification to a minor one; flagged a license
number discrepancy (BC857474 vs. BC807474) and a BBB-accreditation-claim inaccuracy on the live
site as side findings, unrelated to the merge decision itself.
Corrected blog-post count from 3 to 88, after the user pointed to the live source repo (../ce-com)
rather than relying on a WebFetch summary of the rendered /blog page, which undercounted badly.
Content migration (Phase 2) and the redirect map (Phase 3) rescoped accordingly — this is now the
largest piece of the merge, not a minor step. Superseded figure: "3 blog posts" throughout v1.0.
Initial scoping. Site audited via WebFetch against the live compassexteriors.com site (9 services, 3 posts — later found incorrect, see v1.1 — no city pages, separate NAP).