Genuine Plumbing Pros v3 — DO NOT SHIP. 4 P0 launch-blockers. Full report below. UPDATED 18:02Z — hero-photo critique promoted to P0 after Wes flag.
GPP v3 — ranked findings
Preview: https://genuine-plumbing-pros-v3.pages.dev · QA'd by Nagatha (PC), 2026-04-21
Bottom line up front
Not shippable as-is. Four P0 blockers, any one of which kills launch:
- Fake phone number
(630) 555-0000 appears 5+ times. First-touch CTA, header CTA, about-page CTA, footer. Every user who taps the phone button calls nothing.
- Placeholder plumber license
IL Plumber License #058-XXXXXX (twice on About page). This is a legal/trust credential — can't go live with a fake number.
- Mobile nav is completely broken. Services / Service Areas / About / Contact pages exist but on mobile the nav is
display: none and there's NO hamburger/toggle button. Mobile users cannot navigate anywhere except the home page.
- Hero photo is fundamentally broken as a hero. White H1 sits directly on a busy van photo with no scrim / darkening overlay — text crosses body panels, wheels, background trees, the overlaid badge. Headline readability goes to zero in at least 3 zones. The whole hero is the bug, not individual pieces of it.
Ship after these four are fixed.
P0 — SHIP-BLOCKERS
0. Hero photo is broken as a hero. [PROMOTED from P2 #9 after Wes flag, 18:02Z]
White H1 "SAME-DAY PLUMBING SERVICE IN THE CHICAGO SUBURBS" sits directly on a detailed full-bleed van photo. No scrim / darkening overlay. No clean backdrop zone. The H1 text crosses body panels, wheels, tree foliage in the background, AND the circular "GENUINE Plumbing Pros" badge overlaid at right. Readability collapses in at least 3 zones. The van photo IS the brand vehicle, so dumping it outright isn't right — but a hero with this much visual busyness under big white type needs either:
- A gradient/scrim overlay (e.g.
background: linear-gradient(90deg, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.2) 100%)) darkening the left side where the H1 sits;
- OR a cleaner composition — van on a clean driveway with open sky region where the headline lives;
- OR move the H1 off the photo entirely (half-photo / half-text split pane).
I was scoring individual bugs (badge z-index, word overflow) and missed that the whole hero composition is the bug.
Fix: re-comp the hero. Options above. Cheapest: scrim overlay on left 60% at ~55% opacity, keep headline in that zone. Let the photo breathe on the right.
1. Placeholder phone number (630) 555-0000 is the site's primary CTA.
Appears 5+ times: header, hero CTA, About page CTA, footer, contact block. The tel: href on every CTA is tel:+16305550000. Every phone interaction from this site calls a fake number. 555-0000 / 555-XXXX is the Hollywood fictional-phone-number reserve — it is literally the industry-standard signal for "this is a placeholder." Every other issue on this report is a rounding error next to this one.
Fix: get the real phone from Wes → global replace across the site → verify tel: links also update.
2. Placeholder IL plumber license number #058-XXXXXX.
On the About page, twice: "Licensed · Bonded · Insured · IL Plumber License #058-XXXXXX". Shipping a live plumbing site with a fake license number is a legal/compliance risk — Illinois DFPR maintains a public license lookup; a fake number is immediately falsifiable. Beyond trust: in IL it's illegal to advertise plumbing services without a valid license number when one is claimed.
Fix: get Justin's real IL plumber license number → replace both occurrences.
3. Mobile nav is hidden with no toggle.
At 390×844 (iPhone 14), I scanned the DOM for menu buttons. Zero toggles. header nav has display: none applied via media query. The only visible interactive elements in the header are the logo (home link) and the phone CTA button. Services / Service Areas / About / Contact links exist in the DOM but visible: false. A user on mobile who wants to see a specific service area page literally has no navigation path except typing the URL.
Same class of bug as Shaw's original mobile-drawer issue last night — hidden items with no reveal mechanism.
Fix: add a hamburger button visible at <768px that toggles the nav. Standard pattern, 30-line CSS + 10-line JS.
P1 — HIGH
4. Five images render larger than their natural size — upscaled blur.
hero van-blank.png: natural 1408×768 → rendered 1440×738 (+2% upscale, noticeable on retina)
slot-03-drain-grid-640.webp: natural 475×332 → rendered 587×391 (+24% upscale)
slot-04-water-heater-grid-640.webp: same (+24%)
slot-05-leak-grid-640.webp: same (+24%)
slot-06-sewer-grid-640.webp: same (+24%)
Soft-looking service-grid tiles on desktop. On retina screens the blur is worse because the browser upscales from 475×332 to 587×391 CSS pixels THEN doubles that for the device pixel ratio. Effective native need is 1174×782 on retina — we're serving less than half that.
Fix: re-export service grid images at 1200w or 1600w → wire
srcset /
<picture> so mobile gets smaller, desktop-retina gets bigger.
5. 10 of 12 images have no srcset.
Every image is served at its one fixed size regardless of viewport. Mobile users on cell connections pull desktop-sized assets. LCP hit + bandwidth waste.
Fix: srcset on all non-decorative images. The van hero is the most expensive offender.
6. Zero lead-capture forms on the site.
document.querySelectorAll('form') returns 0 results. No contact form, no quote-request form, no appointment-request form. The site is phone-first: either call or text. That's a deliberate product choice possibly (plumbing is often phone-triggered), but most small-biz plumbing sites have at least a "request a quote" form to capture leads outside business hours.
Verify with Wes: is phone-only intake intentional, or is a form planned for a later iteration?
P2 — MEDIUM
- 7. About page is structurally flat. H1 only, no H2s. 198 words. No sub-sections. Reads as a one-paragraph mission statement. Would benefit from 3-4 H2 sections: "The approach" / "Our work" / "Service areas" / "Credentials". Adds SEO depth + scan-ability.
- 8. About page has zero owner mention. Per memory rule from last night: "owner first name rationed to one About page max." v2 over-corrected. v3 has swung the other way — zero Justin mentions anywhere on the site. This is defensible if the intent is "entity brand, no face" but it reads slightly faceless for local plumbing where homeowners often want to know who's coming to their house. Worth a one-line acknowledgment like: "Founded by Justin Baranski, a licensed IL plumber with X years of Chicago-area experience." OR confirm with Wes that the zero-owner-mention approach is intentional.
- 9. Logo + hero text clash on desktop. [ROLLED INTO P0 #0 — the badge clash is one symptom of the broader hero-composition bug.]
- 10. 2 of 12 images without alt text. A11y. Likely the hero van + logo.
P3 — STYLE / DIAGNOSIS
- Copy voice — PASS. Zero Justin mentions on home, zero "I/me/my" singular first-person, 2 uses of "we/our/us" (business voice). v2's over-personalization bug is gone.
- H1 + keyword structure — PASS. "SAME-DAY PLUMBING SERVICE IN THE CHICAGO SUBURBS" — clean keyword density, geo-targeted, scannable.
- Trust row — PASS. Free estimates · Same-day · No extra fee · 1-yr warranty · Licensed & insured. Standard plumber hygiene.
- Service coverage — PASS. 8 services in grid covers standard residential + light commercial plumbing. Emergency plumbing included.
- Console — PASS. Zero console messages, zero errors, zero warnings.
- Service area — PASS. DuPage, Kane, Kendall, Will, McHenry counties listed + 6 city links (Naperville, Aurora, Schaumburg, Arlington Heights, Oak Park, Wheaton). Good geo SEO.
Desktop 1440 × 900
hero (above fold)

full page

Mobile iPhone 14 — 390 × 844
hero

full scroll

Priority punch-list
P0 (ship-blocker — all four before launch):
[ ] 0. Re-comp the hero — scrim overlay OR cleaner photo OR split-pane. H1 currently unreadable over busy van.
[ ] 1. Replace placeholder phone (630) 555-0000 with real number (5+ occurrences + tel: hrefs)
[ ] 2. Replace placeholder license #058-XXXXXX with real IL plumber license
[ ] 3. Add mobile hamburger nav (header nav is display:none at <768px with no toggle)
P1 (fix before ship):
[ ] 4. Re-export service-grid images + hero van at retina-safe sizes
[ ] 5. Wire srcset across 10 non-srcset images
[ ] 6. Confirm phone-only intake is intentional OR add a lead-capture form
P2 (polish):
[ ] 7. About page — add 3-4 H2 sections, expand to 300-500 words
[ ] 8. About page — confirm zero-owner-mention is intentional (memory says one mention on About is allowed)
[ ] 9. Fix logo-badge z-index clashing with hero H1 on desktop
[ ] 10. Add alt text to remaining 2 images
Clippy-Work-1 (Nagatha) · 2026-04-21 · brutal pass per Wes request · hold ship until P0s resolved.