mosaic roofing
Project Live
Built for Kyle · Updated 4/27/2026 · ✓ LAUNCHED

LAUNCHED · mosaicroofingcompany.com is live.

Kyle, while you slept (overnight 4/30) I knocked out the entire remaining punch list. Your full blog body from the email you sent is published verbatim. Hailstorm landing page Sections 2 + 3 now use your blog content (no more "coming soon" placeholders). Your Better Call Harry CBS46 segment upgraded from screenshot → embedded video player (the actual 58-sec MOV file from your Google Drive share, compressed for web). Google Search Console set up under my account — sitemap submitted (38 URLs accepted), 4 priority pages submitted to the indexing queue. Contact form is wired via Web3Forms — leads route directly to your kyle@ inbox. SEMrush audit redirect issues fixed — added 7 new 301s for legacy /roofing/* WordPress URLs. Cloudflare AI bot block disabled (Gemini/ChatGPT/Claude all unblocked — your Search Atlas Gemini visibility should climb on next refresh). Site is officially 100% on my end. Search Atlas: 949/1000. 37 pages, 116 redirects, real photos, real video, real blog. Welcome.

Visit mosaicroofingcompany.com
paid in full · ✓ LAUNCHED
Build Progress
100%
Pages Live
37 / 37
Payment
Paid in Full
Status
Launched ✓

Build Progress

Where we're at · updated live

6 of 6 done · LAUNCHED ✓ live on mosaicroofingcompany.com
Scope at a Glance
Everything in one place
Base Build
$497
Active · $200 deposit + $302 balance received · ✓ paid in full
14 pages 10 services 18 city pages + Roof Coatings 6 cities anchored 2-day build under 2.5s load 8-type schema stack 301 redirects Atlanta News First page 3 design concepts Competitor teardown
Discovery Call + Blueprint Alignment Called 4/18 — locked pricing ($497 total, 50/50 split), captured your ranking keywords (metal + commercial) and the September LSA collapse. Followed by your detailed email blueprint: 7 services, 6 cities, full SEO stack — all mapped into the build.
✓ Completed · 4/18
Competitor Teardown — colonyroofers.com Full audit delivered: their keyword density, service-page structure, social proof gaps, and two lanes they left open (TPO + solar coverage: near-zero). Read it in the Teardown tab.
✓ Completed · 4/18
$502 Total — paid in full $200 deposit received 4/23 + $302 balance received 4/25. Both via PayPal. Build is fully funded — thanks Kyle.
✓ Received · 4/23
3 Design Concepts — Concept C locked You picked Concept C (Review-Anchored). Homepage v1 is live with your lead-gen spec — storm damage hero, urgency section, insurance claim flow, all 6 service tiles including Roof Coatings.
✓ Locked · 4/23 · Concept C
Full Site Build — all 37 pages live Home, 10 service pages (incl. Roof Coatings, Metal Roofing, Spanish Tile Roofing), 18 dedicated city service pages (Atlanta, Buckhead, Sandy Springs, Dunwoody, Brookhaven, Roswell, Alpharetta, Johns Creek, Chamblee, Marietta, Kennesaw, Smyrna, Mableton, Decatur, Norcross, Lawrenceville, Woodstock, Peachtree City), About, Contact, Reviews (21 of your real Google quotes), Projects, News, Service Areas hub, Atlanta News First, June 2025 hailstorm landing + blog, 404. Full schema stack, sitemap with 37 URLs, 109 redirects all wired.
✓ Live · 4/25 · expanded 4/28 (10 services + 18 cities) · all 37 pages
Launched on mosaicroofingcompany.com ✓ Domain cutover complete. Cloudflare DNS is live, SSL is green via Google Trust Services, all 109 redirects (87 from your old WordPress + 22 defensive) are working. The old WordPress site is fully retired. Email through Google Workspace is untouched and still working. Search Console sitemap submitted so Google can start re-crawling immediately. Mosaic Roofing is officially live on the new build.
✓ Launched · 4/27

✓ Domain cutover — done

mosaicroofingcompany.com is live on the new build · 4/27/2026

DNS moved to Cloudflare, both apex (mosaicroofingcompany.com) and www are active, SSL provisioned via Google Trust Services. The old WordPress site is retired. All 109 redirects working — Google's existing rankings carry over cleanly. Email through Google Workspace was never touched and is still working normally. The cutover took ~30 min end-to-end. Welcome to the new web presence.

✓ Overnight 4/30 finish

10 wins shipped while you slept · everything in your audit + email closed out

✓ Your full blog body — published verbatim live

The 1,200-word draft you sent in the 4/28 6:42 PM email ("Copy and paste everything below this line and email it to your developer") is now live at /news/june-2025-atlanta-hailstorm-insurance-claim-deadline/. Light copyedit only. All 7 H2 sections preserved (What Happened · Why Hail Damage Is Easy to Miss · Insurance Deadline · What You're Responsible For · Mosaic's 3-step Process · Why Atlanta Chooses Mosaic · Areas Currently Inspecting). Internal links woven per your developer notes — to /storm-damage-repair/, /hail-damage-repair/, /insurance-claims-assistance/, /commercial-roofing/, and all 18 city pages.

✓ Hailstorm landing page Sections 2 + 3 — filled live

The two "Note from Kyle: coming next" placeholders on /june-2025-hailstorm-atlanta/ are gone. Section 2 ("What Happened") + Section 3 ("Insurance Deadline") now use the corresponding sections from your blog content verbatim. Defaulted to your words — didn't fabricate any storm specifics that would have been Mosaic-specific to write.

✓ Better Call Harry segment — embedded video (not just screenshot) live

Your CBS46 segment was sitting in my junk folder as a Google Drive share since 4/23 — a 141 MB MOV. I downloaded it, compressed to a web-ready 14 MB MP4 with H.264 + AAC + faststart, generated a poster frame, and replaced the screenshot on /atlanta-news-first/. Click play and the actual 58-second segment runs inline on every device.

✓ Google Search Console — set up + sitemap submitted live

Property at search.google.com/search-console is verified under my Google account via DNS TXT (instant verification because we own Cloudflare DNS). Sitemap.xml submitted with all 38 URLs accepted. 4 priority pages submitted to the indexing queue: homepage, hailstorm landing, blog post, and the Better Call Harry page. Now I have ongoing visibility into your Google Search performance — any indexing issues that come up I can spot and fix without you having to send me anything.

✓ Contact form — wired up via Web3Forms live

You mentioned the form didn't work when you tested booking an appointment on the call. Now wired with a Web3Forms backend (account email: kane@dollarmademedia.com, delivery: info@mosaicroofingcompany.com per your 4/30 update). Both the homepage form AND the hailstorm landing page form route to your info@ inbox. Submit one whenever to test — should hit your inbox within 10 seconds.

✓ SEMrush audit — 7 new redirects added (116 total now) live

Pulled your audit from your SEMrush team workspace. Zero redirect chain/loop issues, zero sitemap issues, Health Score 86. Found 7 legacy /roofing/* URLs that something (your GBP, old backlinks) is still pointing at — added 301 redirects for each to the closest live equivalent. Examples: /roofing/emergency-roofing-services/ → /storm-damage-repair/, /roofing/metal-roofing/ → /metal-roofing/, /roofing/residential-tile-roofing/ → /spanish-tile-roofing/. Re-run your audit tomorrow — those 7 errors should drop off.

✓ Lawson Herron CompanyCam photos — live live (4/29)

The 3 photos you shared (damage close-ups with pink chalk + drone shot of the completed roof) are featured in two places: hailstorm Section 4 ("Real Mosaic job · Sept 2025 → Feb 2026") + Projects page Featured Project hero card.

✓ Gemini AI visibility — unblocked live (4/30)

Your Search Atlas dashboard showed 0 Gemini mentions while ChatGPT/AI Overview/AI Mode all showed 4. Cause: Cloudflare's "Managed robots.txt" feature was silently auto-injecting Disallow rules for Google-Extended (Gemini's crawler), GPTBot, ClaudeBot, and 6 others. Disabled. robots.txt now serves clean. Expect Gemini visibility to climb on your next refresh.

✓ Orphan-page links — fixed live

Google Search Console flagged that some time-sensitive pages were orphaned (no internal links to them). Added 2 prominent links from the homepage to /june-2025-hailstorm-atlanta/ — one in the top dismissable banner ("June 2025 Hailstorm Victims" is now clickable), one in the urgency section ("Read the full June 2025 hailstorm deadline explainer"). The hailstorm page is now linked from the highest-authority page on the site.

✓ Workflow saved — reusable for future + retrofit on existing clients DMM internal

Everything we built for you is now portable. The DMM canonical client-launch workflow (cutover → GSC self-setup → Web3Forms → AI bot unblock → SEMrush audit cleanup → real-job photo proof → 18-city SEO pattern) is documented and indexed for every future Dollar Made Media client. Your build sets the standard for what we deliver going forward.

✓ 4/28 call + audit feedback — implemented

5 of your audit's 🔴 action items now live · Search Atlas score: 949/1000

✓ 12 individual city service pages — built (audit's #1 priority) live

Per your audit's "highest SEO priority this week" — all 12 cities now have their own dedicated landing pages with unique copy, neighborhood callouts, dominant roof issues by area, and city-specific service framing. Live now: Sandy Springs · Dunwoody · Brookhaven · Buckhead · Kennesaw · Smyrna · Johns Creek · Chamblee · Norcross · Lawrenceville · Peachtree City · Woodstock. Total now 18 city pages. Service Areas hub rebuilt to display all 18 with proper grid.

✓ Metal Roofing service page — built live

Now at mosaicroofingcompany.com/metal-roofing/. Standing seam, exposed fastener, stone-coated steel — full system breakdown, pricing per sq ft, insurance discount eligibility, FAQ, schema, related pages. Old redirect to /residential-roofing/ removed.

✓ Spanish Tile Roofing service page — built live

Now at mosaicroofingcompany.com/spanish-tile-roofing/. Clay vs concrete tile, structural review, historic-district HOA approvals, pricing, repair-vs-replacement FAQ, full schema. Old redirect removed.

✓ GAF Warranty Chart — click-to-expand live

The "big huge warranty thing in the middle of the homepage" you flagged on the call — fixed. It's now a clean clickable card on the homepage that expands to show the full warranty chart on click. (If you forward me the GAF bulletin you mentioned, I'll align with their official recommended embed pattern.)

✓ "See all reviews on Google" link — fixed live

The broken # link on your reviews section is now a working Google search URL pointing to your business knowledge panel. Send me your real GBP review-share URL (looks like g.page/r/Cxxx/review) and I'll swap to the direct one — that takes users straight to your "Write a review" prompt instead of the search results.

Note on your audit's "GAF widgets missing" item

they ARE installed — Search Atlas just can't see lazy-loaded iframes

Your audit doc flagged "Add GAF Widgets — still not on the site yet." Heads up: they ARE installed — 4 widgets across 7 placements:

They're loading="lazy" iframes from widgets.gaf.com. Search Atlas (and SEMrush) crawlers don't trigger lazy-loading — they only see the iframe HTML element, not the content rendered inside it. Real visitors see them load fine when scrolling. Open the homepage on your phone, scroll past the urgency banner — the GAF Warranty card now expands on click; below the services grid the GAF "Parts of a Roof" widget renders inline. Both visible.

Just left for you (when you have a sec)

3 small items only Kyle can provide · nothing time-sensitive

1. Official GAF Certified Contractor badge file PNG or SVG

I added GAF Certified mentions across your trust bar, hero, Why Mosaic section, Storm Damage card, Insurance Claims section, and as a full callout on 5 service pages — but I'm using a placeholder badge style. Send me the official GAF logo file and I'll swap it in everywhere.

text or email the file
2. Your real Google Business Profile review-share URL looks like g.page/r/...

The "See all reviews on Google" link on the homepage currently uses a Google search fallback that lands on your business knowledge panel. If you generate the direct GBP review URL from your Google Business Profile dashboard (it looks like g.page/r/Cxyz.../review), I'll swap it in — that takes users straight to your "Write a review" prompt instead of a search.

in your GBP dashboard, "Get more reviews" → copy share link
3. The GAF "fix-it" bulletin (April 30 deadline) forward the screenshot

You mentioned GAF sent you instructions about fixing the widget code. I implemented an interim click-to-expand fix on the homepage already (live now). If GAF's bulletin says a specific embed pattern, forward the screenshot and I'll align with their official recipe.

text the screenshot
✓ Mosaic logo file (300x300 white-on-blue) request submitted

You shared this via Google Drive on 4/23 but it sat in my junk folder for a week. I requested access to your Drive share last night since the file is restricted to a specific email address Apple-hosts (kane@dollarmademedia.com is iCloud-Mail-Domain, not Google). Easiest path: re-share to kanedollar95@gmail.com with link-based access ("Anyone with the link") and I'll integrate the official logo automatically when it lands.

Everything else you sent — received + integrated

full historical record of items received from you

✓ GA license number — confirmed on call received

GBL-0523-21153 — confirmed correct on the 4/28 call. Already live in trust bar + footer.

✓ Hailstorm landing page Sections 2 + 3 — live with your copy received

Both placeholder "Note from Kyle" sections are gone. Section 2 ("What Happened") + Section 3 ("Insurance Deadline") use your blog content directly. If you want to add Mosaic-specific neighborhood-by-neighborhood damage detail or zip-code data later, send it whenever.

✓ Full blog post body — published from your email received

Live at /news/june-2025-atlanta-hailstorm-insurance-claim-deadline/ — your 1,200-word article verbatim with all 7 H2 sections + internal links per your developer notes.

✓ Before/after hail damage photos — integrated from your CompanyCam gallery received 4/29

You shared the CompanyCam gallery 4/29 (Lawson Herron · 1000 Martin Ridge Rd, Roswell). I pulled the 3 photos (damage close-ups with pink chalk + drone shot of the completed roof) and built two new sections: (a) hailstorm landing page Section 4 — "Real Mosaic job · Sept 2025 → Feb 2026" block with all 3 photos + captions + the insurance claim narrative; (b) Projects page — new "Featured Project" hero card at the top with the Lawson Herron case study. If you have other CompanyCam galleries with more before/after pairs, send 'em — I'll add a second + third featured project.

✓ Better Call Harry segment — featured on the news page received

Your CBS46 segment screenshot is featured prominently on the Atlanta News First page. If you get the actual video file or YouTube link later, send it and I'll embed.

✓ TrustedSite verified badge — installed sitewide received

Your TrustedSite badge code is now in the head of every page on the new site. The badge will auto-render on each page once TrustedSite's CDN propagates the verification.

✓ GAF widgets — 4 widgets installed across 7 placements received

Per your install spec: Warranty Chart on the homepage + storm damage page. Timberline HDZ on the residential roofing page. Parts of a Roof on the homepage + about page. Shingle Comparison on the roof replacement page + the June 2025 hailstorm landing page. Lazy-loaded so they don't slow page load. iframe sources untouched per your "do not modify" instruction.

Post-Launch · Optional add-ons

things we can layer in once you're live · zero pressure

Integrations Pack — Company Cam + Boss Up AI $197

Company Cam map showing every job location (local SEO signal) · Boss Up AI chatbot capturing quote requests 24/7 and booking appointments into your CRM. More capture = more signal back to Google.

reply "yes" in messenger to roll in
Monthly Retainer $150/mo

Security patches · uptime monitoring · 2 hrs/mo content tweaks · seasonal storm-push updates. Anything beyond 2 hrs quoted first. Cancel anytime.

talk about it after launch — no rush
The Promise from the Call

I said I'd pull colonyroofers.com apart — here it is.

Colony wins on keyword density and service-page depth. That's it. Below: the 5 real holes Mosaic's new site beats them on, the head-to-head table, and the 5 takeaways you can screenshot and send to anyone who asks how the new site compares.

Where They're Weak

5 holes we beat them on

Hole 01
Zero star rating on homepage
They brag about "3000+ jobs" and "A+ BBB" but never surface a review count or rating. Your 5.0 on 100+ is sharper social proof.
Hole 02
Zero solar panel coverage
"Solar panel" appears 0 times on Colony's homepage — less competitive noise across any solar-adjacent search terms in the market.
Hole 03
Near-zero TPO coverage
"TPO" shows up once in a submenu, nowhere else — fewer competitors in that corner of commercial-roofing search.
Hole 04
Stock photos, no before/afters
Generic hero imagery, no case studies, no real project photos on service pages. Your real residential, commercial, storm-damage, and insurance-claims photos are the #1 differentiator.
Hole 05
No schema.org structured data
No JSON-LD, no LocalBusiness, no AggregateRating. Your new site ships with the full schema stack — unlocks star snippets in search results. They don't have this.

Head-to-Head

On-page SEO · Mosaic new site vs. Colony

Metric Colony Roofers Mosaic (new site)
H1 quality "Residential and Commercial Roofing Experts" 5.0-review-anchored, keyword-targeted
"metal roofing" mentions 4 homepage Dedicated page + 15+ mentions
"commercial roofing" mentions 3 homepage Dedicated page + 15+ mentions
Storm / hail damage coverage Shared with repair page, thin Dedicated pages + insurance-claims support
Insurance claims positioning Brief mention only Dedicated page + adjuster coordination messaging
Schema.org JSON-LD None detected LocalBusiness + RoofingContractor + Service + AggregateRating
Numeric review count on homepage None 5.0 on 100+ reviews above fold
Before/after gallery None Cross-service portfolio grid
Stack HubSpot (platform-locked) Custom-coded, no platform inheritance

5 Takeaways

Screenshot-ready · share with anyone

  1. Colony ranks because they have deep service pages. We're matching that structure across your actual services — residential, commercial, storm/hail, repair/replacement, insurance claims. Colony also leaves TPO + solar coverage gaps (zero / near-zero) — less competitive noise in those corners of search regardless.
  2. Their homepage has no star rating or review count. Your 5.0 / 100+ is sharper proof — we're leading with it.
  3. They use stock photos. Your real project photos on every service page are the #1 differentiator.
  4. They have zero schema markup. We're shipping full LocalBusiness + RoofingContractor + star-rating schema to unlock search star snippets they don't have.
  5. Your Sept LSA collapse was WordPress redirects + indexing failures. The new custom build fixes that at the foundation — no patching, no inherited baggage.

Invoice #DMM-2026-044

Deposit in · balance on delivery · no subscriptions · $497 total

✓ Paid · 4/23 via PayPal
Deposit — received $200 sent via PayPal. Build clock started. Concepts unlocked. Thanks Kyle.
$200
✓ Paid · 4/25 via PayPal
Balance — received $302 sent via PayPal. Build is fully funded. Thanks Kyle.
$302
✓ Paid in Full
$497 build $502 total received via PayPal across two transactions. No balance outstanding.
$0
✓ Build paid in full. No further payment needed. Site LIVE on mosaicroofingcompany.com. Thank you, Kyle.
View Full Invoice PDF-style

How This Price Compares

Same scope · real Atlanta roofer market · pulled 4/18

Tier Typical Cost What You Get
Freelance / WP template $800–$1,500 Same WordPress stack that cost you 4 months of LSA calls. No custom SEO, no schema, no teardown.
Regional agency $3,000–$6,000 Semi-custom, drag-and-drop editor, light SEO. Rarely includes schema, rarely a teardown.
Full-stack custom + SEO $8,000–$15,000 Custom-coded, full on-page SEO, schema, 10+ pages. Closest match to your scope — just 16× the price.
Mosaic · DMM $497 13 custom pages + teardown + schema + 3 concepts + live portal. Same scope as the $8k tier.

Send Project Photos

Real shots per service · matches what you asked for on the call

Real project shots per service page — best lighting, clearest angle, we'll crop later. 3–5 photos per category below is plenty. Send what you've got; we can fill gaps with Nano Banana if needed.

Residential
3–5 photos
Commercial
3–5 photos
Storm / Hail Damage
3–5 photos
Repair / Replacement
3–5 photos
Insurance Claims
docs + before/after

On File — Mosaic Roofing

Update anything here? Text or email

Contact
Kyle Costen (404) 213-4767 · Operations
Business
Mosaic Roofing Company 3379 Peachtree Rd NE · Atlanta, GA
Current Site (being replaced)
mosaicroofingcompany.com WordPress · replaced via Cloudflare Worker on launch day
Social Proof
5.0 on 100+ Google reviews Going above the fold on the new site + wired into schema