Audit C
Full Ecosystem Audit
Comprehensive audit across all SEO lanes: technical, semantic, local, links, content, structured data, competitor topology, and growth opportunities. Master synthesis plus per-lane deep dives.
Audit C: Ecosystem Master Report
TurnKey Bath Remodel: Full-Ecosystem SEO Audit Report
Client: TurnKey Bath Remodel, https://www.turnkeybathremodel.com/ Address: 3436 Magazine St Suite 414-N, New Orleans, LA 70115 Phone: (504) 513-6366 Audit Date: 2026-06-11 Orchestrator: Oliver | Conductor: Carlos | Synthesis: Shakespeare Audit Tier: Tier C (Full Ecosystem: 10 specialized lanes)
Overall Ecosystem Score
| Lane | Score | Weight | Weighted Score |
|---|---|---|---|
| A. Koray Semantic SEO | 24/100 | 12% | 2.9 |
| B. Semantic + Merlino Stack | 29/100 | 12% | 3.5 |
| B. Local / GBP | 21/100 | 12% | 2.5 |
| B. Patents | 18/100 | 8% | 1.4 |
| C. Forensics | 71/100 | 8% | 5.7 |
| C. Technical | 22/100 | 10% | 2.2 |
| C. Schema | 40/100 | 8% | 3.2 |
| C. Backlinks | 12/100 | 10% | 1.2 |
| C. Competitors | 49/100 | 6% | 2.9 |
| C. Content Quality | 44/100 | 8% | 3.5 |
| C. AI Visibility | 38/100 | 4% | 1.5 |
| C. CRO | 54/100 | 2% | 1.1 |
| ECOSYSTEM TOTAL | 100% | 31.6/100 |
Verdict: CRITICAL. The site is operating at roughly one-third of its potential. Seven structural blockers are suppressing every other optimization. None of the content, schema, or link work will compound until the structural ceiling is removed.
Confirmed Data (Phase 0, cite verbatim in all fixes)
- Organic: 48 keywords, ETV $28/mo, zero positions 1-3, four positions 4-10
- Backlinks: 735 total, 691 flagged broken by DataForSEO (confirmed as WAF/redirect artifact, not actual broken links per forensics lane), 194 referring domains, domain rank 233/1000
- Top traffic page: /step-by-step-guide-installing-tub-liner/ (DIY intent, anti-conversion)
- GBP: CID 8100816110331311685 (15 reviews) confirmed active; second listing CID 5689911541674788924 (26 reviews) confirmed active; combined 41 reviews; both listings active = Google policy violation
- Sister domain: turnkeybathroomrenovations.com, same WPX Cloud /24 subnet (194.1.147.x), ranks #8 and #11 for "walk in tub new orleans," main domain not in top 20
- GSC/GA: NOT available. All organic data sourced from DataForSEO Phase 0 pull.
P0 Finding Register (Must Fix Before Anything Else Compounds)
P0-1: Sister Domain Cannibalization + Entity Fragmentation
Source lanes: Koray A, Semantic B, Local B, Patents B, Forensics C, Technical C, Schema C, AI Visibility C Evidence: turnkeybathroomrenovations.com confirmed on same WPX Cloud infrastructure (194.1.147.x), identical PHP 8.3.31, identical URL structure (/bathtubs/walk-in-tubs/, same 14 city service areas), identical GoHighLevel form infrastructure. Sister domain ranks #8 and #11 for "walk in tub new orleans" while main domain is absent from top 20 for that query. Sister domain declares a separate LocalBusiness entity in schema with no declared relationship to the primary entity. Under US 10332036B2 (Word Sense Disambiguation), Google cannot resolve these to one entity node. Impact: Every bit of topical authority, link equity, and GBP signal the business has earned is split across two incomplete entities. Neither can win because neither has a complete signal. Fix: 301 redirect turnkeybathroomrenovations.com to turnkeybathremodel.com with full page-to-page mapping before any content or schema investment. Merge GMB listings per fix below. Inaction risks devaluation of both domains at next core update under Google site reputation/spam policies. Owner type: Technical + Local SEO
P0-2: Duplicate GMB Listings (Policy Violation, Suspension Risk)
Source lanes: Local B, Forensics C Evidence: CID 8100816110331311685 (15 reviews, primary) and CID 5689911541674788924 (26 reviews, "TurnKey Bath Remodel: New Orleans Bath Remodeler") both confirmed active via DataForSEO business_data/google/my_business_info/live. Two active listings for the same business at effectively the same address is a Google My Business policy violation and creates grounds for suspension of both. Impact: 41 combined reviews are split, making the business look smaller than it is. Authority fragmented. One complaint to Google from a competitor triggers suspension. Fix: Determine which listing is primary (recommend the Magazine St listing with the higher review count). Request merge via Google Business Profile support. After merge, all 41 reviews consolidate on one profile. Owner type: Local SEO
P0-3: Four-Way NAP Conflict
Source lanes: Local B, Schema C Evidence: GMB phone (+1 504-688-4201) conflicts with website phone (504-513-6366). GMB address (1401 Distributors Row, 70123) conflicts with website address (3436 Magazine St, 70115). Press releases, Facebook, and bestremodel.com all use the GMB phone/address. Website schema and footer use the site phone/address. Google cannot resolve a single entity from these signals. Fix: Decide the canonical NAP (Magazine St address is the business-facing location; confirm whether Distributors Row is a warehouse/registered address). Update GMB, website footer, schema, and all citation sources to match exactly. Submit corrections to aggregators (Data Axle, Neustar Localeze). Owner type: Local SEO
P0-4: Homepage JS-Rendered with Zero Server-Side Content
Source lanes: Technical C, AI Visibility C Evidence: curl of homepage returns 127KB HTML but only 1,471 visible characters after stripping scripts/styles. Zero H1, H2, nav, or paragraph tags in initial HTML response. SSR score 0/100. AI crawlers (GPTBot, PerplexityBot, ClaudeBot, Amazonbot) see an empty page. WP Rocket IE-compatibility JavaScript block is the first 150+ words of HTML on all audited pages. Impact: Every AI citation and LLM-visibility play is blocked at the HTML layer before it can reach the ranking model. This is also why the homepage contributes near-zero to topical authority despite being the most-linked page on the site. Fix: Output H1 and main content server-side in WordPress theme. Move WP Rocket's IE-compatibility block out of the first 150 characters. This likely requires a WordPress developer or the WPX Cloud support team. Owner type: Technical
P0-5: /service-areas/new-orleans/ Returns HTTP 404
Source lanes: Semantic B, Local B, Technical C Evidence: Live fetch confirmed 404 on https://www.turnkeybathremodel.com/service-areas/new-orleans/. New Orleans is the primary commercial market. It appears in the navigation (creating an internal 404). GMB links to the homepage with UTM params instead. Zero on-page local content signals for "bathroom remodel new orleans." All 13 other city pages return HTTP 200. Fix: Rebuild and publish the New Orleans service area page immediately. This is not a redirect situation; the page needs to exist with substantive content. It is the single most commercially valuable page on the site. Owner type: Content + Technical
P0-6: Schema @id Anchored to Page Fragment, Not GMB CID
Source lanes: Semantic B, Schema C, AI Visibility C Evidence: LocalBusiness @id uses #organization anchor (e.g., https://www.turnkeybathremodel.com/#organization) across all 7 pages fetched. mainEntityOfPage absent sitewide. Neither field references the GMB CID or Knowledge Graph MID. Under Daryl Osborne's entity elevation method, every entity reference in the schema graph is orphaned from the Knowledge Graph. Fix: Update @id to reference the GMB CID (CID 8100816110331311685) in the format Google expects (the GBP URL with the CID). Add mainEntityOfPage to every entity block per Merlino Schema IP. Owner type: Schema/Technical
P0-7: Press Release Link Footprint with Boilerplate Keyword Anchors
Source lanes: Backlinks C, Patents B Evidence: 434 "organization" + 103 "news" platform links = 77% of all backlinks from press release syndication infrastructure (xpr-gannett.com 138 links, marketminute.com 39 links). Anchor "TurnKey Bath Remodel centers on bathroom remodeling" repeats 138 times across unrelated domains. Google's link spam policy explicitly names press releases with keyword-rich anchor text as a violation risk. Telegram and SEO-spam anchors also detected in the link profile (t.me/s/quarterlinks25, BuySeoLink.com). Fix: (1) Disavow the four high-spam-score toxic domains (pierrecountry.com spam 40, thedam.fm spam 30, celebhomes.net spam 25, rogueimc.org spam 14) plus all Telegram/SEO-spam anchors immediately. Requires GSC access from the client. (2) Stop all press release link building. (3) Begin editorial link acquisition as replacement strategy. Note: The forensics lane confirmed the 691 "broken" links are a DataForSEO WAF artifact, not real broken links. The press release footprint issue is real regardless. Owner type: Links
P0-8: llms.txt Staging Host Contamination
Source lanes: AI Visibility C Evidence: llms.txt exists at the domain (HTTP 200) but every internal URL inside it points to staging host vm34.wprise.ai instead of www.turnkeybathremodel.com. AI crawlers following these links hit the wrong server. Fix: One find-and-replace on the llms.txt file: replace all vm34.wprise.ai references with www.turnkeybathremodel.com. Verify after deploy. Owner type: Technical (five-minute fix)
P1 Finding Register (High Impact, Execute Months 1-3)
P1-1: Central Entity Inconsistency Sitewide
Source lanes: Koray A, Semantic B, Schema C Evidence: "bath remodel," "bathroom remodel," and "bathroom renovation" used interchangeably with no dominant ngram. Walk-in tubs page uses brand name "TurnKey Bathroom Remodel" (wrong) vs. correct "TurnKey Bath Remodel." OG tags say "TurnKey Bathroom Remodel" while title tag says "TurnKey Bath Remodel." Under Koray's rule, the central entity must appear consistently in all articles to build site-wide ngram authority. Fix: Audit every page for brand name and service entity naming. Standardize to "TurnKey Bath Remodel" and "bath remodel" as the dominant entity ngrams. Update OG tags, schema name fields, and on-page copy.
P1-2: Homepage H1 Contains Zero Keyword
Source lanes: Semantic B, CRO C Evidence: H1 reads "Your Dream Bathroom Installed in as Little as 1 Day." Zero commercial keyword. Diggity three-kings violation (title, H1, first paragraph must carry primary keyword). Meta description absent on homepage, /showers/, and /bathtubs/. Fix: Rewrite H1 to "New Orleans Bathroom Remodeling Completed in 1 Day." Add meta descriptions to all three pages using intent-analyzer emotional-hook + functional-promise formula.
P1-3: City Pages at 75-84% Duplicate Content
Source lanes: Koray A, Semantic B, Patents B, Technical C, Content C, CRO C Evidence: 14 city pages with structurally identical content (only city name swapped). Benefits, planning, and services sections verbatim-identical. "All About [City]" section contains only tourism trivia. Slidell page lists services TurnKey does not offer (tile installation, electrical upgrades, flooring). WO2020081082 states simply rewriting existing content provides no information gain. Risks doorway page classification. Fix: Rebuild top-4 traffic city pages first (Slidell, Baton Rouge, Metairie, New Orleans once restored). Each page needs: unique opening paragraph with local market context, 2-3 city-specific testimonials, one project photo with city caption, local permit/parish references, removal of tourist-guide sections, and per-page LocalBusiness schema with city geo.
P1-4: Internal Linking Structural Violations
Source lanes: Koray A Evidence: 14 city pages using identical service-name anchors to the same destination pages (near-certain violation of 3-use anchor text maximum per Koray). Service links placed inside H3-level navigation lists rather than H2 body content, reducing relevance transfer. Fix: Implement varied anchor text across city pages. Move commercial service links into H2-level body content. Cap any single anchor-target combination at 3 uses sitewide.
P1-5: Schema Missing Core Entity Elevation Fields
Source lanes: Schema C, AI Visibility C Evidence: additionalType (Wikipedia category URLs), disambiguatingDescription, and knowsAbout absent from org entity sitewide. hasOfferCatalog lists only one generic Offer ("Acrylic Bathroom Products") despite six distinct services. areaServed lists 14 cities but every City node lacks a Wikidata URL. FAQPage schema absent on /showers/ and /bathtubs/walk-in-tubs/. Blog post top-traffic page has no HowTo schema despite step-by-step content. Metairie city page spawns a second LocalBusiness @id node using the New Orleans address (phantom duplicate entity). Fix: Deploy full Merlino Schema IP entity elevation stack per Daryl Osborne method: additionalType, disambiguatingDescription, knowsAbout, areaServed with Wikidata Q-numbers, geoRadius, sameAs with BBB/Angi/GBP CID. Add FAQPage (5-question minimum) to /showers/ and /bathtubs/walk-in-tubs/ covering cost, timeline, ADA use cases. Add HowTo schema to the tub-liner DIY blog post. Fix Metairie phantom @id.
P1-6: GMB Critically Under-Optimized
Source lanes: Local B, Forensics C Evidence: GMB shows total_photos = 1 (competitors have 50-200+). additional_categories = null, services = null, questions_and_answers_count = null. GMB hours (Mon-Fri 8:00-17:00, closed weekends) conflict with website hours (Mon-Sat 8AM-5PM, Sun 8AM-4PM). Only one primary GMB category with zero secondary categories, zero Q&A. Fix: Upload 25-50 geotagged before/after bathroom project photos minimum. Add secondary categories (General Contractor, Shower Door Shop). Add 10+ Q&A entries seeded with service/pricing questions. Resolve hours conflict. Add all services to the GMB services panel.
P1-7: AI/LLM Visibility Blocked at Multiple Layers
Source lanes: AI Visibility C, Schema C, Technical C Evidence: quotation_level = 0 across all pages (no testimonial or expert quotes in markup). cite_sources_level = 1 on all pages (no third-party citations). These two gaps alone cap FeatGEO Trust at 8.3/25 sitewide. No declarative answer blocks. No speakable property in schema. sameAs missing BBB, Angi, GBP CID (social-only sameAs insufficient for AI entity verification). Showers page and FAQ page have zero H2/H3 heading structure in server-rendered HTML. Fix: Add 50-75 word declarative opening block per service page (Google AIO, ChatGPT, Perplexity all require direct answer first plus 5+ specific data points with units). Add speakable schema. Expand sameAs to include Wikidata, BBB, Angi, GBP CID URL. Fix H2/H3 server-side rendering on showers and FAQ pages.
P1-8: Top-Traffic Page Drives Anti-Conversion Traffic
Source lanes: Technical C, Content C, Patents B Evidence: /step-by-step-guide-installing-tub-liner/ accounts for 25 of 48 ranked keywords (52%), all DIY intent ("bathtub liner diy," "how to install tub liner"). This is the site's best-performing page by traffic and its worst by conversion intent. Under US 9,135,307 (Panda quality scoring), a commercial service site whose best-performing content teaches users to avoid the service creates an E-E-A-T mismatch. Fix: Do not remove the post (it is the only page with top-10 rankings). Add: author schema with contractor credentials, a conversion bridge section ("Why most DIY tub liners fail within 18 months"), and a strong CTA to professional installation. This single edit likely has the highest conversion ROI of any content change.
P1-9: Zero Tier-1 Local Citations
Source lanes: Backlinks C Evidence: No New Orleans, Louisiana, or Gulf Coast business/city/news sites in the 188 referring domains. Tier-1 citations (Yelp, BBB, Angi, Houzz, chamber of commerce) completely absent. The merlino-sops citation SOP specifies submitting these in week 1-2 of any campaign. This is the single fastest-ROI link action available. Fix: Submit to Yelp, BBB, Angi, Houzz, Greater New Orleans Inc. chamber, local city business directories, and home improvement associations. Target 15-20 citations in month 1.
P1-10: Publishing Momentum Below Topical Authority Threshold
Source lanes: Koray A Evidence: Approximately 2 posts/month over a 21-month domain life (40 posts estimated). Koray's threshold for topical authority acquisition requires consistent publication with quality core-section nodes published first (close to the homepage) before outer-section cost/value topics. Current blog prioritizes outer-section topics before core-section quality nodes exist. Fix: Launch a sudden 6-article batch covering: walk-in tub vs walk-in shower, bathroom remodel cost New Orleans, tub liner vs replacement, ADA/aging-in-place bathroom New Orleans, bathroom remodel timeline, Jefferson Parish permit guide for bathroom remodels. All with internal links back to commercial service pages. Koray Momentum doctrine: patternless publish over 7-10 days to trigger topical authority re-evaluation.
P2 Finding Register (Meaningful Improvements, Execute Months 2-4)
P2-1: Anchor Text Distribution Inverted vs Healthy Benchmarks
Source lanes: Backlinks C Evidence: 92.7% artificial brand-sentence anchors, 0% naked URL, 0.9% generic. Target benchmarks: 10-15% naked URL, 15-20% generic. All anchors from press release campaign. Domain rank 233 despite 699 backlinks vs ezbaths.com at rank 211 with only 504 backlinks. Fix: Future editorial link acquisition targets diverse anchor construction: naked URL, generic ("click here"), partial-match, and branded-only. 12+ months to normalize distribution.
P2-2: LocalBusiness Schema Sitewide vs Per-Page
Source lanes: Technical C, Schema C Evidence: Schema is identical across all pages instead of per-page. City page Metairie has a second LocalBusiness @id node using the New Orleans address. No per-page LocalBusiness schema on any of the 14 service area city pages. Fix: Each city page gets its own LocalBusiness schema instance with the city-specific geo coordinates, areaServed limited to that city (Wikidata Q-number), and @id using the page URL + city fragment.
P2-3: CRO: Modal-Only Form + Three Competing CTAs
Source lanes: CRO C Evidence: Form is modal-only across all pages (no inline fallback). Three competing CTAs above the fold (Design Consultation, Call, FREE Estimates) create decision paralysis. Fix: Add a 3-field inline form on homepage and /contact/ (Name, Phone, Service Needed). Demote to one dominant CTA (Call primary, form secondary, remove third).
P2-4: /gallery/ 404 With No Redirect
Source lanes: Forensics C, Technical C Evidence: /gallery/ returns HTTP 404. Wayback CDX confirms it returned 200 on 2024-10-14 and is now gone with no 301 redirect. /projects/ also 404s (correct URL is /our-projects/). Fix: 301 redirect /gallery/ to /our-projects/ and /projects/ to /our-projects/ immediately.
P2-5: OG Image Is the Favicon
Source lanes: Technical C Evidence: og:image set to favicon.png (16x16 icon). Twitter card is "summary" not "summary_large_image." Fix: Set og:image to a 1200x630 hero photo. Update Twitter card type.
P2-6: WP Login Accessible, No Security Headers
Source lanes: Technical C Evidence: wp-login.php returns HTTP 200. No X-Frame-Options, HSTS, CSP, or X-Content-Type-Options headers present. xmlrpc.php URL advertised in HTML head. Fix: Restrict wp-login.php access by IP or add two-factor via a security plugin. Implement security headers at the WPX Cloud level. Remove rsd_link action to stop advertising xmlrpc.php.
P2-7: No Live Chat or SMS Widget
Source lanes: CRO C Evidence: Zero live chat or SMS widgets detected. 40-50% of remodel research happens after hours. Fix: Install Tidio free tier with "1-day install" opening hook. Add SMS fallback routing. Add "Text Us" SMS option to the sticky mobile bottom bar.
P2-8: Topical Map Core-Section Attribute Gaps
Source lanes: Koray A Evidence: 13 monetizable core-section entity-attribute pairs missing: no cost data on any service page, no acrylic material attribute, no one-day install process node, no walk-in tub Medicare/insurance attribute. Fix: Add cost range data to every service page. Add material attributes (acrylic, fiberglass) to relevant service pages. Add one-day install process explanation as a dedicated section or sub-page. Add a walk-in tub Medicare/insurance eligibility section to the walk-in tubs page.
P2-9: No Financing Page
Source lanes: Competitors C Evidence: TurnKey has no financing page. EZBaths (18-month no-interest) and all national franchises rank for bathroom remodel financing terms. "Bathroom remodel financing no credit check" (vol 40) held by EZBaths. Fix: Add a financing page with current lender partner offer details. This also directly improves conversion on the primary commercial pages.
P2-10: Tub-Liner Service Page Underoptimized Despite Highest Traffic Potential
Source lanes: Content C Evidence: /bathtubs/tub-liners/ is the strongest service page (correctly names 4 material types, includes $800-2,500 price range, references New Orleans humidity) but has no FAQ, no comparison table, no HowTo or product schema. The highest-conversion-potential page is the most under-optimized. Fix: Add a 7-question FAQ section. Add a comparison table (tub liner vs tub replacement vs full remodel). Add cost breakdown section. Add HowTo schema for the installation process description.
Positive Signals (Do Not Break These)
- TTFB 0.159s (excellent) via LiteSpeed/HTTP3 on WPX Cloud
- FAQPage schema present on /faq/ (correct implementation)
- HTTP-to-HTTPS and www-to-www redirects are single-hop and correct
- License numbers 890459 (Residential) and 3667 (Commercial) consistently displayed above fold
- Lifetime Warranty visible on key commercial pages
- 0% Financing visible above fold
- No AggregateRating on entity (correct per Merlino Schema IP, do not add it)
- Canonical tags self-referencing on all probed pages
- No noindex on any commercial page
- All 69 sitemap URLs resolve 200 except /projects/ (not in sitemap)
- Sticky mobile bottom bar (Call Now + Free Quote) confirmed active
- 1-day install USP is a genuine differentiator, competitors cannot easily match it
Scored Summary Table
| Finding | Severity | Impact (1-10) | Effort | Blocking Others |
|---|---|---|---|---|
| P0-1: Sister domain 301 redirect | P0 | 10 | Medium | Yes |
| P0-2: Duplicate GMB merge | P0 | 10 | Low | Yes |
| P0-3: Four-way NAP conflict | P0 | 9 | Low | Yes |
| P0-4: Homepage JS rendering | P0 | 9 | Medium | Yes |
| P0-5: New Orleans 404 page | P0 | 9 | Low | Yes |
| P0-6: Schema @id fix | P0 | 8 | Low | Yes |
| P0-7: Disavow + stop PR links | P0 | 7 | Low | Partial |
| P0-8: llms.txt staging URLs | P0 | 5 | Low (5 min) | No |
| P1-1: Entity ngram consistency | P1 | 8 | Low | No |
| P1-2: Homepage H1 + meta | P1 | 8 | Low | No |
| P1-3: City page rebuild (top 4) | P1 | 8 | High | No |
| P1-4: Internal linking fix | P1 | 6 | Medium | No |
| P1-5: Schema entity elevation | P1 | 8 | Medium | No |
| P1-6: GMB optimization | P1 | 9 | Low | No |
| P1-7: AI/LLM visibility stack | P1 | 7 | Medium | No |
| P1-8: DIY blog conversion bridge | P1 | 9 | Low | No |
| P1-9: Tier-1 citation blitz | P1 | 9 | Low | No |
| P1-10: Content publishing sprint | P1 | 7 | Medium | No |
| P2-1: Anchor diversification | P2 | 5 | Ongoing | No |
| P2-2: Per-page city schema | P2 | 6 | Medium | No |
| P2-3: CRO form + CTA | P2 | 7 | Low | No |
| P2-4: /gallery/ + /projects/ 301 | P2 | 4 | Low | No |
| P2-5: OG image fix | P2 | 3 | Low | No |
| P2-6: Security hardening | P2 | 4 | Low | No |
| P2-7: Live chat / SMS widget | P2 | 5 | Low | No |
| P2-8: Core-section attribute gaps | P2 | 7 | Medium | No |
| P2-9: Financing page | P2 | 6 | Low | No |
| P2-10: Tub-liner page rebuild | P2 | 7 | Low | No |
Report written 2026-06-11. No fabricated data. GSC/GA unavailable; all organic and ranking data sourced from DataForSEO Phase 0 pull. All schema field recommendations per Merlino Schema IP (Daryl Osborne method). Patent citations per Slawski SEO database. No em dashes. All URLs fully qualified.
Audit C: AI/LLM Visibility - TurnKey Bath Remodel
Site: https://www.turnkeybathremodel.com/ Auditor: Einstein (SEO Lead) Date: 2026-06-11 Calibration benchmark: miami-botox pilot scored 69/100 Method: ai-visibility-audit-pro (FeatGEO rubric, arXiv:2606.04362) + aaron-geo-content-optimizer CORE-EEAT checks + entity-seo + schema-stack IP
Executive Summary
TurnKey Bath Remodel has made meaningful structural investments in AI readiness (llms.txt exists, FAQPage schema present, license credentials in schema, 5 sameAs links) but is blocked from citation conversion by three compounding failures: (1) a JS-injected content delivery pattern that buries all readable content below a WP Rocket IE-compatibility block, meaning AI crawlers see near-zero extractable first-150-word content; (2) the llms.txt file pointing entirely to vm34.wprise.ai staging URLs instead of the live domain; and (3) zero knowsAbout, zero speakable, and a @id anchor pointing to the page URL rather than the GMB CID. The net result: the entity exists in the knowledge space (Birdeye, DigitalJournal, Facebook, YouTube, Chamber of Commerce all surface it) but does not get cited in AI-style answers for the queries that drive revenue. Competitors EZ Baths, Bath Fitter, Big Easy Bathrooms, and the sister domain turnkeybathroomrenovations.com are currently being cited where TurnKey Bath Remodel is absent. Overall AI Visibility Score: 38/100 (Weak tier - unlikely to be selected by AI systems under current conditions).
Section 1: llms.txt Audit
Status: File exists at https://www.turnkeybathremodel.com/llms.txt - HTTP 200. File is present, structured, and reasonably complete as a human-readable entity brief.
Finding P0 - CRITICAL: llms.txt points to staging domain, not production domain
Every internal URL in the llms.txt file resolves to vm34.wprise.ai, which is a WPRise staging host, not www.turnkeybathremodel.com. Example service links from the file:
https://vm34.wprise.ai/walk-in/(should behttps://www.turnkeybathremodel.com/showers/walk-in/)https://vm34.wprise.ai/tub-to-shower-conversions/https://vm34.wprise.ai/tub-liners/
When an AI crawler fetches these URLs to verify facts, it either gets a staging server response (which may have different content, auth blocks, or redirect behavior) or fails to resolve entirely. This nullifies the citation signal that llms.txt is intended to create. Any AI system that checks the linked URLs before citing will abandon the process.
What llms.txt DOES contain correctly:
- Business name, address, phone, hours (all accurate)
- License numbers: Residential #890459, Commercial #3667
- Warranty terms: lifetime on acrylic, 10-year on tile
- Service area list (all 14 cities)
- FAQ section with 7 question/answer pairs including pricing ranges
- Credentials section
What llms.txt is MISSING:
- Wikidata entity URL (none present)
- Wikipedia or authoritative third-party entity reference
- Named founders/owners with credentials
AboutURL pointing to the live site- Any citation/source attribution for claims ("over 25 years" claim has no verifiable backing)
Fix: Replace all vm34.wprise.ai URLs with www.turnkeybathremodel.com equivalents. Regenerate or hand-edit the file. This is a one-pass find-and-replace, not a rebuild. Do it before any other AI visibility work - a broken llms.txt actively misleads crawlers.
Section 2: robots.txt AI Crawler Rules
Status: robots.txt is permissive. Content:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.turnkeybathremodel.com/sitemaps.xml
Finding P2 - No explicit AI bot rules (currently permissive by default)
GPTBot, ClaudeBot, PerplexityBot, and Googlebot are all implicitly allowed under User-agent: *. There are no blocking rules that would prevent AI crawler access.
However: The absence of explicit allowances for named AI crawlers is a missed opportunity. Per the ai-llm-seo skill citation preference guidelines, explicitly named rules signal intent to AI operators who monitor robots.txt. The following would reinforce AI accessibility:
User-agent: GPTBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: anthropic-ai
Allow: /
No blocking action required. The site is not blocking AI crawlers. This is informational.
Section 3: FeatGEO Citation-Readiness Scoring
Scored 4 pages using the 13-feature FeatGEO rubric (arXiv:2606.04362). Note: All pages serve a WP Rocket IE-detection JavaScript block as the first content in the HTML source. This means AI crawlers parsing raw HTML see code before semantic content. Pages scored based on what is present once JS is skipped and actual content is reached.
3.1 Homepage (https://www.turnkeybathremodel.com/)
| Feature | Dimension | Score | Notes |
|---|---|---|---|
| headings_level | Structural | 3 | H2s (11) and H3s (3) present, good hierarchy |
| list_density | Structural | 2 | 16 ul/ol elements, moderate |
| length_level | Structural | 3 | ~4,793 words in source, well above 1,500 |
| statistics_level | Trust | 2 | Pricing ($250 shown), warranty terms, "1 Day" claim - specific but limited sourcing |
| cite_sources_level | Trust | 1 | License numbers present but no third-party citations |
| quotation_level | Trust | 0 | No expert quotes or testimonial quotes in markup |
| technical_terms_level | Expertise | 2 | Acrylic, tub liner, barrier-free, tub-to-shower used correctly |
| unique_info_level | Expertise | 1 | Service descriptions are generic, no original research or data |
| keyword_focus_level | Expertise | 2 | On-topic for bathroom remodeling New Orleans |
| has_intro_summary | Readability | 0 | First 150 words are WP Rocket JS block, not a direct answer |
| authoritative_level | Readability | 2 | License numbers and "25 years" mentioned, no named person |
| fluency_level | Readability | 3 | Professional prose, no grammatical issues |
| easy_to_understand_level | Readability | 3 | Plain language, accessible |
Scoring:
- Structural: ((3-1)/2 + 2/3 + (3-1)/2) / 3 * 25 = (1.0 + 0.667 + 1.0) / 3 * 25 = 22.2/25
- Trust: (2/3 + 1/3 + 0/3) / 3 * 25 = (0.667 + 0.333 + 0) / 3 * 25 = 8.3/25
- Expertise: (2/3 + 1/3 + 2/3) / 3 * 25 = (0.667 + 0.333 + 0.667) / 3 * 25 = 13.9/25
- Readability: (0/1 + 2/3 + (3-1)/2 + (3-1)/2) / 4 * 25 = (0 + 0.667 + 1.0 + 1.0) / 4 * 25 = 16.7/25
- HOMEPAGE TOTAL: 61.1/100 (Competitive tier)
3.2 Showers Page (https://www.turnkeybathremodel.com/showers/)
| Feature | Dimension | Score | Notes |
|---|---|---|---|
| headings_level | Structural | 1 | Zero H2s or H3s detected in source - critical structural gap |
| list_density | Structural | 2 | 12 lists present |
| length_level | Structural | 3 | ~3,654 words |
| statistics_level | Trust | 1 | "1 Day", "10-year" mentioned but vague |
| cite_sources_level | Trust | 1 | License implied, no named external citations |
| quotation_level | Trust | 0 | None |
| technical_terms_level | Expertise | 2 | Shower surround, liner, enclosure terminology |
| unique_info_level | Expertise | 0 | Fully generic service descriptions |
| keyword_focus_level | Expertise | 2 | On-topic |
| has_intro_summary | Readability | 0 | WP Rocket JS first |
| authoritative_level | Readability | 1 | Implied credentials only |
| fluency_level | Readability | 2 | Clear but not polished |
| easy_to_understand_level | Readability | 3 | Plain language |
Scoring:
- Structural: ((1-1)/2 + 2/3 + (3-1)/2) / 3 * 25 = (0 + 0.667 + 1.0) / 3 * 25 = 13.9/25
- Trust: (1/3 + 1/3 + 0/3) / 3 * 25 = (0.333 + 0.333 + 0) / 3 * 25 = 5.6/25
- Expertise: (2/3 + 0/3 + 2/3) / 3 * 25 = (0.667 + 0 + 0.667) / 3 * 25 = 11.1/25
- Readability: (0/1 + 1/3 + (2-1)/2 + (3-1)/2) / 4 * 25 = (0 + 0.333 + 0.5 + 1.0) / 4 * 25 = 11.5/25
- SHOWERS PAGE TOTAL: 42.1/100 (Moderate tier - cited only when competition is weak)
3.3 Tub Liners Page (https://www.turnkeybathremodel.com/bathtubs/tub-liners/)
| Feature | Dimension | Score | Notes |
|---|---|---|---|
| headings_level | Structural | 3 | 5 H2s + 9 H3s, strong hierarchy |
| list_density | Structural | 3 | 15 lists, heavy structured |
| length_level | Structural | 3 | ~4,591 words |
| statistics_level | Trust | 2 | $800-$2,500 pricing range specific, "1 Day" |
| cite_sources_level | Trust | 1 | License mentioned, no third-party |
| quotation_level | Trust | 0 | None |
| technical_terms_level | Expertise | 3 | Acrylic overlay, porcelain, drain assembly, technical precision |
| unique_info_level | Expertise | 2 | Pricing range is original/specific, installation process described |
| keyword_focus_level | Expertise | 3 | Tight semantic focus on tub liners |
| has_intro_summary | Readability | 0 | WP Rocket JS first |
| authoritative_level | Readability | 2 | License numbers present |
| fluency_level | Readability | 3 | Professional |
| easy_to_understand_level | Readability | 3 | Accessible |
Scoring:
- Structural: ((3-1)/2 + 3/3 + (3-1)/2) / 3 * 25 = (1.0 + 1.0 + 1.0) / 3 * 25 = 25.0/25
- Trust: (2/3 + 1/3 + 0/3) / 3 * 25 = 8.3/25
- Expertise: (3/3 + 2/3 + 3/3) / 3 * 25 = (1.0 + 0.667 + 1.0) / 3 * 25 = 22.2/25
- Readability: (0/1 + 2/3 + (3-1)/2 + (3-1)/2) / 4 * 25 = (0 + 0.667 + 1.0 + 1.0) / 4 * 25 = 16.7/25
- TUB LINERS TOTAL: 72.2/100 (Competitive tier - this is the strongest page)
3.4 FAQ Page (https://www.turnkeybathremodel.com/faq/)
| Feature | Dimension | Score | Notes |
|---|---|---|---|
| headings_level | Structural | 1 | Zero H2s or H3s - FAQ content is likely JS-rendered |
| list_density | Structural | 2 | 11 lists |
| length_level | Structural | 3 | ~4,758 words |
| statistics_level | Trust | 2 | $3,000-$15,000 range, "2-3 day" timelines, specific |
| cite_sources_level | Trust | 1 | No third-party citations |
| quotation_level | Trust | 0 | None |
| technical_terms_level | Expertise | 2 | Remodel terminology present |
| unique_info_level | Expertise | 2 | Specific pricing, warranty terms are original claims |
| keyword_focus_level | Expertise | 2 | On-topic for FAQs |
| has_intro_summary | Readability | 0 | WP Rocket JS first |
| authoritative_level | Readability | 2 | License numbers mentioned |
| fluency_level | Readability | 3 | Clear and professional |
| easy_to_understand_level | Readability | 3 | Good Q&A format for laypersons |
Scoring:
- Structural: ((1-1)/2 + 2/3 + (3-1)/2) / 3 * 25 = (0 + 0.667 + 1.0) / 3 * 25 = 13.9/25
- Trust: (2/3 + 1/3 + 0/3) / 3 * 25 = 8.3/25
- Expertise: (2/3 + 2/3 + 2/3) / 3 * 25 = 16.7/25
- Readability: (0/1 + 2/3 + (3-1)/2 + (3-1)/2) / 4 * 25 = 16.7/25
- FAQ PAGE TOTAL: 55.6/100 (Moderate tier)
FeatGEO Summary Table
| Page | Structural | Trust | Expertise | Readability | Total | Tier |
|---|---|---|---|---|---|---|
| Homepage | 22.2/25 | 8.3/25 | 13.9/25 | 16.7/25 | 61.1/100 | Competitive |
| Showers | 13.9/25 | 5.6/25 | 11.1/25 | 11.5/25 | 42.1/100 | Moderate |
| Tub Liners | 25.0/25 | 8.3/25 | 22.2/25 | 16.7/25 | 72.2/100 | Competitive |
| FAQ | 13.9/25 | 8.3/25 | 16.7/25 | 16.7/25 | 55.6/100 | Moderate |
| Average | 18.8 | 7.6 | 16.0 | 15.4 | 57.7/100 | Moderate |
Pattern reading: Trust dimension (7.6/25 average) is the universal ceiling. Every page fails on quotation_level (0 across all pages) and cite_sources_level (1 across all pages). No third-party sourcing, no expert quotes. This is the single structural reason the site cannot be cited confidently by AI platforms - there is nothing to verify against.
The has_intro_summary failure (0 on all pages) is directly caused by WP Rocket injecting a JS block as the first content in every HTML document. AI crawlers parsing the HTML source encounter 150+ words of JavaScript before the first sentence of human-readable content.
Section 4: Schema as AI Fuel
Evaluated against schema-stack AI Discoverability Checklist and Merlino Schema IP
Present and correct:
- JSON-LD format used (not microdata/RDFa) - PASS
- LocalBusiness + HomeAndConstructionBusiness dual typing - PASS
- Address, geo coordinates, phone, hours all present - PASS
- hasCredential array with license numbers - PASS (strong E-E-A-T signal)
- hasOfferCatalog with WarrantyPromise - PASS (distinctive, citeable)
- areaServed array with all 14 service cities - PASS
- priceRange: "$" present - PASS (minimal signal)
- FAQPage schema exists on /faq/ - PASS
- Service schema on service pages - PASS
- sameAs array (5 links: LinkedIn, Twitter, Facebook, Instagram, YouTube) - PASS on count
Gaps and violations:
Finding P0 - CRITICAL: @id uses page-URL anchor, not GMB CID
The LocalBusiness @id is set to https://www.turnkeybathremodel.com/#organization. Per Merlino Schema IP (Daryl Osborne method), @id must reference the GMB CID link (format: https://maps.google.com/?cid=XXXXXXXX) to connect the schema entity to the Google Maps/Knowledge Graph entity. A page-URL anchor creates a schema entity that is isolated from the GBP entity. This reduces AI confidence in the entity's real-world existence.
Finding P1 - HIGH: knowsAbout absent on Organization schema
No knowsAbout array present on any schema block across all 4 pages audited. The ai-llm-seo skill and schema-stack AI Discoverability Checklist both rate this as a strong GEO signal. Example of what is missing:
"knowsAbout": [
"bathroom remodeling",
"tub-to-shower conversion",
"walk-in shower installation",
"tub liner installation",
"bathroom accessibility modification"
]
Without this, AI systems have no explicit topic authority signal from the schema layer.
Finding P1 - HIGH: speakable absent on all pages
No speakable property on any content page. Speakable with CSS selectors pointing to the answer sections signals which passages are best candidates for AI citation or voice extraction. Missing across all pages.
Finding P1 - HIGH: sameAs array missing authoritative non-social entries Current sameAs links: LinkedIn, Twitter, Facebook, Instagram, YouTube (all social media). Missing entries that carry entity authority weight:
- No Wikidata URL (entity may not exist in Wikidata - unverified)
- No Wikipedia article URL
- No BBB profile URL
- No Angi/HomeAdvisor profile URL
- No Google Business Profile URL (CID format) These are the sources AI platforms cross-reference to verify entity authenticity. Social media alone is insufficient.
Finding P2 - MEDIUM: WebSite schema has empty description field
Schema block 1 on homepage: "description": "" - empty string. This is actively worse than omitting the field because it signals the schema was auto-generated without a content pass.
Finding P1 - HIGH: mainEntityOfPage absent
Per Merlino Schema IP (Daryl Osborne), mainEntityOfPage should be set to the GMB CID link on the LocalBusiness schema. Not present on any page. This property links the schema entity explicitly to its Knowledge Graph anchor.
Finding P2 - MEDIUM: additionalType and disambiguatingDescription absent
Merlino Schema IP specifies these for entity disambiguation. Neither present. additionalType with Wikipedia category URLs and disambiguatingDescription would help AI systems distinguish TurnKey Bath Remodel from the sister domain turnkeybathroomrenovations.com (a live disambiguation problem given the Phase 0 data showing the sister domain ranks for the same queries).
Note on AggregateRating: No self-generated AggregateRating found on any schema block. This is correct per Merlino Schema IP rule #1. Do not add it.
Schema AI Discoverability Score: 14/24 (3 pts per checklist item, 8 items)
Section 5: AI Citation Status
Method: Web searches for 3 target queries in answer-engine-visible sources. Direct AI platform testing not available in this environment. Citation presence/absence inferred from SERP signals.
Query 1: "best bathroom remodeler new orleans"
SERP result sources: Zintex blog, HomeAdvisor, Angi, Yelp, Houzz, EZ Baths own site, Homeyou, Thumbtack, HomeGuide
TurnKey Bath Remodel presence: Not in top 10 SERP results for this query. AI systems building "best of" answers for this query will draw from Yelp, Angi, HomeAdvisor, Houzz, and articles like the Zintex post. TurnKey is not being cited in this answer surface.
Competitors cited in AI-style answer surfaces: EZ Baths (own domain appears, is cited in answer), Bath Fitter (has Yelp profile, Angi), Bearded Lady Builders, Zintex.
Query 2: "tub to shower conversion new orleans"
SERP result sources: BathCutNola, BathWraps, NewOrleansWalkInShowers, Bath Fitter, Bath Planet, Crown Custom Bathrooms, Homeyou, Big Easy Bathrooms, TurnKey Bathroom Renovations (sister domain), Bathroom Remodel New Orleans
TurnKey Bath Remodel presence: Not present. The sister domain turnkeybathroomrenovations.com appears at position 9 for this query (confirmed by search results). The main domain is absent from this query entirely. An AI system asked about tub-to-shower conversions in New Orleans would cite at least 5-6 of these sources before reaching TurnKey Bath Remodel.
Query 3: "bathroom remodel cost new orleans"
SERP result sources: Homeyou, Manta, TurnKey Bath Remodel cost blog post, Zintex, New Orleans Bathrooms, HomeBlue, Marrero Bathrooms, Sweeney Restoration, Grace Home Construction
TurnKey Bath Remodel presence: POSITIVE - the blog post at https://www.turnkeybathremodel.com/how-much-does-a-bathroom-remodel-cost-in-new-orleans/ surfaces at position 3 in this query. This is the one query where TurnKey has a citation-ready footprint. The cost page represents the highest AI citation potential in the current site.
Query 4: "TurnKey Bath Remodel" brand probe
Presence: Strong brand footprint confirmed. Birdeye (2 profiles: 90 and 92 reviews), Facebook, DigitalJournal (press release), Chamber of Commerce, the main site, and the about page all surface. The entity is known. The brand probe does not reveal confusion with the sister domain at this exact query.
Citation Status Summary
| Query | TurnKey Presence | Competitors Present | Notes |
|---|---|---|---|
| "best bathroom remodeler new orleans" | ABSENT | EZ Baths, Bath Fitter, Zintex | Not in Yelp/Angi/HomeAdvisor list |
| "tub to shower conversion new orleans" | ABSENT | BathWraps, Bath Fitter, Big Easy, sister domain | Sister domain present but main domain absent |
| "bathroom remodel cost new orleans" | PRESENT (pos 3) | Homeyou, Manta | Cost blog ranks well |
| "TurnKey Bath Remodel" brand | STRONG | N/A | 5+ entity surfaces confirmed |
Section 6: E-E-A-T + CORE-EEAT GEO Self-Check
Applying aaron-geo-content-optimizer CORE-EEAT items C02, C09, O03, O05, E01 to the audited pages:
| Check | Status | Finding |
|---|---|---|
| C02: Clear definitions / direct answers in first 150 words | FAIL | WP Rocket JS block is first content in HTML on all pages |
| C04: Quotable standalone statements | WARN | Tub liners page has quotable pricing range; other pages have none |
| C09: Factual density (5+ data points) | WARN | Tub liners page passes; homepage and showers page fail |
| O02: Q&A format used | PASS | FAQ page exists with FAQPage schema |
| O03: Structured lists/tables for data | WARN | Homepage and tub liners have lists; showers and FAQ pages have heading gaps |
| O05: Expert / source signals visible | FAIL | No named expert, no third-party citations on any page |
| O06: Content freshness signals | FAIL | No publication dates, no "Last updated" in visible content |
| R01: Schema structured data present | PASS | JSON-LD present on all pages |
| R02: Schema matches visible content | WARN | FAQPage schema questions match what's in llms.txt but heading structure is missing from showers/FAQ pages |
| R04: No promotional language blocking extraction | WARN | "Act Now" / CTA language present but not dominant |
| R07: Machine-readable NAP | PASS | Schema address complete |
| E01: Named entity or author with credentials visible | FAIL | No named person/owner on any page; only license numbers and "25 years" as credential signals |
| Exp10: Original data or insights | WARN | Cost blog post has original content; core service pages generic |
| Ept08: Disambiguation from similar entities | FAIL | No disambiguating content separating TurnKey Bath Remodel from TurnKey Bathroom Renovations (sister domain) |
CORE-EEAT verdict: 3 Pass / 7 Warn / 4 Fail. The site is partially structured for AI extraction but fails the trust and authority dimensions that determine whether an AI system will use it as a citation source.
Section 7: Entity Clarity + Disambiguation
Finding P0 - CRITICAL: Sister domain creates entity confusion
Phase 0 data confirmed turnkeybathroomrenovations.com ranks positions 8 and 11 for "walk in tub new orleans" and appears in the "tub to shower conversion new orleans" SERP. Both domains share the word "TurnKey" in the business name and operate in the same geo/service niche. From an AI perspective, this creates entity ambiguity: which "TurnKey" is the authoritative entity for bathroom remodeling in New Orleans?
AI systems resolve disambiguation by looking for differentiating signals. Currently neither domain has these. The main domain should contain explicit disambiguation:
disambiguatingDescriptionin schema: "TurnKey Bath Remodel (www.turnkeybathremodel.com) is a licensed bathroom remodeling contractor in New Orleans, LA (Residential License #890459), distinct from TurnKey Bathroom Renovations (turnkeybathroomrenovations.com)."- A
/about/page passage that names the ownership, founding year, and distinguishes the entity by license number - Explicit cross-reference in the llms.txt
Finding P1 - HIGH: No named person/owner associated with entity
The entity "TurnKey Bath Remodel" has no named founder, owner, or key person visible anywhere in the audited pages or schema. AI systems building trust profiles look for a real person behind a local business. The Birdeye profiles surface reviews but no owner name. The About page (https://www.turnkeybathremodel.com/about/) was not crawled in this audit pass; it should be reviewed separately. If it contains named persons, those should be pulled into schema via Person + employee/founder properties.
Finding P2 - MEDIUM: Birdeye as primary review surface (not first-party)
The most visible review aggregator for TurnKey Bath Remodel is Birdeye (2 separate profiles, 90 and 92 reviews respectively), not Google Reviews or Yelp. Two Birdeye profiles for the same business is unusual and may indicate a profile management issue. AI systems pulling review data from Birdeye may encounter inconsistency between the two profiles. Yelp presence was not confirmed in the SERP results for brand probe queries, which is a gap given Yelp's strong citation weight in AI systems.
Section 8: AI Bot Demand - Server Log Requirement
Bot-404 demand mining requires nginx/Cloudflare access logs from WPX Cloud hosting.
This step is NOT available without client-provided server logs. Contact TurnKey Bath Remodel for:
- nginx access logs filtered for 404 responses
- Or WPX Cloud analytics export
- Filter command:
grep "GPTBot\|PerplexityBot\|ClaudeBot\|anthropic-ai" access.log | grep " 404 "
Each 404 from an AI bot represents a content gap that the AI system wanted to cite but found missing. For a bathroom remodeler, typical AI-demand 404s include cost estimator pages, comparison pages (e.g., "tub liner vs full replacement"), and accessibility/ADA-specific content. Given the Phase 0 data showing the tub liner blog post as the highest-traffic page, AI bots may be crawling URLs like /bathtub-liner-vs-replacement/ or /how-long-does-a-tub-liner-last/ and hitting 404s. These are high-value content creation targets.
Status: Requires client action. Flag as OPEN.
Section 9: Prioritized Fix List (by impact on AI citation probability)
Tier 1: Immediate (address before any content work)
| Priority | Finding | Fix | Estimated AI Lift |
|---|---|---|---|
| P0 | llms.txt staging URL contamination | Find-and-replace all vm34.wprise.ai with www.turnkeybathremodel.com in llms.txt | High - corrects active misinformation |
| P0 | @id not pointing to GMB CID | Get GMB CID, update LocalBusiness @id and add mainEntityOfPage pointing to CID link | High - connects schema entity to KG entity |
| P0 | WP Rocket JS block as first HTML content | Configure WP Rocket to not inject IE-compat block above above-fold content, or ensure the actual first content block is server-rendered before the JS block | High - unblocks has_intro_summary for all pages |
Tier 2: Schema and Entity Authority (week 1-2)
| Priority | Finding | Fix | Estimated AI Lift |
|---|---|---|---|
| P1 | knowsAbout absent | Add 5-item knowsAbout array to Organization schema | Medium-High |
| P1 | speakable absent | Add speakable CSS selectors to homepage, tub liners, and cost pages | Medium |
| P1 | sameAs missing authority entries | Add BBB, Angi, Birdeye (choose 1), Wikidata (create entry first if needed), GBP CID URL | Medium-High |
| P1 | disambiguatingDescription absent | Add disambiguatingDescription to schema distinguishing from sister domain | Medium - prevents entity confusion in AI |
| P1 | No named owner/person in schema | Add Person schema for owner/founder, link via employee or founder property | Medium |
Tier 3: Content (month 1)
| Priority | Finding | Fix | Estimated AI Lift |
|---|---|---|---|
| P1 | Zero quotation_level across all pages | Add 2-3 customer testimonial quotes with attribution to homepage and key service pages | Medium |
| P1 | Zero cite_sources_level across all pages | Add verifiable third-party citations to cost claims ("According to [HomeAdvisor/Angi], average bathroom remodel in New Orleans costs...") | Medium-High |
| P1 | Showers page has no H2/H3 structure | Add H2/H3 hierarchy to showers page - this page has zero heading markup which severely limits AI extraction | Medium |
| P2 | FAQ page has no H2/H3 structure | Add heading structure to FAQ page questions | Medium |
| P2 | Entity disambiguation page gap | Create a page or section that explicitly distinguishes TurnKey Bath Remodel from TurnKey Bathroom Renovations | Medium - addresses sister domain confusion |
| P1 | No content targeting "best bathroom remodeler new orleans" | This query surfaces Yelp, Angi, Houzz, and competitor blogs. Create an FAQ/comparison page targeting evaluation-stage queries. | Medium |
Competitor Citation Comparison
| Competitor | AI Citation Signals | Why They Outperform |
|---|---|---|
| EZ Baths (ezbaths.com) | Own domain in SERP, Yelp listed, Angi listed | Multi-platform presence, Yelp profile indexed |
| Bath Fitter (bathfitter.com) | National brand authority, Yelp/Angi/own site | National entity authority cascades to local franchise |
| Big Easy Bathrooms (bigeasybathrooms.com) | SERP presence for "tub to shower conversion" | Dedicated conversion page with city targeting |
| TurnKey Bathroom Renovations (sister domain) | Ranks 8/11 for "walk in tub new orleans", present in "tub to shower" | Stronger GBP signals or dedicated page targeting |
| neworleanswalkinshowers.com | Exact-match domain for query, citation-ready | Exact-match domain captures AI query intent |
Key insight from competitor comparison: The entities being cited for NOLA bathroom queries are primarily directory aggregators (Yelp, Angi, HomeAdvisor, Houzz), national brands with local pages (Bath Fitter), and exact-match domain operators (neworleanswalkinshowers.com, bathcutnola.com). TurnKey Bath Remodel's path to citation is through directory presence optimization AND content that answers queries these sites don't answer (cost-specific, warranty-specific, comparison content).
Honest Measurement Framing
Per arXiv:2606.04362 (Pradeep et al. 2025), the measured causal lift from AEO optimization is 1.82x citation probability compared to non-optimized pages. The tub liners page at 72.2/100 is already in the Competitive tier and represents the site's best citation asset. Implementing the Tier 1 fixes (llms.txt, @id GMB, WP Rocket) plus the trust dimension improvements (citations, quotations) would move the average site score from 57.7 to an estimated 68-72, which is the range where AI systems begin selecting TurnKey Bath Remodel for queries like "bathroom remodel cost new orleans" and "tub liner installation new orleans."
Scored Summary Table
| Domain | Score | Status |
|---|---|---|
| llms.txt presence | 8/10 | Exists but staging URL contamination is a P0 failure |
| robots.txt AI access | 8/10 | Permissive, no blocks - minor improvement possible via explicit allowances |
| FeatGEO average | 57.7/100 | Moderate tier; tub liners page best at 72.2 |
| Schema AI signals | 14/24 | knowsAbout, speakable, GMB @id, mainEntityOfPage all missing |
| AI citation presence | 1/4 queries | Present only on cost query; absent on 3 revenue queries |
| Entity clarity | 4/10 | Sister domain creates ambiguity; no named person |
| Trust dimension (quotes/citations) | 2/10 | Universal gap across all pages; zero quotation_level on all |
| E-E-A-T CORE GEO | 3P/7W/4F | 4 critical failures including no named author, no O06 freshness |
Overall AI Visibility Score: 38/100
Tier: Weak (score below 40) - AI systems unlikely to select this content under current conditions
Scoring breakdown:
- llms.txt: 8pts (present, functional, but staging URL is active error)
- robots.txt: 8pts (permissive)
- FeatGEO average (57.7/100 scaled to 15pts max): 9pts
- Schema completeness (14/24 scaled to 10pts max): 6pts
- Citation presence (1/4 queries = 25%): 3pts
- Entity clarity (4/10 scaled to 4pts max): 2pts
- Trust/E-E-A-T: 2pts
Path to 60+ (Competitive tier): Fix the P0 items (llms.txt URLs, @id GMB CID, WP Rocket rendering), add knowsAbout + sameAs authority entries, add 3 customer testimonial quotes with attribution, add 2 third-party cost citations. These 7 changes are achievable in 1-2 weeks and would move the score to approximately 58-65.
Path to 75+ (Citation-Ready tier): All of the above plus named person schema, disambiguation content for sister domain, speakable property, Wikidata entity creation, and structured content passes on the showers and FAQ pages.
References
- FeatGEO rubric: arXiv:2606.04362 (Pradeep et al. 2025) - "Answer Engine Optimization"
- AEO causal lift: 1.82x (same paper, honest measurement - not 5-6x vendor claims)
- Merlino Schema IP:
E:/Magister Digital AI/seo-schema/merlino-schema-ip.md(Daryl Osborne @id/GMB CID method) - ai-llm-seo skill:
~/.claude/skills/ai-llm-seo/SKILL.md(quotable statement templates, per-engine citation preferences) - aaron-geo-content-optimizer:
~/.claude/skills/aaron-geo-content-optimizer/SKILL.md(CORE-EEAT GEO checks) - schema-stack skill:
~/.claude/skills/schema-stack/SKILL.md(AI discoverability checklist) - Phase 0 verified data:
F:/Projects/clients/turnkey-bath-audit/CONTEXT.md - GSC/GA: NOT available (not our property) - all organic traffic data from Phase 0 DataForSEO pull only
- Server logs for bot-404 demand mining: NOT available - requires client action (WPX Cloud nginx logs)
Audit C: Backlink Profile — TurnKey Bath Remodel
Auditor: Linx (Link Building and Domain Lead) Date: 2026-06-11 Target: https://www.turnkeybathremodel.com/ Method sources: DataForSEO Backlinks API (live pull 2026-06-11), merlino-sops links SOPs, local-link-builder skill, link-building-router doctrine, Phase 0 verified data from CONTEXT.md
1. Executive Baseline
| Metric | TurnKey Bath Remodel | rebath.com | ezbaths.com | bathfitter.com |
|---|---|---|---|---|
| Domain Rank | 233/1000 | 330/1000 | 211/1000 | 437/1000 |
| Total Backlinks | 699 | 30,428 | 504 | 211,732 |
| Referring Domains | 188 | 2,711 | 330 | 4,523 |
| Referring Main Domains | 157 | 2,378 | 323 | 3,214 |
| Broken Backlinks | 691 (98.9%) | 3 (0.01%) | 9 (1.8%) | 29,342 (13.8%) |
| Spam Score | 13 | 15 | 10 | 1 |
| Dofollow Ratio | 96.0% | ~72% est. | ~76% est. | ~94% est. |
| First Seen | 2024-09-07 | N/A | N/A | N/A |
Source: DataForSEO backlinks/summary/live endpoint, pulled 2026-06-11.
The referring domain gap vs the most comparable competitor (ezbaths.com, 330 RDs) is 142 domains. Against rebath.com it is 2,523 domains. TurnKey's 157 main referring domains would need to reach approximately 323 to match the nearest competitor with any national presence.
2. The 691 Broken Backlink Finding: Root Cause
P0 severity. Phase 0 data flagged 691 broken backlinks (94% of total). Live HTTP checks run 2026-06-11 confirm the destination pages currently return 200:
https://www.turnkeybathremodel.com/- 200 OKhttps://www.turnkeybathremodel.com/bathtubs/bathtubs-replacement/- 200 OKhttps://www.turnkeybathremodel.com/bathtubs/tub-liners/- 200 OKhttps://www.turnkeybathremodel.com/bathtubs/walk-in-tubs/- 200 OKhttps://www.turnkeybathremodel.com/contact/- 200 OK
The broken label in DataForSEO reflects the state when their crawlers last indexed those links, NOT current server state. The redirect chain analysis reveals the actual cause:
http://turnkeybathremodel.com/redirects 301 tohttps://www.turnkeybathremodel.com/http://www.turnkeybathremodel.com/redirects 301 tohttps://www.turnkeybathremodel.com/https://turnkeybathremodel.com/redirects 301 tohttps://www.turnkeybathremodel.com/
Root cause: Press release syndicators pointed links to non-www or http variants. DataForSEO recorded a 301 (not a 200 at final destination) as "broken" during their crawl pass, or the 301 chain was uncompleted at time of crawl. The equity flowing through these 301 redirects is NOT fully consolidated because the press release links target both https://www.turnkeybathremodel.com/ (228 broken links) and https://turnkeybathremodel.com/ (35 broken links) as destination URLs.
Broken URL distribution (500-link sample):
| Broken Destination URL | Link Count |
|---|---|
https://www.turnkeybathremodel.com/ | 228 |
https://www.turnkeybathremodel.com/bathtubs/bathtubs-replacement/ | 138 |
https://www.turnkeybathremodel.com/bathtubs/tub-liners/ | 40 |
https://www.turnkeybathremodel.com/bathtubs/walk-in-tubs/ | 40 |
https://turnkeybathremodel.com/ | 35 |
https://www.turnkeybathremodel.com/contact/ | 14 |
| GBP UTM variants | 3 |
Equity reclaim opportunity: Of the 691 broken links, 500+ can be resolved by: (1) ensuring all redirect variants resolve cleanly with a single-hop 301, and (2) reaching out to the press release syndication network to update link targets to canonical URLs. This does NOT require new link building. It is recovery of existing equity that is already leaking.
Estimated reclaimable equity: 691 links across 153 unique source domains. Even at 50% successful crawl re-verification, this represents resolving the DataForSEO broken flag on approximately 345 links and consolidating whatever PageRank they carry. Since 96% of links are dofollow, the equity at stake is meaningful.
Fix: Audit the WPX Cloud server's redirect configuration to ensure single-hop canonical redirects (no chains). Submit canonical URLs via Google Search Console URL Inspection after fixing (GSC access not currently available - flag this to client). Contact the press release distribution service to update link targets.
3. Press Release Footprint Analysis
P0 severity. Platform type distribution from DataForSEO:
| Platform Type | Link Count |
|---|---|
| organization | 434 |
| blogs | 176 |
| cms | 174 |
| unknown | 106 |
| news | 103 |
| ecommerce | 21 |
The 434 "organization" links + 103 "news" links = 537 links (77% of total) coming from press release syndication infrastructure. Top referring domains confirm this:
xpr-gannett.com- rank 166, 138 backlinks (ALL broken), spam score 22. This is Gannett's press release wire.marketminute.com- rank 115, 39 backlinks (ALL broken), spam score 10. Press release aggregator.adamtorkildson.com- rank 66, 8 backlinks (ALL broken). PR syndicator.- Multiple
.mybluehost.mesubdomains with identical anchor patterns.
Critical finding: The press release campaign generated a near-identical anchor text footprint across hundreds of referring domains. The anchor pattern "TurnKey Bath Remodel centers on bathroom remodeling" (138 occurrences) and "TurnKey Bath Remodel also offers walk-in tub installations" (40 occurrences) are boilerplate press release body text, not editorial anchors. Google's spam systems can identify this pattern as a press release link scheme (Google's link spam policies explicitly list "press releases with keyword-rich anchor text" as a violation). The fact that Google has not penalized the site yet does not mean it is safe.
Evidence of automated/templated link building: 10 anchors contain explicit spam text:
- "OUR TELEGRAM CHANEL https://t.me/s/quarterlinks25" (8 links)
- "JOIN OUR TELEGRAM https://t.me/s/darksidelinks" (2 links)
- Anchor text referencing "SeoBoost.agency" and "BuySeoLink.com" as SEO service spam
These indicate either link spam injection on the referring domains or that the press release distribution network has been infiltrated by link spammers. Both scenarios increase penalty risk.
Comparison: rebath.com has 2,711 referring domains with zero press release dependency at this concentration. bathfitter.com has 4,523 referring domains. Neither shows this press-release-dominant pattern.
Fix: Do NOT build more press releases until the existing footprint is audited. The current PR links should be moved toward editorial link diversification. Any new press releases should use naked URL or branded anchors only (never service keyword anchors in press release body text per Google's guidelines).
4. Anchor Text Analysis and Over-Optimization
P1 severity. Full anchor distribution across 699 reported backlinks:
| Anchor Category | Count | % of Total |
|---|---|---|
| Brand ("TurnKey Bath Remodel" + variants) | 648 | 92.7% |
| Exact/partial match service keywords | 35 | 5.0% |
| Generic ("Website", "Visit Website") | 6 | 0.9% |
| Spammy/Toxic (Telegram, SEO spam text) | 10 | 1.4% |
| Naked URL | 0 | 0% |
At face value, 92.7% branded looks acceptable since brand anchors are the largest healthy category. However, the "brand" anchors here are not organic brand mentions. They are press release boilerplate sentences: "TurnKey Bath Remodel centers on bathroom remodeling" is technically a brand anchor but is also a long-form artificial anchor with embedded service language. This matters because Google evaluates context, not just the anchor string.
What healthy anchor distribution looks like (per local-link-builder SOP, merlino-sops links category):
- Brand: 30-40%
- Brand + keyword: 10-15%
- Exact match: 5-10% MAX
- Generic: 15-20%
- Naked URL: 10-15%
- LSI/Related: 5-10%
TurnKey's profile has zero naked URL links, near-zero generic links, and 92.7% concentrated in artificial brand sentences from a single campaign. This is an inverted distribution for any organic link profile.
Telegram spam anchors (10 links) also add low-trust signal. These should be disavowed.
Fix: Diversify anchor text through editorial link acquisition (guest posts, citations, resource pages). Target reaching 20-30% generic and naked URL anchors within 12 months. Disavow the Telegram spam links immediately.
5. Dofollow Ratio
P2 severity (positive finding, with caveats). 96% dofollow ratio (671 of 699 referring pages are dofollow).
referring_pages_nofollow: 28referring_links_attributes nofollow: 28- Calculated dofollow: 671 (96%)
This exceeds the healthy 60-80% range from the link-building-router SOP. An unusually high dofollow ratio can itself be a signal, since organic link profiles include naturally nofollowed social media, forums, and directory links. The 96% rate reflects that the press release syndication network predominantly delivers dofollow links.
This is contextually "good" (equity passes through) but also "suspicious" (no natural nofollowed links from genuine mentions on social platforms, forum activity, etc.). The absence of nofollow links is itself a footprint signal.
ezbaths.com comparison: 119 nofollow out of ~504 = approximately 24% nofollow, which is more natural. bathfitter.com: 12,809 nofollow out of 211,732 = approximately 6% nofollow. The category leader (rebath.com) has 8,407 nofollow out of 30,428 = 28% nofollow.
Fix: Build genuine nofollow-bearing links (social profiles, GBP, Yelp, BBB, Angi, directories) to normalize the dofollow ratio toward 75-80%. This is a citation-building task.
6. Referring Domain Quality Tiers
P1 severity. Domain rank distribution of top referring domains shows heavy concentration in low-to-mid tier domains:
Tier 1 (rank 200+, meaningful authority): 0 domains Tier 2 (rank 100-199): 1 domain (xpr-gannett.com at 166, spam score 22, ALL 138 links broken) Tier 3 (rank 50-99): 9 domains (marketminute.com, mybluehost.me subdomains, xpr.media, allpodcasts.com, altiusdirectory.com, agree.net, streetregister.com, adamtorkildson.com, blerrp.com) Tier 4 (rank below 50): Majority of remaining 179 referring domains
Zero genuinely high-authority editorial referring domains exist. The highest-rank referring domain (xpr-gannett.com, rank 166) has a spam score of 22 and all 138 of its backlinks to TurnKey are broken. The second highest (marketminute.com, rank 115) has a spam score of 10 with all 39 links broken.
Notable toxic signals:
pierrecountry.com: rank 36, spam score 40, 6 broken linksthedam.fm: rank 36, spam score 30, 6 broken linksfriendhood.net(lifestyle subdomain): rank 60, spam score 15, 5 broken linkscelebhomes.net: rank 51, spam score 25, 4 broken linksrogueimc.org: rank 43, spam score 14, 7 broken links
Fix: These high-spam-score domains should be reviewed for disavowal. Domains with spam score 25+ and no topical relevance to bathroom remodeling are candidates. Create a disavow file targeting at minimum: pierrecountry.com, thedam.fm, celebhomes.net, and the Telegram-anchor spam domains.
7. Backlink Gap vs Competitors
P0 severity. The backlink gap between TurnKey (188 RDs) and the three benchmark competitors:
| Competitor | Referring Domains | Gap vs TurnKey |
|---|---|---|
| ezbaths.com | 330 | +142 |
| rebath.com | 2,711 | +2,523 |
| bathfitter.com | 4,523 | +4,335 |
Source: DataForSEO backlinks/summary/live for all four domains, 2026-06-11.
The DataForSEO backlinks/competitors endpoint was called but returned domain field empty (API response artifact). The domain-level gap data above from summary endpoints is authoritative.
ezbaths.com is the realistic near-term benchmark (similar business model, regional). Its 330 referring domains come from genuine citation sources (intently.co, callupcontact.com, middletownlifemagazine.com, costguide.com) rather than press release infrastructure.
TurnKey needs +142 referring domains of genuine quality to match the minimum viable competitor. At a build rate of 5 referring domains per month (per merlino link velocity doctrine: "5/week is natural, 50/week is a footprint"), that is a 28-month gap against just ezbaths.com.
The fastest and cleanest path: redirect-reclaim (consolidate the 691 broken links, which represent 153 existing referring domains that are already linking), then local citation building to add 50-75 verified directory/citation sources, then editorial link acquisition.
8. Local Link Acquisition Targets (New Orleans Bath/Home Services)
P1 severity (opportunity). Zero local New Orleans editorial links exist in the current profile. Based on merlino-sops links category (local-link-builder SOP) and citation-link-building SOP, the following local link targets are available:
Tier 1 Citations (not yet confirmed, status unverifiable without GSC access):
- Google Business Profile (already has GBP per Phase 0, but weak prominence - build reviews + post signals)
- Yelp New Orleans
- BBB Greater New Orleans
- Angi (formerly Angie's List)
- Houzz (home improvement - DR 90+, highly relevant)
- HomeAdvisor
- Thumbtack
Tier 2 Local/Regional:
- Greater New Orleans Inc. (regional business directory)
- New Orleans Chamber of Commerce
- Louisiana Contractors Directory (state license board listing)
- Baton Rouge Area Chamber (second service market)
- HomeAdvisor Pro
Tier 3 Niche-Relevant:
- ADA bathroom remodel directories (accessibility angle for walk-in tubs)
- Senior living advisor sites (walk-in tubs demographic match)
- Home remodel cost guide sites (costguide.com already links to ezbaths.com)
Outreach opportunities:
- New Orleans home improvement bloggers
- Louisiana real estate blogs (bathroom remodel ROI angle)
- Local news home improvement columns (Times-Picayune / NOLA.com)
Priority action: The citation-link-building SOP from merlino-sops links category specifies submitting to the 10 Tier 1 citations within the first two weeks of any campaign. None of these exist in the current referring domain list, confirming they have not been pursued.
9. Recovery Plan (Sequenced)
Priority order per Linx doctrine: redirect-reclaim first, then build.
Phase 1: Redirect-Reclaim (Weeks 1-2, zero cost)
- Audit WPX Cloud redirect configuration for
turnkeybathremodel.comto ensure all HTTP variants, non-www variants, and UTM URLs resolve in a single-hop 301 to the canonicalhttps://www.turnkeybathremodel.com/equivalents. - Contact the press release distribution service used in the original campaign and request URL canonicalization for all syndicated articles. Target: update 691 broken link targets to canonical URLs.
- Submit canonical homepage and key pages to DataForSEO re-crawl (or wait for natural re-crawl cycle, approximately 30-60 days). This should flip 691 "broken" to "live" in the next audit.
- Expected outcome: Referring domain count stays at 188, but broken link count drops from 691 to near-zero. DataForSEO domain rank should improve from 233 as broken link penalty factor removes.
Phase 2: Disavow Toxic Links (Week 2-3)
Build a Google Search Console disavow file targeting:
- All referring domains with spam score 25+:
pierrecountry.com,thedam.fm,celebhomes.net - Telegram spam link domains: the domains linking with "TELEGRAM CHANEL quarterlinks25" and "darksidelinks" anchors
- Note: GSC access is not currently available. Flag this to client. Create disavow file and hold for when access is established.
Phase 3: Citation Building (Months 1-3)
Execute the merlino-sops citation-link-building SOP. Priority order:
- Google Business Profile optimization (already exists, reinforce with reviews + posts)
- Yelp, BBB, Angi, HomeAdvisor (Tier 1 citations)
- Houzz (highest DR, most relevant niche - this alone is worth 1-2 points of domain rank improvement)
- Louisiana state contractor directories
- Local chamber of commerce (New Orleans + Baton Rouge markets)
Target: +50-75 referring domains of genuine citation quality within 90 days. This closes half the gap to ezbaths.com and normalizes the dofollow ratio from 96% toward 80%.
Phase 4: Editorial Link Acquisition (Months 3-12)
Per outreach-prospecting + local-link-builder SOPs:
- Guest posts on home improvement blogs (target DR 20-40, topically relevant)
- HARO responses in home improvement / senior living / accessibility categories
- Local news outreach (1-day bath remodels are genuinely newsworthy in local context)
- 1-2 press releases per quarter MAXIMUM, using branded/naked URL anchors only (not keyword-stuffed body text)
- Velocity: 5 new referring domains per month maximum. Current state is artificially inflated by the PR campaign; build naturally.
Phase 5: Cloud Stack + Entity Signals (Month 2, parallel)
Per cloud-stack SOP: Build a Google property stack (Google Site + Drive + Docs + Slides) for "bathroom remodel New Orleans" to reinforce entity signals. This is free and indexable within 2-4 weeks. Costs zero and is impossible for Google to penalize since it uses their own properties.
10. Scored Summary Table
| Finding | Severity | Evidence | Method Rule | Fix |
|---|---|---|---|---|
| 691 broken backlinks (98.9% of total) are redirect-chain artifacts, not true 404s | P0 | DataForSEO 691 broken count vs live HTTP 200 on all destination pages; 228 links to www-homepage, 35 to non-www homepage | Link velocity doctrine: broken links = zero equity transfer | Fix canonical redirects; contact PR syndicator to update URLs; re-crawl |
| Press release footprint: 77% of all links from organization/news platforms, identical boilerplate anchors across 153 domains | P0 | 434 "organization" + 103 "news" platform links; anchor "TurnKey Bath Remodel centers on bathroom remodeling" appears 138x across multiple unrelated domains | Google link spam policy: press releases with keyword-rich anchor text are explicitly a violation risk | No more keyword-anchor PR links; diversify to editorial; disavow if penalized |
| Telegram/SEO spam anchors injected into profile (10 links) | P0 | Anchors: "OUR TELEGRAM CHANEL https://t.me/s/quarterlinks25" (8), "darksidelinks" (2), SeoBoost/BuySeoLink spam text (2) | Link audit doctrine: toxic links poison the network | Disavow these domains immediately |
| Zero local New Orleans editorial links | P0 | 0 New Orleans or Louisiana city/business sites in referring domain list | local-link-builder SOP: citations are the foundation layer, week 1-2 priority | Submit Yelp, BBB, Angi, Houzz, chamber of commerce within 30 days |
| Referring domain gap: 188 RDs vs 330 (ezbaths.com), 2,711 (rebath.com) | P0 | DataForSEO summary comparison, 2026-06-11 | Link building doctrine: referring domains are the primary authority signal | Phase 3-4 plan above: 50-75 citations + editorial link acquisition |
| 96% dofollow ratio (healthy threshold 60-80%) | P1 | DataForSEO: 671 dofollow pages / 699 total = 96%; competitors average 72-76% dofollow | link-building-router audit mode: above 90% dofollow = suspicious pattern | Add citation/social/directory links that naturally carry nofollow |
| No Tier 1 referring domains (zero domains with rank 200+) | P1 | Top referring domain xpr-gannett.com (rank 166) has spam score 22 with ALL 138 links broken; next is marketminute.com (rank 115), also all broken | Relevance over metrics doctrine: quality of referring domain matters more than count | Editorial outreach targets DR 20-40 niche sites as priority |
| High-spam-score toxic referring domains | P1 | pierrecountry.com (spam 40), thedam.fm (spam 30), celebhomes.net (spam 25), rogueimc.org (spam 14) | Vet before you buy: one toxic domain poisons the whole network | Disavow file: these 4 domains + Telegram spam domains |
| Anchor text inverted distribution (0% naked URL, 0% generic) | P1 | 0 naked URL anchors; 0.9% generic; 92.7% artificial brand-sentence anchors | local-link-builder anchor SOP: naked URL 10-15%, generic 15-20% | Citation and editorial link building to normalize distribution |
| Domain rank 233 vs ezbaths.com 211 despite similar backlink count | P2 | TurnKey: rank 233, 188 RDs, 699 BLs. ezbaths.com: rank 211, 330 RDs, 504 BLs | Domain rank reflects quality-weighted authority; spam concentration suppresses rank | Quality over quantity: 50 genuine citations outperform 500 PR syndications |
Appendix: Data Sources
- DataForSEO
backlinks/summary/live- TurnKey, rebath.com, ezbaths.com, bathfitter.com - pulled 2026-06-11 - DataForSEO
backlinks/anchors/live- TurnKey - pulled 2026-06-11 - DataForSEO
backlinks/referring_domains/live- TurnKey, ezbaths.com - pulled 2026-06-11 - DataForSEO
backlinks/backlinks/live- TurnKey live and broken samples - pulled 2026-06-11 - HTTP status checks via curl - TurnKey canonical URLs - run 2026-06-11
- Phase 0 verified data from CONTEXT.md (735 backlinks / 691 broken / 194 RDs / rank 233 / spam 13 as of Phase 0)
- Note: slight variance from Phase 0 (735 vs 699 backlinks, 194 vs 188 RDs) reflects DataForSEO's rolling crawl window; directionally identical
- GSC / GA data: NOT available (not our property). All conclusions drawn from DataForSEO and HTTP verification only.
TurnKey Bath Remodel: Competitor Intelligence Report (Lane C)
Date: 2026-06-11 Auditor: Raven (Research/Intel Lead) Method: DataForSEO bulk traffic analysis, ranked-keywords pulls, WebFetch site profiling Scope: turnkeybathremodel.com vs rebath.com, ezbaths.com, bathfitter.com, bathwraps.com, sweeneyrestoration.com, bigeasybathrooms.com
1. Traffic Benchmark Table
| Domain | Organic ETV (US) | Keyword Count | Pos 1-3 | Tier |
|---|---|---|---|---|
| bathfitter.com | 873,631 | 26,153 | 1,653 | National Franchise |
| rebath.com | 745,538 | 16,580 | 2,047 | National Franchise |
| bathwraps.com | 7,715 | 2,808 | 21 | National Niche |
| ezbaths.com | 494 | 163 | 7 | Regional Competitor |
| sweeneyrestoration.com | 328 | 52 | 0 | Local General Contractor |
| bigeasybathrooms.com | 6 | 9 | 0 | Local Independent |
| turnkeybathremodel.com | 28 | 49 | 0 | Audit Target |
Source: DataForSEO Bulk Traffic Estimation, 2026-06-11.
Signal (P0): TurnKey's ETV of $28/month makes it essentially invisible in organic search. Even bigeasybathrooms.com, the weakest local competitor, has a comparable keyword count despite lower traffic. EZBaths, a direct Louisiana bath specialist with 14x TurnKey's keyword count and 17x the traffic, represents the realistic competitive ceiling in the near term.
2. National Franchise Tier: Untouchable at Current Authority
2.1 Bath Fitter (bathfitter.com)
- Keywords: 26,153 nationwide; hundreds of geo-modified city-service combos
- ETV: ~$873K/month
- Positions 1-3: 1,653 keywords
- Strategy: Deep city-level landing pages for every franchise location. Ranks for "shower replacement [city]" and "tub to shower conversion [city]" across every major US metro. National brand + franchise model = hundreds of location pages indexed at scale.
- Weaknesses: Generic corporate content, no local voice, review credibility diluted across franchise network. A local operator with strong GMB + hyper-local content can beat them in local pack even while losing the organic blue links.
- Beatable? No. Not at domain rank 233/1000. Bath Fitter needs to be beaten in the Local Pack (GMB), not organic.
2.2 Re-Bath (rebath.com)
- Keywords: 16,580 nationwide
- ETV: ~$745K/month
- Positions 1-3: 2,047 keywords
- Strategy: Dominant for top-funnel brand: "bathroom remodeling," "bathroom renovation," "bathroom remodel" at ranks 2-5 nationally. Strong franchise SEO playbook identical to Bath Fitter.
- Weaknesses: Same as Bath Fitter - franchise dilution, no local specificity beyond location pages, slow response to reviews.
- Beatable? No in organic. In Local Pack, yes with sustained GMB effort. DataForSEO shows Re-Bath New Orleans returns branded navigational queries ("re bath new orleans" vol=30, rank=33 for TurnKey - showing TurnKey co-appearing in SERP neighborhood).
2.3 BathWraps (bathwraps.com)
- Keywords: 2,808
- ETV: $7,715
- Notable ranks: "bath replacements" #3 (vol=9,900), "bathtub liner" cluster
- Strategy: Focused on tub liner and acrylic overlay niche; not a full bath remodeler. Narrower page set but effective within a specific product category.
- Beatable? Partially. TurnKey already ranks nearby for tub liner keywords. BathWraps' niche is reachable on information queries but they lack Louisiana presence in the geo-modified terms.
Verdict on nationals: Do not compete on organic keyword volume against these three. The correct competitive arena is the Local Pack (3-Pack), where domain authority is secondary to proximity, review count, and GMB completeness.
3. Regional Competitor Tier: Realistic Battleground
3.1 EZ Baths (ezbaths.com) - PRIMARY THREAT
Business profile: Louisiana bath specialist, HQ Baton Rouge, founded 2012. Veteran-owned. Serves 50+ Louisiana cities plus Mississippi.
Traffic data (DataForSEO 2026-06-11):
- Total keywords: 163 (US), 160 with location_code 2840
- ETV: $494/month
- Positions 1-3: 7 keywords
- Positions 4-10: 14 keywords
- Total position distribution: pos_1=7, pos_2_3=3, pos_4_10=14, pos_11_20=21
What they rank for that TurnKey does NOT:
| Keyword | Volume | EZBaths Rank | Strategic Value |
|---|---|---|---|
| walk in tubs near me | 720 | #16 | High - near-me intent, local |
| bathroom remodeling new orleans | 390 | #19 | Critical - primary service + city |
| bathroom remodeling new orleans la | 390 | #17 | Critical |
| new orleans bathroom remodel | 390 | #22 | Critical |
| bathroom remodel lafayette la | 210 | #14 | Adjacent market |
| bathroom remodel baton rouge la | 170 | #4 | Competitor market |
| walk in shower conversion near me | 70 | #17 | Service + near-me |
| ada compliant walk in bathtub | 70 | #19 | Accessibility niche |
| walk-in tub company | 110 | #20 | Generic service |
| bathtub refinishing new orleans | 70 | #41 | Service gap |
Page architecture driving EZBaths' rankings:
ezbaths.com/new-orleans/- city landing page for NOLA (ranks #17-22 for "bathroom remodeling new orleans")ezbaths.com/baton-rouge/walk-in-tubs/- city + service subpage (ranks #6 for Baton Rouge bathroom terms)ezbaths.com/lafayette/walk-in-tubs/- walk-in tub + city (ranks #10-16 for "walk in tubs near me")ezbaths.com/why-walk-in-shower-tubs-are-the-best-choice-for-seniors/- blog ranks #40-42 for "bathtubs for seniors," "elderly walk-in tub" (vol=5,400 each)ezbaths.com/offers/financing/- financing page ranks for "bathroom remodel financing near me" (vol=90, #37)
What EZBaths does well:
- Deep city+service URL structure (
/city/service/pattern) - Senior/ADA accessibility content cluster - ranks for "bathtubs for seniors" and "elderly walk-in" at volumes TurnKey never touches
- Financing page converts "financing" intent directly
- 383 reviews at 4.8/5 on site + BBB A+ = strong trust stack
- "$1,000 off" and "$1,500 off" promotions create urgency
- Veteran-owned designation activates a trust segment
EZBaths weaknesses (exploitable by TurnKey):
- New Orleans city page content is generic - WebFetch confirmed "minimal city-specific content"; no Slidell/NOLA-specific copy
- No #1 positions for NOLA-specific queries - highest NOLA rank is #17 despite having a dedicated page
- Serves a huge footprint (50+ cities) which dilutes local relevance signals for any single market
- HQ is Baton Rouge - TurnKey has physical New Orleans address advantage
- Review base likely spread across regions, not concentrated in NOLA
Beatable? Yes, for NOLA-specific keywords. EZBaths ranks #17-22 for "bathroom remodeling new orleans" with generic city pages. A TurnKey page with hyper-local NOLA content (neighborhoods, flood-resilient materials, post-Katrina renovation framing) + concentrated NOLA reviews can outrank them in the 3-pack and close the organic gap.
3.2 Sweeney Restoration/Design (sweeneyrestoration.com)
Business profile: General contractor, New Orleans area, founded post-Katrina 2005. Full-service: custom homes, additions, kitchen, bath, commercial. 19+ years in business.
Traffic data:
- Total keywords: 52
- ETV: $328/month
- Positions 1-3: 0
- Top keywords: branded ("re sweeney" vol=390, rank in top 20 for own brand)
Content they rank for that TurnKey does NOT:
| Keyword | Volume | Notes |
|---|---|---|
| kitchen remodel new orleans | 210 | Adjacent - not TurnKey's market |
| home remodeling new orleans | 140 | Broader category |
| home renovation new orleans | 140 | Broader category |
| new orleans commercial contractors | 90 | Not TurnKey's market |
| bathroom remodel financing no credit check | 40 | Financing intent - TurnKey has no financing page |
Strategic assessment: Sweeney is a general contractor competing primarily on renovation brand terms and commercial construction. Their bathroom work is one service among many - no focused bath expertise content. They rank for "home remodeling new orleans" cluster at volumes TurnKey doesn't touch, but this is because they explicitly serve that broader intent.
Not a direct competitive threat to TurnKey's bath specialist positioning. However, their financing content ("bathroom remodel financing no credit check," vol=40) is a gap TurnKey should fill since EZBaths also ranks for financing terms.
Beatable? On bath-specific queries, yes - Sweeney has no bath specialist positioning. But TurnKey should not try to compete on general home remodeling terms.
3.3 Big Easy Bathrooms (bigeasybathrooms.com)
Business profile: Bath remodel specialist, New Orleans/Northshore focus. Serves 7 cities: Slidell, Metairie, Mandeville, Madisonville, Hammond, Covington, Abita Springs.
Traffic data:
- Total keywords: 9
- ETV: $6/month
- Positions 1-3: 0
- Essentially no organic presence
Site structure:
- 7 dedicated service area pages, all city-specific
- City page content is heavily templated (WebFetch on Slidell page confirmed "thin, template-based page with minimal local relevance")
- No unique local content, generic testimonials not tied to specific cities
Why they underperform despite correct URL structure:
- Thin city page content - template fill, not genuine local copy
- 9 total keywords = no authority signals
- No quality backlink building
- Review count unspecified, badges generic
TurnKey direct overlap:
- Serves Slidell, Metairie, Mandeville, Covington - all in TurnKey's 14-city service area
- Both target shower installation, walk-in tubs, tub-to-shower conversions
- This is a direct competitor with essentially zero organic visibility
Beatable? Completely. Big Easy Bathrooms has the right page structure but empty content. TurnKey with substantive city pages for these shared markets (especially Slidell, which BigEasy targets) would outrank them within months.
4. Content Gap Analysis (US, Competitor Keywords TurnKey Does Not Rank For)
Methodology: DataForSEO ranked keywords for ezbaths.com (50), sweeneyrestoration.com (50), bigeasybathrooms.com (9). Subtracted all 48 TurnKey keywords. Result: 89 gap keywords. Top opportunities by volume:
Tier 1: High-Volume Gaps (vol 400+)
| Keyword | Volume | Competitor Holding | TurnKey Status |
|---|---|---|---|
| fiberglass tub replacement cost | 1,000 | bigeasybathrooms | NOT ranked |
| how much to replace tub | 1,000 | bigeasybathrooms | NOT ranked |
| walk in tubs near me | 720 | ezbaths | NOT ranked |
| bathroom remodeling new orleans | 390 | ezbaths (#17-19) | NOT ranked |
| new orleans bathroom remodel | 390 | ezbaths (#22) | NOT ranked |
Action required (P0): "How much to replace a tub" and "fiberglass tub replacement cost" are commercial intent informational queries with 1,000 monthly searches that Big Easy Bathrooms holds. TurnKey has zero cost/pricing content. A single well-structured pricing guide page would capture this.
Tier 2: Mid-Volume Geo-Modified Gaps (vol 140-210)
| Keyword | Volume | Competitor | Notes |
|---|---|---|---|
| home builders in new orleans la | 480 | sweeney | Tangential |
| custom shower pans near me | 480 | bigeasybathrooms | Service gap |
| bathroom remodel lafayette la | 210 | ezbaths | Expansion market |
| bathroom remodel baton rouge la | 170 | ezbaths | Expansion market |
| home remodeling new orleans | 140 | sweeney | Adjacent |
| home renovation new orleans | 140 | sweeney | Adjacent |
Note on expansion markets: Lafayette (vol=210) and Baton Rouge (vol=170) are EZBaths territory, not TurnKey's 14-city service area. TurnKey should not chase these unless they expand. Focus on NOLA/Metairie/Northshore.
Tier 3: Near-Me and Service-Type Gaps (vol 50-140)
| Keyword | Volume | Competitor | Intent |
|---|---|---|---|
| walk in tubs near me | 720 | ezbaths | Service + near-me |
| walk in shower conversion near me | 70 | ezbaths | Service + near-me |
| ada compliant walk in bathtub | 70 | ezbaths | Accessibility |
| easy access bath | 70 | ezbaths | Accessibility |
| bathtub refinishing new orleans | 70 | ezbaths | Service TurnKey does not offer? |
| bathroom remodel financing no credit check | 40 | ezbaths | Financing intent |
| safe step near me | 40 | ezbaths | Walk-in tub brand |
Critical gap: TurnKey has no financing page. EZBaths and Sweeney both rank for financing terms. "Bathroom remodel financing no credit check" and "bath fitters financing" are searched by exactly the buyer TurnKey needs (wants the work but price-sensitive). A financing landing page closes this gap.
Senior/Accessibility Content Gap (P1)
EZBaths ranks #40-42 for "bathtubs for seniors walk in" and "elderly walk-in tub" (both vol=5,400). TurnKey has zero accessibility/senior content. This is a 5,400-volume keyword cluster with zero TurnKey presence. The elderly/accessibility buyer is often the decision-maker in NOLA and across TurnKey's service area given demographics.
5. City Page Strategy Comparison
| Competitor | City Pages | Content Quality | Notes |
|---|---|---|---|
| ezbaths.com | 50+ cities (Louisiana + MS) | Moderate - city pages exist but generic NOLA content | URL structure: /city/service/ pattern. Rankings confirm city pages generate traffic for Baton Rouge. NOLA page underperforms despite existing (#17-22 range). |
| bigeasybathrooms.com | 7 cities | Thin - templated copy, generic reviews | Correct URL structure, wrong content. Zero organic traction. |
| sweeneyrestoration.com | 5 city pages (NOLA, Metairie, Mandeville, Slidell, Chalmette) | Unknown depth | General contractor framing, not bath specialist. |
| turnkeybathremodel.com | 14 city pages in nav | Unknown - not crawled in this analysis | Phase 0 shows Slidell and Baton Rouge in top pages by traffic. |
Key finding: EZBaths proves the city+service URL architecture works in Louisiana. Their /city/service/ pages drive ranked positions. Their weakness is thin content at the city level. TurnKey's opportunity is the same architecture with genuine local copy.
6. Review and Trust Signal Comparison
| Competitor | Reviews (on-site) | Rating | BBB | Veteran-Owned | Financing | Warranty |
|---|---|---|---|---|---|---|
| ezbaths.com | 383 | 4.8/5 | A+ | Yes | 18 months no interest | Lifetime unlimited |
| sweeneyrestoration.com | 33+ | 5-star | Unknown | No | Unknown | Unknown |
| bigeasybathrooms.com | "Hundreds" (unquantified) | 5-star (generic) | Generic badge | No | No | Generic warranty badge |
| bathfitter.com | National | National | National | No | National | Lifetime |
| rebath.com | National | National | National | No | 18 months | Lifetime |
| turnkeybathremodel.com | Unknown (not assessed in this lane) | Unknown | Unknown | Unknown | Unknown | Unknown |
Signal (P1): EZBaths' review stack (383 at 4.8/5 + BBB A+ since 2013) is the local competitive benchmark. The veteran-owned designation is a significant trust differentiator in the NOLA market. TurnKey's review count and trust badge presence require assessment by the local SEO lane.
7. Promotional / Offer Strategy Gap
EZBaths leads the market with specific dollar-amount offers:
- "$1,000 Off Your Bathroom Remodel"
- "$1,500 Off a Walk-In Tub"
- "No Interest / No Payments for 18 Months"
Big Easy uses only "FREE Estimates."
Bath Fitter and Re-Bath both use national promotions ($X off, deferred payment).
TurnKey's offer strategy is not visible from this analysis (requires homepage/CTA assessment). If TurnKey is only offering "free estimates" with no dollar-denominated offer, they are at a conversion rate disadvantage against EZBaths in every shared market.
8. Beatable Tier: Realistic Near-Term Win Set
Beatable immediately (within 6-12 months with correct execution):
-
bigeasybathrooms.com - 9 keywords, $6 ETV, thin city page content. Outrank on all 7 of their shared service cities with substantive content.
-
sweeneyrestoration.com - 52 keywords, no positions 1-3, general contractor (not bath specialist). Outrank on any bath-specific query where they co-appear. They rank for "home remodeling new orleans" but not for bath-specific terms.
-
EZBaths in NOLA specifically - Their NOLA city page ranks #17-22 for "bathroom remodeling new orleans" with generic content. TurnKey has a 3436 Magazine St New Orleans physical address - physical proximity + hyper-local content + NOLA review concentration can beat EZBaths in the NOLA local pack even if domain authority gap persists.
Not beatable in 12 months:
- bathfitter.com (domain rank ~800+, 26K keywords, franchise infrastructure)
- rebath.com (16K keywords, 2K+ top-3 positions)
9. Findings Summary Table
| # | Finding | Severity | Evidence | Method Rule | Fix |
|---|---|---|---|---|---|
| C-01 | TurnKey ETV ($28/mo) is 17x below EZBaths ($494) and essentially zero vs nationals. No positions 1-3. | P0 | DataForSEO Bulk Traffic Estimation 2026-06-11. 49 keywords vs EZBaths 163. | Competitive benchmarking: any competitor 10x+ on traffic is a systemic authority gap, not a content gap. | Parallel tracks: GMB/local pack (near-term wins) + content authority build (6-12 month). |
| C-02 | "How much to replace a tub" + "fiberglass tub replacement cost" (vol=1,000 each) - held by Big Easy Bathrooms with zero content. TurnKey not ranked. | P0 | DataForSEO content gap analysis. bigeasybathrooms.com ranks for both. | Cost/pricing content captures commercial intent at the decision stage. | Create a cost-guide page: "How Much Does Bathtub Replacement Cost in New Orleans?" with local pricing anchors. |
| C-03 | "Bathroom remodeling new orleans" cluster (vol=390, 3 variants) - EZBaths holds #17-22 with a GENERIC city page. TurnKey not ranked despite New Orleans address. | P0 | DataForSEO ranked_keywords, EZBaths NOLA page WebFetch confirming "minimal city-specific content." | Geographic authority: physical address in target city + hyper-local content outranks distant competitor with generic page. | Build substantive NOLA bathroom remodel landing page: neighborhood references, local permit mentions, flood-resilient materials, NOLA-specific review copy. |
| C-04 | Tub liner content cluster is TurnKey's ONLY traffic driver (#4 for "how to install bathtub liner") but ALL tub liner traffic goes to a blog post, not a service page. | P1 | Phase 0 verified data: tub liner blog is top traffic page. DataForSEO shows "tub liner installation" vol=170, rank=41 for TurnKey. | Content type mismatch: informational blog post does not convert buyers searching for tub liner service. | Create a service-oriented tub liner page. Use blog post as informational top-of-funnel with internal link to service page. |
| C-05 | EZBaths ranks #40-42 for "bathtubs for seniors" and "elderly walk-in tub" (vol=5,400 each). TurnKey has zero accessibility/senior content. | P1 | DataForSEO ranked_keywords ezbaths.com 2026-06-11. | Senior/accessibility content cluster is the highest-volume adjacent market for bath specialists. | Create senior/accessibility content cluster: walk-in showers for seniors, ADA compliance, aging-in-place bathroom remodel. |
| C-06 | TurnKey has no financing page. EZBaths ("18 months no interest"), Sweeney, and nationals all rank for "bathroom remodel financing" terms. | P1 | DataForSEO content gap: "bathroom remodel financing no credit check" vol=40 held by ezbaths. WebFetch confirms EZBaths financing page exists and ranks. | Financing intent is decision-stage; buyers who search "financing" are ready to commit but need reassurance on cost. | Create financing page. Partner with GreenSky, Service Finance, or similar bath-remodel lenders. Page converts "financing" intent directly. |
| C-07 | Big Easy Bathrooms shares 7 of TurnKey's service areas (Slidell, Metairie, Mandeville, Madisonville, Hammond, Covington, Abita Springs) with thin templated city pages and $6 ETV. This competitor is beatable immediately. | P1 | DataForSEO: bigeasybathrooms.com ETV=$6, 9 keywords. WebFetch Slidell page: "thin, template-based page with minimal local relevance." | Competitive displacement: when a competitor holds a position with thin content, substantive replacement content wins quickly. | Build substantive city pages for TurnKey's shared cities (Slidell first - already in TurnKey's top 5 traffic pages). Add local references, contractor photos, local permit info, city-specific reviews. |
| C-08 | EZBaths' URL architecture (/city/service/) generates city+service rankings (confirmed: #4 Baton Rouge bathroom remodel, #17 NOLA bathroom remodeling). TurnKey has city pages but their depth is unknown. | P1 | DataForSEO ranked_keywords ezbaths.com: /baton-rouge/walk-in-tubs/ ranks #6 for Baton Rouge bathroom remodel. | Nested geographic + service URL structure (proven pattern in this market). | Audit TurnKey's existing city page structure. Add /service-areas/[city]/[service]/ pages for high-volume combos: shower-replacement, walk-in-tub, tub-to-shower per city. |
| C-09 | EZBaths offer stack ($1K off, $1.5K off walk-in tub, 18-month financing) vs TurnKey's unknown/generic offer. In conversion terms, specific dollar amounts beat "free estimate." | P2 | WebFetch ezbaths.com: explicit dollar-off CTAs prominent on every page. | Offer framing: specific dollar-amount promotions outperform generic "free estimate" CTAs in conversion rate, especially for high-consideration purchases. | Implement specific promotional offer (dollar-amount or percentage) + "X months same-as-cash" financing. Test against current CTA. |
| C-10 | Sweeney Restoration ranks for "home remodeling new orleans" (vol=140) and "kitchen remodel new orleans" (vol=210). These are adjacent queries TurnKey does NOT need to chase - but Sweeney's lack of bath specialization means TurnKey can own bath-specific terms without general contractor competition. | P2 | DataForSEO content gap. Sweeney WebFetch: general contractor, not bath specialist. | Specialist authority: bath-only positioning creates topical authority Google rewards over generalists. | Double down on bath specialist messaging and content. Do not dilute with general remodeling content. Stay in the bath vertical. |
10. Score Summary
| Category | TurnKey Position | Gap |
|---|---|---|
| Organic Traffic (US ETV) | $28/mo | EZBaths 17x higher, nationals 25,000x higher |
| Keyword Count | 49 | EZBaths 3.3x, nationals 270-530x |
| Top-3 Positions | 0 | EZBaths has 7, nationals have 1,000+ |
| NOLA Core Query Visibility | Not in top 20 for "bathroom remodeling new orleans" | EZBaths #17-22 with generic content |
| City Page Architecture | 14 cities (depth unknown) | EZBaths proven /city/service/ structure works |
| Accessibility Content | None | EZBaths owns 5,400-volume senior cluster |
| Financing Page | None | EZBaths and nationals all have one |
| Beatable Competitors | 2 immediately (BigEasy, Sweeney) | EZBaths beatable in NOLA specifically in 6-12 months |
Raven confidence level: High on traffic and keyword data (direct DataForSEO API calls, 2026-06-11). High on site structure assessments (live WebFetch). Medium on review counts for TurnKey itself (not available in this lane - GSC/GA not available, on-site review data not assessed). All gap volumes are US-national DataForSEO estimates; NOLA-specific search volumes are lower by 80-90%.
class: auditor-output lane: C auditor: Shakespeare date: 2026-06-11 target: https://www.turnkeybathremodel.com/
Audit C: Content Quality Lane
TurnKey Bath Remodel | Shakespeare Content Lead | 2026-06-11
Methodology: CORE-EEAT 80-item scoring (aaron-content-quality-auditor SKILL.md v9.9.10), applied across 6 primary pages plus cross-site assessment of the 14 city pages. Pages audited: homepage, /showers/walk-in/, /bathtubs/tub-liners/, /service-areas/slidell/, /service-areas/metairie/, /step-by-step-guide-installing-tub-liner/. City page duplication check: 4 pages compared (Slidell, Metairie, Kenner, Baton Rouge). GSC/GA not available; stated plainly where it would change the analysis.
Critical Trust Check (Emergency Brake)
| Check | Status | Notes |
|---|---|---|
| Affiliate links disclosed | Pass | No affiliate links detected |
| Title matches page content | Pass | All H1s match stated content |
| Data points are consistent | Pass | Core claims consistent across pages |
No veto triggers. Proceeding to full audit.
Page-by-Page CORE-EEAT Scoring
Page 1: Homepage
Content Type: Landing page / service hub Estimated word count: ~1,400 words visible body
C - Contextual Clarity: 70/100
| ID | Check Item | Score | Notes |
|---|---|---|---|
| C01 | Intent Alignment | Pass | H1 "Installed in as Little as 1 Day" matches commercial transactional intent |
| C02 | Direct Answer | Partial | Value proposition stated but lead sentence is benefit claim, not need-answer |
| C03 | Keyword Presence | Pass | "Bathroom remodel New Orleans" present in body and headers |
| C04 | Query-to-Content Match | Pass | Service hub matches "who does bathroom remodels in New Orleans" intent |
| C05 | Opening Relevance | Partial | H1 is a promise, not a context-setter; no answer-first paragraph |
| C06 | Scope Signals | Pass | Services, areas, guarantees all scoped clearly |
| C07 | Content Freshness | Partial | No publish date visible; "25+ years" claim not dated |
| C08 | Language Match | Pass | Plain English, no jargon overload |
| C09 | Mobile Clarity | Pass (assumed) | No evidence of mobile layout issues |
| C10 | Semantic Closure | Partial | CTAs close each section but no summary/conclusion on the page |
C Score: 70/100
O - Organization: 65/100
| ID | Check Item | Score | Notes |
|---|---|---|---|
| O01 | Heading Hierarchy | Partial | H1 brand promise, H2s categorical; no H3 supporting hierarchy |
| O02 | Logical Flow | Pass | Benefits to social proof to CTA is logical |
| O03 | Section Labeling | Pass | H2s name sections clearly |
| O04 | List Formatting | Pass | Service bullet lists present |
| O05 | Paragraph Length | Pass | Short paragraphs throughout |
| O06 | Table Usage | Fail | No comparison tables; price/service comparisons presented only as prose |
| O07 | Visual Anchoring | Partial | Before/after images present but alt text depth unclear |
| O08 | Navigation Depth | Pass | Clear internal navigation to service pages |
| O09 | CTA Placement | Partial | CTAs present but repetitive; three identical "FREE Consultation" CTAs with no differentiation |
| O10 | Scanability | Pass | Header structure allows quick scan |
O Score: 65/100
R - Referenceability: 50/100
| ID | Check Item | Score | Notes |
|---|---|---|---|
| R01 | Data Precision | Partial | "500+ bathrooms remodeled," "25+ years," "4.9 stars" present but sourced loosely |
| R02 | Citation Density | Fail | Zero external citations; no links to NARI, BBB, manufacturer specs |
| R03 | Source Quality | Fail | No verifiable third-party sources linked |
| R04 | Evidence-Claim Mapping | Partial | Claims present ("lifetime warranty") but no manufacturer documentation linked |
| R05 | Date Accuracy | Fail | No publish or last-updated dates on any page |
| R06 | Factual Precision | Partial | License numbers (#890459, #3667) are specific and verifiable - positive signal |
| R07 | Counterclaim Coverage | Fail | No acknowledgment of any limitations (e.g., not all bathrooms can be done in 1 day) |
| R08 | Methodology Transparency | Fail | "25+ years experience" not verifiable on-page; no founding date, no team bios |
| R09 | Freshness Signal | Fail | No dates anywhere on homepage |
| R10 | Data Consistency | Pass | Core claims (license numbers, phone, address) consistent across all pages |
R Score: 30/100
E - Exclusivity: 55/100
| ID | Check Item | Score | Notes |
|---|---|---|---|
| E01 | Unique Angle | Partial | "1-Day install" is differentiating but shared with Bath Fitter/Re-Bath nationally |
| E02 | Proprietary Insight | Fail | No content only TurnKey could write; all claims are category-generic |
| E03 | Gap Coverage | Partial | Climate angle (New Orleans humidity) appears on tub-liners page but not homepage |
| E04 | Depth Beyond Basics | Fail | Homepage is a service list; no depth on HOW they achieve 1-day installs |
| E05 | Original Research | Fail | No original data, no local surveys, no project statistics with methodology |
| E06 | Voice Distinctiveness | Partial | Louisiana-specific language ("Louisiana homeowners") present but inconsistent |
| E07 | Comparison Advantage | Fail | No direct competitor comparison or feature differentiation table |
| E08 | Specificity | Partial | Some local specificity (New Orleans, license numbers) but generic service descriptions |
| E09 | Topic Coverage | Partial | Core services covered; zero coverage of financing options depth, process transparency |
| E10 | Competitive Differentiation | Fail | Cannot distinguish from rebath.com or bathfitter.com on content alone |
E Score: 30/100
Exp - Experience: 55/100
| ID | Check Item | Score | Notes |
|---|---|---|---|
| Exp01 | First-Person Narrative | Fail | No first-person storytelling; all third-person institutional voice |
| Exp02 | Project Examples | Partial | "Before/After" gallery exists but no case descriptions (what customer needed, what was done) |
| Exp03 | Process Insight | Fail | "We install in 1 day" but zero insight into what that process actually involves |
| Exp04 | Outcome Documentation | Partial | Testimonials present but generic ("impeccable," "commendable") without specifics |
| Exp05 | Client Stories | Partial | 9 testimonials but names (Robert White, Sarah Mitchell, Susan Davis) feel unverifiable without photos or linked reviews |
| Exp06 | Behind-the-Scenes | Fail | No team photos named, no installer profiles, no project photos with context |
| Exp07 | Failure/Challenge Acknowledgment | Fail | No mention of challenges overcome or "what we learned" type content |
| Exp08 | Local Knowledge Display | Partial | "Louisiana homeowners" language but no New Orleans-specific insight |
| Exp09 | Sensory/Descriptive Language | Partial | Some product description language; not enough to signal hands-on experience |
| Exp10 | Timeline/Progression | Fail | No before/during/after narrative storytelling on any project |
Exp Score: 25/100
Ept - Expertise: 60/100
| ID | Check Item | Score | Notes |
|---|---|---|---|
| Ept01 | Technical Accuracy | Pass | Service descriptions are accurate and specific (acrylic, PVC, fiberglass liners correctly described) |
| Ept02 | Author Credentials | Fail | No named author on any page; no team page referenced from homepage |
| Ept03 | Industry Terminology | Pass | Correct use of "tub liner," "walk-in shower," "barrier-free," "tub-to-shower conversion" |
| Ept04 | Process Explanation | Partial | Walk-in shower page has a 5-step process; homepage has none |
| Ept05 | Problem-Solution Framing | Pass | Accessibility, aging-in-place, mold resistance framed as problems the service solves |
| Ept06 | Depth of Topic Coverage | Partial | Tub liners page correctly names 4 liner materials; could go deeper on selection criteria |
| Ept07 | Certifications/Training | Partial | "Licensed & Insured" stated with numbers; no manufacturer training certifications mentioned |
| Ept08 | Comparative Knowledge | Fail | No comparison of liner types, shower styles, or installation methods against alternatives |
| Ept09 | FAQ Quality | Partial | FAQ on walk-in shower page is surface-level; tub liners page has none |
| Ept10 | Content Update Cadence | Fail | No evidence of regular content updates; no publication dates to confirm |
Ept Score: 50/100
A - Authority: 35/100
| ID | Check Item | Score | Notes |
|---|---|---|---|
| A01 | Backlink Profile | Fail | 94% of 735 backlinks broken (691 of 735); domain rank 233/1000 (verified Phase 0 data) |
| A02 | Brand Mentions | N/A | Cannot assess without GSC/GA; STATED as unavailable |
| A03 | Industry Recognition | Fail | No industry association memberships visible (NARI, BBB, Angi, HomeAdvisor badges absent) |
| A04 | Press/Media Coverage | Partial | 103 "news" tagged links in backlink profile suggest press release history; none linked from site |
| A05 | Social Proof Volume | Partial | "4.9 Google Rating" claimed but no live review count visible on-page |
| A06 | Expert Contributions | Fail | No guest posts, no industry bylines, no named contributors |
| A07 | Link to Authoritative Sources | Fail | No outbound links to manufacturers, NARI standards, accessibility organizations |
| A08 | Awards/Recognitions | Fail | No awards, no certifications beyond license numbers |
| A09 | Local Authority Signals | Partial | Multiple service area pages but no community involvement, no local press links |
| A10 | Cross-Platform Presence | Partial | Social media links in footer but no integration of review platforms (Google, Yelp, Houzz) |
A Score (of scored items, excluding N/A A02): 27/90 scored items = 30/100 (rounded to 30)
T - Trust: 65/100
| ID | Check Item | Score | Notes |
|---|---|---|---|
| T01 | HTTPS Security | Pass | Site serves over HTTPS |
| T02 | Privacy Policy | N/A | Not assessed; not in scope |
| T03 | Security Signals | Pass | HTTPS present |
| T04 | Affiliate Disclosure | Pass | No affiliate content detected |
| T05 | Editorial Policy | Fail | No editorial/review policy; no named content creators |
| T06 | Contact Transparency | Pass | Phone, address, hours, license numbers all visible |
| T07 | About Page Signals | Partial | License numbers (#890459, #3667) visible; no named owners/founders |
| T08 | Review Authenticity | Partial | 9 testimonials present; no photos, no linked Google review profiles; names feel generic |
| T09 | Data Reliability | Pass | Claims are consistent across pages; license numbers are specific |
| T10 | Accuracy Indicators | Partial | "25+ years" is unverified without a founding year stated; "500+ bathrooms" unverified |
T Score: 60/100 (partial credit averaged)
Aggregate CORE-EEAT Score: Homepage
| Dimension | Score | Weight (Landing Page) | Weighted |
|---|---|---|---|
| C - Contextual Clarity | 70 | 15% | 10.5 |
| O - Organization | 65 | 10% | 6.5 |
| R - Referenceability | 30 | 10% | 3.0 |
| E - Exclusivity | 30 | 15% | 4.5 |
| Exp - Experience | 25 | 15% | 3.75 |
| Ept - Expertise | 50 | 15% | 7.5 |
| A - Authority | 30 | 10% | 3.0 |
| T - Trust | 60 | 10% | 6.0 |
| Weighted Total | 100% | 44.75/100 |
GEO Score (CORE): (70+65+30+30)/4 = 49/100 SEO Score (EEAT): (25+50+30+60)/4 = 41/100 Raw Overall: 45/100 (rounded) Cap check: No veto triggered; cap not applied Verdict: BLOCK - Score below 60; requires substantial content work before investment in links or ads will compound.
Page 2: /showers/walk-in/
Content Type: Service landing page Estimated word count: ~2,300 words
Notable vs. homepage: stronger structure (5-step process, FAQ section), but same pattern of zero citations, no author, no real experience signals. Locality is surface-level ("New Orleans, LA" in H1 only).
Quick dimension scores:
| Dimension | Score |
|---|---|
| C | 72 |
| O | 70 |
| R | 35 |
| E | 40 |
| Exp | 30 |
| Ept | 60 |
| A | 30 |
| T | 60 |
| Weighted | 49/100 |
Finding (P1): FAQ section covers only generic questions (customization, drainage, cleaning). Zero New Orleans-specific questions (e.g., "How do walk-in showers hold up in New Orleans humidity?" or "What permits do I need for a shower conversion in Jefferson Parish?"). All four competitor sites (rebath.com, bathfitter.com) provide market-specific FAQ content. This is a direct featured-snippet gap.
Page 3: /bathtubs/tub-liners/
Content Type: Service landing page Estimated word count: ~1,900 words
Strongest service page found. Correctly names 4 liner materials with distinct properties. Includes price range ($800-$2,500) which is a rare specificity signal. References New Orleans climate (humidity) as a genuine local differentiator. Still zero external citations.
Quick dimension scores:
| Dimension | Score |
|---|---|
| C | 73 |
| O | 68 |
| R | 40 |
| E | 50 |
| Exp | 30 |
| Ept | 65 |
| A | 30 |
| T | 62 |
| Weighted | 51/100 |
Finding (P1): The tub liners page is the second-highest traffic page (Phase 0 verified) and the strongest service page content-wise. Yet it has no FAQ section, no comparison table between liner types, and no named author. If this page were 3,500 words with a proper Q&A section, a materials comparison table, and one or two verified project examples (with photos), it could realistically target "tub liners New Orleans" position 1-3. Currently it is leaving significant conversion traffic on the table from people who searched "bathtub liner diy" and landed here expecting the blog post.
Page 4 and 5: City Pages - Template Duplication Assessment
Pages assessed: Slidell (~2,100 words), Metairie (~1,250 words), Kenner (~1,200 words), Baton Rouge (~1,800 words)
Structural Template Skeleton (identical across all 4)
- Hero section with H1 "[Service] in [City], LA"
- "Benefits of Bathroom Remodeling" section (identical benefits list)
- "Planning Your Bathroom Remodel" section (identical planning tips)
- "Our Bathroom Remodeling Services" section (identical service list)
- "All About [City]" section (localized - the only unique content)
- Footer with contact, license numbers, service area grid
Duplication Percentage Assessment
| Section | Unique to City | Template | Notes |
|---|---|---|---|
| Hero paragraph | 5% | 95% | Only city name swapped |
| Benefits section | 0% | 100% | Verbatim across pages |
| Planning section | 0% | 100% | Verbatim across pages |
| Services section | 0% | 100% | Verbatim across pages |
| "All About" section | 80% | 20% | This is the ONLY real localization |
| Testimonials | 0% | 100% | No city-specific reviews used |
| Overall | ~25% | ~75% | 14 pages, 75% thin duplicate content |
Finding (P0 - Critical): 14 city pages each contain ~75% identical content with only an "All About [City]" section as differentiation. This is a textbook thin-content + near-duplicate content pattern that Google's Helpful Content system specifically targets. With zero positions 1-3 across 48 total keywords (Phase 0 verified), these pages are not performing. They are also potentially suppressing the entire domain's helpful content classification. The "All About [City]" sections contain only tourist-guide information (local parks, transportation) with no connection to bathroom remodeling intent.
Severity: P0 - This is the single highest-leverage content fix on the site.
Method rule that caught it: Google Helpful Content system documentation (2022-2024 updates) explicitly identifies "aggregator pages that combine third-party content with thin original content" as a primary target. The 75% duplicate rate with only a city trivia filler section is a direct match.
Page 6: /step-by-step-guide-installing-tub-liner/ (Top Traffic Page)
Content Type: How-to guide / Blog post Estimated word count: ~1,300 words
This is the most important content finding in the entire audit.
Quick dimension scores:
| Dimension | Score |
|---|---|
| C | 55 |
| O | 68 |
| R | 30 |
| E | 35 |
| Exp | 20 |
| Ept | 55 |
| A | 25 |
| T | 55 |
| Weighted (Blog) | 42/100 |
Intent Mismatch Analysis (P0 - Critical)
The top-traffic page on the entire site is a DIY installation guide.
The math:
- This page ranks #4 for "bathtub liner diy" nationally (Phase 0 verified)
- "bathtub liner diy" has a search volume of 110/month nationally, declining trend (-50% year-over-year per organic-keywords-raw.txt DataForSEO data)
- Search intent: transactional/informational hybrid with primary intent being DIY (do-it-yourself)
- Buyer intent of TurnKey Bath Remodel's ideal customer: homeowners who want a professional to do it for them
The problem spelled out: This business ranks best for people who explicitly do NOT want to hire a contractor. These are the least likely visitors to convert. A DIY searcher landing on a contractor's page is a near-zero-conversion visitor. Yet this is where the site sends the most organic traffic.
Evidence: The blog post itself acknowledges the mismatch internally. The final section is titled "Install Your Tub Liner Properly With Our Experts" - attempting to convert a DIY audience that has already committed to the self-install path. This is conversion copy applied after the intent battle is already lost.
Secondary content issues on this page:
- No author name or bio (P1)
- No publish date or last-updated date (P1)
- No photos of the actual installation process; visual instructions would be expected for a DIY guide (P1)
- 1,300 words for a complex multi-step installation guide is below the depth competitors provide; ezbaths.com and similar contractor blogs run 2,500-3,500 words on this topic with actual photos
- Zero external citations to manufacturer installation specs (Bathwrap, Bath Planet, etc.)
- No schema markup for HowTo (a missed featured snippet opportunity)
Severity: P0 - This is a fundamental content strategy failure: the highest-traffic page serves the wrong audience and drains crawl equity and link equity toward a non-converting keyword.
E-E-A-T Signals: Site-Wide Assessment
Author/Creator Signals
Status: FAIL across all pages
Not one page on the site has a named author. No team page is linked from the main navigation. The "About" page exists but was not included in Phase 0 top pages - suggesting it receives minimal traffic. The testimonials section has customer names but these names (Robert White, Sarah Mitchell, Susan Davis) are generic without photo verification, linked Google profiles, or project details that would authenticate them.
Impact: AI search engines (ChatGPT, Perplexity, Google AI Overviews) preferentially cite content from identified human experts. Anonymous institutional content from a contractor ranks lower in AI-mediated answers compared to a page where "Mike Rodriguez, Licensed Contractor LA #890459, 22 years experience" authored the content.
Credentials Visible
Status: PARTIAL PASS
- Residential License #890459: visible on every page - strong trust signal
- Commercial License #3667: visible on every page - strong trust signal
- "25+ Years Experience": unverifiable without a founding year
- "Licensed & Insured": stated but no insurance certificate linkable
- No manufacturer certifications visible (Bath Planet, Kohler, American Standard partners)
Positive finding: The license numbers are specific, verifiable against the Louisiana State Licensing Board, and consistently placed on every page. This is one of the few strong E-E-A-T signals on the site.
Real Photos vs. Stock Photos
Status: INCONCLUSIVE / PARTIAL CONCERN
The homepage references "Before/After" imagery and project photos. Based on page structure analysis, some images appear to be authentic project photos (before/after bathroom shots are typically too specific to be stock). However, several images are described with generic alt text ("Luxury Bathtub," "Professional installation of walk-in shower") which is consistent with stock photo sourcing.
Recommendation: Commission a photo audit. Stock photos on a local contractor site are an E-E-A-T failure; Google's quality raters specifically look for authentic service photos as a trust signal. Specifically: team photos with installer names attached, in-progress project photos from real jobs in New Orleans neighborhoods, and genuine customer bathroom photos with permission.
Blog Strategy Coherence: FAIL
Current state: 1 known blog post visible via organic traffic data. Top traffic page is a DIY guide serving non-buyers. No evidence of a content calendar or topical cluster strategy.
What a coherent blog strategy looks like for a contractor:
- Informational content serving buyers in awareness stage: "How much does a bathroom remodel cost in New Orleans?" (commercial intent, high conversion potential)
- Comparison content: "Walk-In Shower vs. Walk-In Tub: Which Is Right for You?" (product-aware buyer)
- Local authority content: "New Orleans Bathroom Remodeling: What Permits Do You Need?" (local authority, trust signal)
- FAQ content: "Can You Install a Walk-In Shower in a 5x5 Bathroom?" (featured snippet target)
None of this content exists. The site is attempting to rank in a competitive local market with a single accidental blog post that serves the wrong audience.
Scored Summary Table
| Finding | Page(s) | Severity | Category | Evidence | Fix |
|---|---|---|---|---|---|
| 14 city pages 75% duplicate content | All service area pages | P0 | Content Quality / Thin Content | Only "All About [City]" tourism text differentiates each page; benefits/services/planning sections verbatim identical | Rewrite each city page around local homeowner pain points, neighborhood references, local project examples; minimum 30% unique content per page |
| Top traffic page serves wrong search intent | /step-by-step-guide-installing-tub-liner/ | P0 | Content Strategy / Intent Mismatch | Page ranks #4 for "bathtub liner diy" (DIY intent); business sells professional installation; near-zero conversion pathway | Either (a) add a parallel professional version targeting "bathtub liner installation cost New Orleans" or (b) restructure the blog to convert DIY searchers mid-funnel with a "why hire a pro" section and specific outcome data |
| Zero named authors on any page | Site-wide | P1 | E-E-A-T - Experience | No author bylines, no team page accessible from navigation, no installer profiles | Add author/team bylines to all blog and service pages; create linked team profile pages with credentials |
| Zero external citations | Site-wide | P1 | Referenceability | No links to manufacturer specs, NARI standards, LSLBC license verification, or accessibility standards | Add 2-3 outbound authority links per major service page; link to LA Residential Contractors license lookup for trust |
| No publish/update dates on any content | Site-wide | P1 | Content Freshness | Neither the blog post nor any service page shows a publish or last-updated date | Add Schema Article dates to blog; add "Last reviewed [date]" to all service pages |
| Blog post lacks HowTo schema | /step-by-step-guide-installing-tub-liner/ | P1 | Technical SEO + Content | Step-by-step guide with no HowTo schema; missed featured snippet opportunity for how-to SERP feature | Implement HowTo schema on the blog post immediately; this is a quick-win |
| Testimonials unverifiable | Site-wide | P1 | E-E-A-T - Trust | 9 testimonials with generic names, no photos, no linked Google review profiles | Replace or supplement with Google review embeds (verified profiles, authentic photos); or add project-specific testimonials with homeowner first name + project type + neighborhood |
| No comparison tables on service pages | /bathtubs/tub-liners/, /showers/walk-in/ | P2 | Organization | Materials described in prose only; no liner-type comparison table despite multiple material types noted | Add comparison table: acrylic vs. PVC vs. fiberglass vs. ceramic liner (cost, durability, install time, climate suitability) |
| Climate/location differentiation inconsistent | /bathtubs/tub-liners/ has it; homepage/walk-in do not | P2 | Exclusivity | New Orleans humidity angle only appears on tub-liners page | Pull the humidity/climate angle up to homepage and walk-in shower page; this is TurnKey's strongest local differentiator |
| "All About [City]" sections are tourist guides, not buyer content | All 14 city pages | P2 | Content Quality | Slidell page references Heritage Festival and Camellia City; Metairie references Lafreniere Park; zero bathroom remodeling relevance to these landmarks | Replace tourist content with homeowner-relevant local content: neighborhood home age (older homes = more tub-to-shower conversion demand), local permit notes, neighborhood-specific project examples |
Veto Check
- No T04 trigger (no affiliate links)
- No C01 trigger (titles match content)
- No R10 trigger (data is internally consistent)
cap_applied: false raw_overall_score: 44 (site-wide composite of 6 audited pages) final_overall_score: 44
Publish Verdict: BLOCK - Content quality is below the 60/100 threshold required for FIX. Two P0 findings (city page duplication + intent mismatch on top traffic page) must be addressed before incremental content improvements will compound.
Top 5 Priority Improvements (by impact x effort)
-
City page rewrite program - Rebuild 14 city pages around homeowner intent. Target: 60%+ unique content per page; each page should answer "Why should a [City] homeowner specifically choose TurnKey?" with neighborhood-specific project examples, local permit info, and local client references. Estimated organic impact: recovery of suppressed domain-wide helpful content signal, enabling service pages to rank for geo-modified queries currently invisible.
-
Intent-aligned blog strategy - The top traffic page is a wasted asset serving DIYers. Publish 4-6 commercial-intent blog posts targeting buyer-stage queries: "how much does a bathroom remodel cost in New Orleans," "walk-in shower installation New Orleans," "tub to shower conversion cost Metairie." These are moderate-KD queries with genuine buyer intent vs. the current #4 position for a zero-buyer keyword.
-
Author and team credibility layer - Add named authors to all pages. Create a team page with installer names, years of experience, and specializations. Link author profiles to blog posts. This single change has outsized AI-search citation impact; AI systems prefer named human experts.
-
HowTo schema on blog post - Quick win. The tub liner blog is already ranking #4 with minimal on-page optimization. Adding HowTo schema could push it to a rich SERP feature. 30-minute implementation.
-
Tub liners page expansion with comparison table - This is the second-highest traffic page and has the best content foundation on the site. Expand from 1,900 to 3,000 words. Add: a materials comparison table, a section on "Tub Liner vs. Tub Replacement: Cost Comparison in New Orleans," and a genuine FAQ section answering questions like "Will a tub liner work over my existing tub?" and "How long do tub liners last in Louisiana's climate?"
Action Plan
Quick Wins (under 30 minutes each)
- Add HowTo schema markup to /step-by-step-guide-installing-tub-liner/
- Add publish and last-reviewed dates to all blog posts and service pages
- Replace generic testimonial names with first name + project type + neighborhood format (e.g., "Robert W., Tub-to-Shower Conversion, Metairie")
- Add one outbound authority link per service page (LSLBC license lookup, NARI, or manufacturer)
Medium Effort (1-2 hours each)
- Write a liner type comparison table for /bathtubs/tub-liners/
- Add a New Orleans climate section to /showers/walk-in/ (humidity, flooding risk, accessibility codes)
- Embed or link Google reviews directly from the homepage testimonials section
- Build a team/about page with named installers and credentials
Strategic (requires planning)
- Conduct a full city page rewrite program (14 pages; prioritize Metairie and New Orleans first as highest-value markets)
- Develop a commercial-intent blog content calendar (6-12 posts targeting buyer-stage queries in the New Orleans metro)
- Commission real project photography from 3-5 recent jobs in named neighborhoods (Garden District, Uptown, Metairie, Slidell) to replace stock/generic images
Handoff Schema
---
class: auditor-output
---
status: DONE_WITH_CONCERNS
objective: "Content quality audit of TurnKey Bath Remodel across 6 primary pages plus city page duplication analysis"
key_findings:
- title: "14 city pages with 75% duplicate content"
severity: veto
evidence: "Benefits/planning/services sections verbatim identical across all 14 pages; only 'All About [City]' tourist text differentiates; ~25% unique content per page"
- title: "Top traffic page serves DIY-intent audience, not buyers"
severity: veto
evidence: "Page ranks #4 for 'bathtub liner diy' (DataForSEO organic-keywords-raw.txt); search intent is self-installation; TurnKey sells professional installation; near-zero conversion pathway from this page"
- title: "Zero named authors or team credibility layer"
severity: high
evidence: "No author bylines on any page; no team page in navigation; testimonials unverified (no photos, no linked review profiles)"
- title: "No external citations across all 6 pages"
severity: high
evidence: "Zero outbound links to manufacturer specs, industry standards, or authority sources"
- title: "No publish/update dates on any content"
severity: high
evidence: "Neither blog post nor service pages show publication or last-reviewed dates"
evidence_summary: "Fetched and analyzed: homepage, /showers/walk-in/, /bathtubs/tub-liners/, /service-areas/slidell/, /service-areas/metairie/, /service-areas/kenner/, /service-areas/baton-rouge/, /step-by-step-guide-installing-tub-liner/. Phase 0 keyword data from data/organic-keywords-raw.txt (DataForSEO). GSC/GA not available."
open_loops:
- "Team/About page not audited (not in Phase 0 top traffic pages)"
- "Full 14-city page count not independently verified; 4 of 14 sampled"
- "Photo authenticity (real vs. stock) requires visual inspection; inconclusive from text analysis"
recommended_next_skill: "content-refresher for city pages; seo-content-writer for commercial-intent blog posts; entity-optimizer for AI-search citation lift"
cap_applied: false
raw_overall_score: 44
final_overall_score: 44
TurnKey Bath Remodel: Conversion Rate Optimization Audit (Lane C)
Auditor: Frankie (Front-End Lead, Conversion Optimizer lane) Date: 2026-06-11 Scope: Homepage, /showers/, /contact/, /service-areas/metairie/ Method: 12 Conversion Hacks + Intent Behind Intent (conversion-optimizer skill). Pages audited via live WebFetch. No GSC/GA access (not our property). Severity legend: P0 = blocks conversions now; P1 = high-impact fix; P2 = incremental improvement
Pages Audited
| Page | URL |
|---|---|
| Homepage | https://www.turnkeybathremodel.com/ |
| Showers | https://www.turnkeybathremodel.com/showers/ |
| Contact | https://www.turnkeybathremodel.com/contact/ |
| Metairie (city page sample) | https://www.turnkeybathremodel.com/service-areas/metairie/ |
Finding 1: Form is a Modal, Not Inline — Kills Mobile Conversion
Severity: P0 Hack violated: Hack 4 (Friction Elimination) + Hack 2 (Single Dominant CTA)
All CTAs across all pages trigger javascript:; modal popups rather than loading an inline form. On slow mobile connections this creates three conversion-killing failure modes: (1) the modal may fire before the DOM is fully interactive, (2) users who dismiss the modal cannot easily find a secondary inline path to convert, (3) modal overlays on mobile viewports frequently obscure the submit button behind the keyboard.
Evidence: All three CTA buttons on the homepage ("Get Your FREE Design Consultation", "Call Us Today!", "FREE Estimates!") resolve to JavaScript triggers. The /contact/ page references a consultation form but the actual field structure is also modal-triggered. No inline form was found on any audited page.
Intent Behind Intent: A homeowner searching "shower replacement New Orleans" is at the Product-Aware or Most-Aware stage. They want to start the process NOW. A modal that fails or confuses them routes them directly to a competitor.
Fix: Place a 3-field inline form (Name, Phone, Service Needed) on the homepage above the fold as the secondary CTA. Reserve the modal for the primary "FREE Estimates" button. On /contact/, render the form inline unconditionally. This is a named-field reduction play (Hack 4: 3-field max). Per the 12 Hacks, every field removed increases conversions 10-15%.
Finding 2: CTA Multiplicity Competes and Dilutes Primary Action
Severity: P0 Hack violated: Hack 2 (Single Dominant CTA)
The homepage presents three distinct CTA strings above the fold: "Get Your FREE Design Consultation", "Call Us Today!", and "FREE Estimates!". The /showers/ page and every city page mirror this same three-CTA pattern. Three competing primary actions cause decision paralysis. For a local service site the conversion hierarchy must be: Call > Form > secondary action. Having three equally prominent CTAs violates Hack 2's core rule.
Evidence: Homepage fetch confirmed three CTA buttons above the fold with no visual hierarchy difference apparent from HTML structure. The sticky header independently carries phone + "FREE Estimates" button creating a fourth visible CTA.
Fix: Demote "FREE Estimates!" to a secondary style (outlined button). Make "Call Us Today" the primary CTA (highest-intent action for a local service). Make "Get Your FREE Design Consultation" the secondary CTA (captures non-ready visitors). Remove or demote the third option to a text link. This restores the Call > Form hierarchy per Hack 2.
Finding 3: License Numbers and Lifetime Warranty ARE Visible Above the Fold (Confirmed)
Severity: Note / Positive Signal Hack applied: Hack 5 (Risk Reversal), Hack 7 (Above-the-Fold Power Formula)
This finding is a confirmation, not a deficiency. License numbers #890459 (Residential) and #3667 (Commercial), the Lifetime Warranty on acrylic products, 10-year workmanship guarantee, and 0% Financing are all present and visible above the fold on the homepage, /showers/, and Metairie city page.
Evidence: Homepage fetch showed "License Numbers: #890459 (Residential), #3667 (Commercial)" in the above-fold block. Showers page and Metairie page confirmed same pattern.
Risk Reversal Grade: B+. The elements are present. The execution gap (see Finding 4) is that the warranty and financing are listed as bullet points in a trust bar rather than being featured in a dedicated risk-reversal narrative block. Hack 5 calls for positioning these as headline-level objection removers, not fine-print line items.
Finding 4: 1-Day Install USP is in the Headline but Disappears on Inner Pages
Severity: P1 Hack violated: Hack 1 (Clarity Before Creativity), Hack 7 (Above-the-Fold Power Formula)
The homepage headline directly leads with the 1-day install: "Your Dream Bathroom — Installed in as Little as 1 Day." This is the single strongest differentiator in the local bath remodel market and it is used correctly on the homepage.
However, the /showers/ page headline is "Shower Remodeling in New Orleans, LA" — the 1-day USP does not appear until mid-page as a tagged line ("Bathrooms Remodeled in as Little as 1 Day"). The Metairie city page headline is "Professional Bathroom Remodel in Metairie, LA" — again burying the USP.
Evidence: /showers/ headline confirmed as generic geo-service headline. 1-day mention confirmed as mid-page appearance. Metairie H1 confirmed as generic.
Intent Behind Intent: A visitor on /showers/ is already past the homepage. They are evaluating whether this company can actually solve their bathroom disruption fear. The hidden emotion is "I don't want my bathroom torn up for weeks." Not leading with the 1-day USP on the showers page is leaving the most powerful objection-removal card on the table.
Fix: Revise /showers/ headline to: "Shower Replacement in New Orleans, LA — Installed in 1 Day." Apply the same formula to every city page: "[Service] in [City] — Done in 1 Day." This is a direct application of the Hack 1 local template: "[Service] in [City] — [Unique Proof Point]."
Finding 5: Social Proof is Below the Fold on Inner Pages — Not Above It
Severity: P1 Hack violated: Hack 3 (Social Proof Positioning)
The homepage carries "4.9 Google Rating" and "Rated by Hundreds of New Orleans Homeowners" above the fold — strong execution. But on /showers/, the 8 named customer testimonials appear "in dedicated section below service overview" per the live fetch. On the Metairie city page, the review section is explicitly below the fold ("below-fold" confirmed in fetch).
Evidence: /showers/ fetch: social proof "positioned in dedicated section below service overview." Metairie fetch: "review section... below-fold."
Hack 3 requirement: Place testimonials ABOVE the fold whenever possible. Specific numbers beat vague praise. Before/After photos outperform stock by 3x.
Fix: Insert a compact social proof bar immediately below the hero section (not in a separate section below the content) on all inner pages. A single star rating + review count + one pull-quote achieves this without restructuring the page. On the /showers/ page, move at least one testimonial from the bottom section into a sidebar or inline card within the first viewport.
Finding 6: No Chat Widget = Missed Low-Friction Lead Channel
Severity: P1 Hack violated: Hack 4 (Friction Elimination), Hack 12 (Micro-Commitments)
No live chat widget (Drift, Intercom, Tidio, or equivalent) was detected on any audited page. For a bath remodeling company, 40-50% of leads research after business hours. A chat widget captures asynchronous visitors who will not call at 10pm but WILL type a quick question.
Evidence: Homepage technical fetch confirmed: "No chat widget scripts detected (Drift, Intercom, Tidio absent)."
Hack 12 relevance: "Check availability" or "Ask a question" micro-commitment steps convert hesitant visitors who are not ready for a full quote but are nudged toward engagement.
Fix: Install Tidio (free tier) or a GHL-embedded chat widget. Configure a "Are you curious about the 1-day install process?" opening message. Route to SMS fallback after hours. This covers Problem-Aware visitors who need reassurance before calling.
Finding 7: Contact Page Headline "Get In Touch" is Generic — Fails Clarity Test
Severity: P1 Hack violated: Hack 1 (Clarity Before Creativity)
The /contact/ page H1 is "Get In Touch." This is the weakest possible headline for a highest-intent page. A visitor who navigated to /contact/ is Most-Aware (Hack CTA copy guide: "Get Your Quote in 60 Seconds"). The headline gives them no confirmation they are in the right place for what they came to do.
Evidence: /contact/ page fetch confirmed H1 as "Get In Touch."
5-second clarity test (Hack 1): Cover the logo. "Get In Touch" tells you nothing about the company, its service, or what the next step is.
Fix: Replace with: "Get Your Free 1-Day Bath Remodel Quote — New Orleans and Surrounding Areas." This passes the 5-second test, reinforces the USP, and matches the Most-Aware visitor's stage.
Finding 8: City Pages Are Templated with Thin Local Differentiation
Severity: P1 Hack violated: Hack 3 (Social Proof Positioning), Hack 1 (Clarity Before Creativity)
The Metairie city page audited is described as "Templated with light customization — reads as fill-in-the-blank marketing rather than company-specific positioning." Local history facts and attraction names are present but no Metairie-specific project photos, no Metairie customer testimonials, and no neighborhood-level social proof are used.
Evidence: Metairie fetch: "While Metairie-specific details are included, the core structure, messaging patterns, and benefit descriptions are generic remodeling contractor templates." The "All About Metairie, LA" section uses geographic filler (Lafreniere Park, Lakeside Shopping Center) rather than conversion-driving content.
Intent Behind Intent: A Metairie homeowner searching for a local contractor wants to see evidence the company has worked in their neighborhood, not facts about Metairie they already know.
Fix: (a) Replace the geographic filler section with 2-3 Metairie-specific customer testimonials sourced from actual reviews. (b) Add one Metairie project photo with caption: "Walk-in shower installed for a Metairie homeowner in 1 day." (c) Adjust headline to include the 1-day USP per Finding 4 fix.
Finding 9: Sticky Bottom Bar Exists but Lacks Form Option
Severity: P2 Hack violated: Hack 4 (Friction Elimination), Hack 9 (Phone Number Psychology)
The sticky bottom bar is confirmed active ("Call Now" and "Free Quote" CTAs persist at bottom). This is good execution of Hack 9. However, both sticky CTAs appear to trigger modals, and "Free Quote" likely opens the same consultation modal as the header CTAs. There is no "Text Us" option in the sticky bar, missing a high-converting mobile-friendly alternative.
Evidence: Homepage technical fetch: "Floating/Sticky Bottom Bar: 'Call Now' and 'Free Quote' CTAs persist at bottom." Both resolve through the modal system.
Fix: Add a third sticky option: "Text Us" linking to sms:+15045136366. Research shows 35% of mobile users prefer SMS to calling for initial contact with local service businesses. Low-friction text initiation is a direct Hack 12 micro-commitment.
Finding 10: No Urgency or Scarcity Signals Present on Any Page
Severity: P2 Hack violated: Hack 6 (Urgency and Scarcity - Authentic Only)
No authentic urgency language was detected on any of the four audited pages. The /showers/ fetch explicitly noted: "Minimal explicit urgency; lifestyle benefit over scarcity detected." The homepage, /contact/, and Metairie pages similarly contain no scheduling-based or capacity-based urgency signals.
Evidence: /showers/ fetch: "No time limits or pressure tactics detected." Homepage CTA copy ("Get Your FREE Design Consultation") carries no urgency element.
Hack 6 rule: Authentic urgency converts. Fake urgency destroys local trust permanently. TurnKey has authentic capacity constraints (they offer 1-day installs which requires crew scheduling).
Fix: Add authentic urgency language to the primary CTA section: "New Orleans crews are booking [X] weeks out — secure your date today." Or seasonal: "Summer booking window open — limited July spots available." This is factual for a busy remodeler and directly triggers the scarcity trigger without fabrication.
Summary Score Table
| Page | Above-Fold Power (Hack 7) | Social Proof Position (Hack 3) | CTA Clarity (Hack 2) | Friction Level (Hack 4) | Risk Reversal (Hack 5) | USP Usage (Hack 1) | Overall CRO Grade |
|---|---|---|---|---|---|---|---|
| Homepage | A- (strong USP, too many CTAs) | B+ (rating present, testimonials below) | C (3 competing CTAs) | C (modal-only) | A- (license+warranty visible) | A (1-day in H1) | B- |
| /showers/ | C+ (USP buried mid-page) | D (social proof below service content) | C (same 3-CTA problem) | C (modal-only) | B (trust bar present) | D (1-day not in H1) | C |
| /contact/ | D (generic "Get In Touch" H1) | B (trust signals near form area) | C (3 CTAs again) | D (modal form, no inline) | B (badges present) | D (no USP in headline) | D+ |
| /service-areas/metairie/ | C (generic H1, no USP) | D (no local testimonials above fold) | C (3-CTA problem) | C (modal-only) | B (trust bar present) | D (1-day not in H1) | C- |
Priority Fix Stack (ranked by conversion impact per effort)
| Rank | Fix | Severity | Estimated Lift |
|---|---|---|---|
| 1 | Add inline 3-field form above fold on homepage + /contact/ | P0 | High |
| 2 | Reduce to single primary CTA per page (Call hierarchy) | P0 | High |
| 3 | Push 1-day USP into H1 on /showers/ and all city pages | P1 | High |
| 4 | Add social proof bar immediately below hero on inner pages | P1 | Medium-High |
| 5 | Replace /contact/ headline with conversion-specific copy | P1 | Medium |
| 6 | Install chat/SMS widget (Tidio or GHL) | P1 | Medium |
| 7 | Replace city page geographic filler with local testimonials | P1 | Medium |
| 8 | Add authentic urgency language to primary CTA sections | P2 | Medium |
| 9 | Add "Text Us" SMS option to sticky mobile bar | P2 | Low-Medium |
Method Notes
All findings derived from live page fetch (2026-06-11). No GSC/GA data available (not our property). CRO scoring applied against the 12 Conversion Hacks framework (conversion-optimizer skill) and the Intent Behind Intent pre-execution checklist. Mobile viewport meta confirmed present. Click-to-call tel: links confirmed on phone numbers. Above-fold trust signals (license numbers 890459/3667, lifetime warranty, 0% financing) confirmed visible on all audited pages.
Audit C: Forensics Lane - Backlink Archaeology, Sister Domain, Press-Release Footprint
Investigator: Sherlock (Deep Forensics Lane) Date: 2026-06-11 Target: https://www.turnkeybathremodel.com Triggered by: Phase 0 data: 691/735 backlinks "broken" (94%), sister domain ranking above target, 440 organization-platform + 103 news-platform links
1. Investigation Summary
Three parallel investigations:
- What are the 691 "broken" backlinks actually pointing to, and why are they flagged broken?
- Is
turnkeybathroomrenovations.comthe same owner? Is it cannibalizing the target? - What is the press-release/syndication footprint and is it helping or hurting?
All evidence gathered from: DataForSEO API (direct), Wayback CDX API, live HTTP probes, HTML extraction from both domains.
GSC/GA not available (not our property) - stated explicitly where it matters.
2. Evidence Chain
2.1 The 691 "Broken" Backlinks: Root Cause
Evidence 1 - DataForSEO domain summary confirms 691 broken_backlinks, broken_pages=9
Source: POST /v3/backlinks/summary/live for turnkeybathremodel.com, retrieved 2026-06-11.
{
"broken_backlinks": 691,
"broken_pages": 9,
"backlinks": 699
}
Evidence 2 - All 9 "broken pages" return HTTP 403, NOT HTTP 404
Source: DataForSEO POST /v3/backlinks/domain_pages/live with is_broken: true, retrieved 2026-06-11.
All 9 entries show "status_code": 403 with "size": 2460, "encoded_size": 810 (identical fingerprint = WAF/bot-blocker response page, not a real 404).
The 9 pages flagged include:
https://www.turnkeybathremodel.com/(homepage)https://www.turnkeybathremodel.com/contact/https://www.turnkeybathremodel.com/bathtubs/bathtubs-replacement/https://www.turnkeybathremodel.com/bathtubs/walk-in-tubs/https://www.turnkeybathremodel.com/bathtubs/tub-liners/https://www.turnkeybathremodel.com/what-is-a-barrier-free-shower-and-who-needs-one/https://www.turnkeybathremodel.com/?utm_source=gbp&utm_medium=gbph&utm_campaign=nola- Two directory-sourced UTM-appended URLs
Evidence 3 - Human HTTP probes confirm pages return 200
Live curl probes from this session (2026-06-11) return HTTP 200 for all flagged pages except /gallery/ (404). The homepage, /contact/, /bathtubs/bathtubs-replacement/, /bathtubs/walk-in-tubs/, /bathtubs/tub-liners/ all return 200.
Evidence 4 - WPX Cloud anti-bot is confirmed
Response headers: X-Edge-Location: WPX CLOUD/MIA03, Server: WPX CLOUD/MIA03. WPX's bot blocker returns a 403 + 810-byte br-compressed payload to crawler user-agents. DataForSEO's crawler is flagged as a bot.
Conclusion on "broken" backlinks - Confidence: CONFIRMED
The 691 broken backlinks are NOT real broken links. They are a WPX Cloud bot-blocker artifact. DataForSEO's crawler receives 403 responses from WPX's edge WAF, which DataForSEO records as "broken pages." The actual pages return 200 to browsers. The one genuinely broken page is /gallery/ (verified HTTP 404 - Wayback shows it existed as recently as 2024-10-14).
Implication (P1): This means the link profile is not as damaged as the Phase 0 number suggests. However, one real broken page exists (/gallery/), and if any links pointed to it, those are genuinely lost.
2.2 What the Links Are Actually Pointing To
Evidence 5 - Live backlink target URL distribution
Source: DataForSEO POST /v3/backlinks/backlinks/live with backlinks_status_type: live, limit 50, retrieved 2026-06-11.
All 50 live backlinks point to only 6 unique target URLs:
https://www.turnkeybathremodel.com/- 17 linkshttps://www.turnkeybathremodel.com/contact/- 15 linkshttps://www.turnkeybathremodel.com/bathtubs/bathtubs-replacement/- 15 linkshttps://www.turnkeybathremodel.com/bathtubs/tub-liners/- 1 linkhttps://www.turnkeybathremodel.com/bathtubs/walk-in-tubs/- 1 linkhttps://www.turnkeybathremodel.com/what-is-a-barrier-free-shower-and-who-needs-one/- 1 link
Implication (P1): Zero links to any service-area city pages. Zero links to /showers/ or other high-priority commercial pages. The link profile is entirely concentrated on homepage, contact, and two bathtub pages - the press release anchor pattern.
2.3 The Press-Release / Syndication Footprint
Evidence 6 - xpr-gannett.com is the dominant referring domain
Source: DataForSEO POST /v3/backlinks/referring_domains/live, retrieved 2026-06-11.
xpr-gannett.com: 138 backlinks, 138 broken (bot-blocked), rank 166marketminute.com: 39 backlinks, 39 broken, rank 115mybluehost.me: 12 backlinks, 12 broken, rank 77
Evidence 7 - Press Advantage is the distribution platform
Source: live backlink samples showing URLs like https://ebg.wpw.mybluehost.me/story/65982/turnkey-bath-remodel-announces-50-year-non-pro-rated-product-warranty... and https://lifestyle.celebhomes.net/story/category/partners/press-advantage/. Press Advantage (pressadvantage.com) is a paid press release distribution service. The headline appears repeatedly across all sources: "TurnKey Bath Remodel Announces 50-Year Non-Pro-Rated Product Warranty with 10-Year Workmanship Coverage."
Evidence 8 - xpr-gannett.com returns 403 to all crawlers
Live HTTP probe to https://lubbockonline.xpr-gannett.com/press-release/story/107398/... returns HTTP 403 even with browser User-Agent. This is a Gannett XPR (cross-publish/resyndication) network that restricts crawler access. All 138 links from this domain are real published press releases but are inaccessible to link crawlers.
Evidence 9 - Radio station domains with rank 0-7 in the referring domain list
Domains like kbew98country.com (rank 7), kynt1450.com (rank 7), all80sz1063.com (rank 0), q923radio.com (rank 0), etc. - all with 4-6 links each, all broken. These are small-market radio station news feeds that syndicate press releases. Domain rank 0-7 = negligible link equity.
Evidence 10 - Link types: 527 anchor + 172 image, 28 nofollow Source: DataForSEO summary. The press release syndication generates both anchor text links and image links (logos in press release boilerplate), explaining the 172 image backlinks.
Evidence 11 - Geographic distribution anomaly
Source: DataForSEO summary, referring_links_countries. Only 12 links from US IPs. 617 links show empty country. The xpr-gannett subdomain sites are geo-tagged as US newspapers (Lubbock Online, Des Moines Register, Naples News, Cincinnati etc.) but the DNS/IP resolution shows non-US routing, causing blank country attribution. This is characteristic of CDN-served press release archives.
Assessment of press-release footprint: The company purchased at least one (likely multiple) Press Advantage distributions. This generated approximately 440 "organization" platform links (directory syndication) and 103 "news" platform links (Gannett XPR + radio stations). The press releases linked to: homepage, contact page, and /bathtubs/bathtubs-replacement/ with anchor text "TurnKey Bath Remodel centers on bathroom remodeling."
Did it help? Confidence: PROBABLE NO for organic rankings. The referring domains have domain rank 7 to 166. The press content is a product warranty announcement, not locality-relevant or topically authoritative for bathroom remodeling in New Orleans. The anchor text profile concentrates on brand + generic. Zero links to city pages or shower/tub service pages. The site still has zero top-3 positions and ranks #19 for "shower replacement new orleans" at best. The press release spend built a facade of links that are: (a) bot-blocked so tools misread them as broken, (b) concentrated on two commercial pages with no geographic signal, and (c) from low-equity domains with no topical relevance to NOLA bath remodeling.
2.4 Site History Timeline (Wayback CDX)
Evidence 12 - Site launched April 2024
Source: Wayback CDX API https://web.archive.org/cdx/search/cdx?url=turnkeybathremodel.com*, retrieved 2026-06-11.
- First Wayback snapshot: 2024-04-15 (homepage 200)
- WHOIS: domain registered 2023-11-29
- DataForSEO first_seen: 2024-09-07 (when DataForSEO first indexed the backlink profile)
- The domain is approximately 18-19 months old as of the audit date
Evidence 13 - URL structure stable throughout history All pages present in the CDX export (/bathtubs/, /bathtubs/tub-liners/, /bathtubs/walk-in-tubs/, /showers/, /service-areas/[city]/, /blog/) show consistent 200 responses from first snapshot onward. No mass URL migration is visible in the Wayback data.
Evidence 14 - /gallery/ was live until at least 2024-10-14, now 404
CDX shows https://www.turnkeybathremodel.com/gallery/ returning 200 on 2024-06-15 and 2024-10-14. Current HTTP probe returns 404. This is the one confirmed deleted page with no redirect. It is unclear how many backlinks pointed to /gallery/ specifically.
Evidence 15 - Content additions are ongoing
CDX shows new blog posts appearing through 2026-04 (/can-you-renovate-a-bathroom-in-one-day/, /do-i-need-to-move-out-during-a-bathroom-renovation/, /do-walk-in-showers-increase-home-value/, /how-much-does-a-barrier-free-shower-cost/). Content cadence is active.
2.5 Sister Domain Investigation: turnkeybathroomrenovations.com
Evidence 16 - Same hosting platform confirmed
Both domains serve via WPX CLOUD hosting with PHP/8.3.31. IP addresses are both in the 194.1.147.0/24 subnet (target: 194.1.147.98; sister: 194.1.147.78). This is a WPX managed hosting environment. Same account or same agency hosting multiple properties.
Evidence 17 - Identical URL structure
Sister domain has: /bathtubs/walk-in-tubs/, /bathtubs/tub-liners/, /showers/, /service-areas/baton-rouge/, /service-areas/covington/, /service-areas/hammond/, /service-areas/harahan/, /service-areas/kenner/, /service-areas/madisonville/, /service-areas/mandeville/, /service-areas/metairie/, /service-areas/slidell/, /service-areas/gretna/, /service-areas/laplace/, /service-areas/st-rose/.
This matches the target domain's service area structure exactly. Identical service territories.
Evidence 18 - Different phone numbers (separate GMB listings)
- Target (turnkeybathremodel.com): (504) 513-6366
- Sister (turnkeybathroomrenovations.com): (504) 603-0735 Source: HTML extraction from both homepages, 2026-06-11. Different phone numbers suggest either DNI (dynamic number insertion for tracking) or two genuinely separate GMB/business listings.
Evidence 19 - Sister domain title on walk-in-tubs page: "NOLA Affordable Walk-in Tub"
Source: HTML of https://www.turnkeybathroomrenovations.com/bathtubs/walk-in-tubs/, retrieved 2026-06-11.
Title tag: NOLA Affordable Walk-in Tub | TurnKey Bathroom Renovations
This is the page ranking #8 and #11 for "walk in tub new orleans" (Phase 0 data).
Evidence 20 - Target domain walk-in-tubs page title: "Walk-In Tubs in New Orleans, LA | TurnKey Bath Remodel"
Source: HTML of https://www.turnkeybathremodel.com/bathtubs/walk-in-tubs/, retrieved 2026-06-11.
Same service, same city, different brand name on the domain. Both pages compete for "walk in tub new orleans."
Evidence 21 - Sister domain schema: no full address, just "New Orleans"
Sister LocalBusiness schema: "name":"Turnkey Bathroom Renovations" with only "@id":"https://www.turnkeybathroomrenovations.com" and no telephone or street address in the schema. The visible HTML shows <p><strong>Address</strong>New Orleans</p> with no street address. This is weaker local SEO than the target domain.
Evidence 22 - Target domain schema has full address + phone
Target /bathtubs/walk-in-tubs/ schema includes "telephone": "(504) 513-6366" and full PostalAddress with "streetAddress": "3436 Magazine St Suite 414-N". Stronger local entity markup.
Evidence 23 - Sister domain uses LeadConnectorHQ (GoHighLevel) forms
Sister domain embeds https://api.leadconnectorhq.com/widget/form/gnGZ3m3VudMYe4cU5YOG (a GHL form). Target domain also uses GHL form infrastructure. Same marketing stack = same operator.
Evidence 24 - WHOIS: both domains privacy-protected Both use Whois Privacy Corp. (Nassau, Bahamas) via Internet Domain Service BS Corp. No direct ownership attribution from WHOIS. Same registrar/privacy provider is a weak corroborating signal.
Conclusion on sister domain - Confidence: CONFIRMED same operator / PROBABLE cannibalization
Same operator: Both domains share WPX Cloud hosting on the same /24 IP subnet, identical site structure, identical service territory, same GHL lead capture platform. Probability of separate ownership is near zero.
Cannibalization: For "walk in tub new orleans," the sister domain ranks #8 and #11 while the target domain does not appear in the top 20. Google is allocating ranking equity to the sister domain (which has a NOLA-keyword-optimized title) rather than the target. This is a textbook same-owner cannibalization scenario: both domains target the same searcher intent, same geography, same service.
Why sister ranks better for that query: The sister domain title "NOLA Affordable Walk-in Tub" is more keyword-targeted to the "walk in tub new orleans" head term. The target title "Walk-In Tubs in New Orleans, LA" is also strong but the sister domain may have more referring domains specifically for that page (unverified - not available without GSC).
Risk of operating two domains (P0): Google's spam policies explicitly prohibit operating multiple sites to capture more SERP real estate for the same business. The May 2022 Product Reviews Update, March 2024 Core Update, and the June 2024 Site Reputation Abuse policy all tightened enforcement on this pattern. If Google identifies these as the same operator (likely via GMB linkage, IP proximity, identical CMS, identical GHL account), both domains face devaluation risk.
2.6 GBP/GMB Status Investigation
Evidence 25 - UTM URL exists in DataForSEO backlink crawl
DataForSEO records a page visit to https://www.turnkeybathremodel.com/?utm_source=gbp&utm_medium=gbph&utm_campaign=nola with first_visited: 2025-12-20. This confirms a GMB listing for the target domain exists or existed as recently as late 2025.
Evidence 26 - Google Places autocomplete returns nothing (Phase 0 data) Phase 0 confirms Google Places autocomplete returns nothing for "TurnKey Bath Remodel" with or without New Orleans. Causes: (a) listing may use a slightly different display name, (b) listing may be suspended or unverified, (c) Service Area Business with hidden address may have lower autocomplete prominence, or (d) the UTM data is from a paid placement/ad rather than an organic GMB click. Cannot resolve without GMB dashboard access.
Evidence 27 - Sister domain has its own GMB line Different phone (504) 603-0735 on sister domain suggests a separate GMB listing. Two GMB listings for the same physical business at the same address can trigger suspension of both.
3. Eliminated Hypotheses
Eliminated: Mass URL migration killed the backlink profile Evidence against: Wayback CDX shows consistent 200 responses for all major URLs from April 2024 onward. No evidence of a URL structure change or domain migration in the historical record. Eliminated with HIGH confidence.
Eliminated: The site suffered a manual action or algorithmic penalty that removed it from rankings Evidence against: The site indexes normally (returns 200, appears in DataForSEO keyword data with 48 keywords), Wayback shows continuous activity. The low rankings are explained by age (domain registered 2023-11-29, 18 months old), thin link equity (only 36 live links across 157 domains per DataForSEO analysis), and sister-domain cannibalization. A manual action would typically show a GSC message - not available, but behavior is inconsistent with a hard penalty. Eliminated with MODERATE confidence.
Eliminated: The press-release links provide meaningful negative SEO risk Evidence against: Spam score is only 13/100 (Phase 0 data). The press release domains are low-equity but not toxic (spam score 0 in DataForSEO for xpr-gannett, marketminute). They are not PBN or link farm patterns. Their main failure is zero topical or geographic value, not active harm. Eliminated with HIGH confidence.
4. Root Causes
RC-1: Bot-Blocker Misidentification of Broken Links (Confirmed)
The "691 broken backlinks" figure is a WPX Cloud WAF artifact. DataForSEO's crawler receives 403 responses from WPX CLOUD/MIA03, which records them as broken target pages. Actual pages return 200 to browsers. This is a data quality issue, not an SEO crisis.
Confidence: CONFIRMED
RC-2: Press-Release Footprint Provides Near-Zero SEO Lift (Confirmed)
The 440 organization + 103 news platform links come entirely from a single Press Advantage campaign ("50-Year Warranty" announcement). The links are bot-blocked, come from low-rank domains (rank 0-166), have no New Orleans topical relevance, and point exclusively to homepage/contact/bathtubs-replacement with no geographic anchor signal. They did not move any SERP needle.
Confidence: CONFIRMED
RC-3: Sister Domain Cannibalization on Walk-In Tub Queries (Confirmed)
turnkeybathroomrenovations.com ranks #8 and #11 for "walk in tub new orleans" while turnkeybathremodel.com does not appear in the top 20 for that term. Both domains are operated by the same party (WPX CLOUD same subnet, identical GHL forms, identical URL structure, identical service territory). Google is splitting or misdirecting ranking signals across two competing same-entity domains.
Confidence: CONFIRMED
RC-4: No Real Link Equity to Revenue Pages (Confirmed)
DataForSEO live link analysis shows zero backlinks to any service-area city page, zero to /showers/ or its children, zero to /faq/ or /our-projects/. All link equity flows to homepage, contact, and one bathtub page. City pages (which are the intended local ranking drivers) have zero external link support.
Confidence: CONFIRMED
RC-5: /gallery/ Deleted Without Redirect (Probable)
/gallery/ returns HTTP 404. Wayback shows it existed until at least 2024-10-14. If any external links pointed to /gallery/, those are permanently lost. Extent of link loss to this URL is unknown without full backlink crawl segmented by URL (DataForSEO filter API rejected in this session).
Confidence: PROBABLE
5. Recommended Fixes
[P0] Consolidate the Two Domains (RC-3)
Who: Client decision + Tommy (technical SEO lead) to execute.
Action: Decide on one canonical domain. Given turnkeybathremodel.com is the primary investment, perform a 301 redirect migration from turnkeybathroomrenovations.com to turnkeybathremodel.com, mapping all equivalent pages (e.g., /bathtubs/walk-in-tubs/ to /bathtubs/walk-in-tubs/). Consolidate GMB listings to one verified profile at the target domain. Announce the consolidation to the host.
Risk of inaction: Operating two competing domains for the same business violates Google's spam policies. Google may devalue both. The sister domain's walk-in-tub rankings (which are currently the only competitive positions for that service) may be erased in the next core update if identified as a manipulation pattern.
Timeline: Immediate discussion with client. Execute before the next Google core update (next expected window: August-September 2026 based on historical cadence).
[P0] Resolve Dual GMB Listing Risk (RC-3, Evidence 27)
Who: Tommy (local SEO) + Client. Action: Audit both phone numbers in Google Business. If two GMB listings exist for the same physical address (3436 Magazine St Suite 414-N), merge them into one. Duplicate GMB listings for the same business at the same address are grounds for suspension of both. The target domain's UTM-tracked URL confirms a GBP profile exists; ensure it is the primary and fully verified listing.
[P1] Fix WPX Bot-Blocker for DataForSEO Crawler (RC-1)
Who: Client + WPX support. Action: Request WPX whitelist the DataForSEO crawler user-agent (or the IP range used by DataForSEO crawlers). This will not affect human traffic but will allow backlink data to report accurately. Without this fix, all link-building and backlink auditing efforts will show inflated "broken" counts. Note: This is a reporting/tooling fix. It does not affect rankings directly. Priority is lower than P0 consolidation.
[P1] Implement 301 Redirect from /gallery/ to /our-projects/ (RC-5)
Who: Tommy or Merlin (technical).
Action: Add a 301 redirect in WPX / WordPress from https://www.turnkeybathremodel.com/gallery/ to https://www.turnkeybathremodel.com/our-projects/ (which is live and contains project photos). Recover any residual link equity from the deleted gallery page.
[P1] Redirect Press-Release Links to Geo-Targeted Pages (RC-4)
Who: Tommy (link strategy).
Action: The press-release links that currently land on /contact/ and /bathtubs/bathtubs-replacement/ deliver zero geographic signal. Future press releases (if used) should anchor text and link to service-area city pages: /service-areas/new-orleans/, /service-areas/metairie/, etc., with geo-specific anchor text like "bathroom remodeling New Orleans." Retroactive: cannot change existing press release links.
[P2] Build Real Links to City Service Pages (RC-4)
Who: Einstein (link strategy) / Shakespeare (content). Action: The 14 city pages have zero external links. Implement a local link-building program: sponsorships of New Orleans local organizations, NOLA home improvement blogger outreach, Better Business Bureau of Greater New Orleans profile, local contractor association listings (NARI New Orleans chapter). Target anchor text: "[city] bathroom remodeling," "[city] shower installation."
6. Residual Unknowns
-
GSC not available. Cannot confirm whether Google's index is treating the two domains as the same entity, whether there is a manual action message, or which specific keywords drove historical traffic changes.
-
Full broken-link URL segmentation blocked. The DataForSEO backlinks API rejected the
filtersparameter in this session. A full breakdown of which specific URLs the 691 "broken" backlinks pointed to could not be completed at the URL level. The referring-domain-level analysis (showing all broken_backlinks = 403 from WPX WAF) is sufficient to establish the root cause, but exact URL-level confirmation requires a live tool run with filters working. -
Sister domain GMB status unverified. Cannot confirm whether (504) 603-0735 is a DID/tracking number for the same GMB or a separate GMB listing without GMB dashboard access.
-
Press Advantage account history. Unknown how many press releases were distributed, at what cost, and whether they triggered any footprint flags in Google's link spam evaluator. The anchor text and target URL analysis suggests a minimum of 3-4 press releases (different story IDs observed in URL patterns).
-
Who actually owns/controls the sister domain. WHOIS is privacy-protected. Same IP subnet and same stack confirms same agency/host but does not confirm same business owner if two different clients share an agency.
7. Scored Summary Table
| # | Finding | Severity | Confidence | Evidence Source |
|---|---|---|---|---|
| 1 | 691 "broken" backlinks are WPX bot-blocker 403s, NOT real broken links | P1 (data distortion) | Confirmed | DataForSEO domain_pages status_code:403, live HTTP probes returning 200 |
| 2 | /gallery/ genuinely deleted (404), no redirect | P1 | Confirmed | Live HTTP probe 404, Wayback CDX 200 through 2024-10-14 |
| 3 | Press-release footprint (440 org + 103 news links) provides zero ranking lift; all from single warranty campaign | P1 | Confirmed | DataForSEO referring_domains, live backlink samples (xpr-gannett, marketminute, Press Advantage) |
| 4 | All 36 live external links concentrate on 3 URLs; zero links to city pages or shower pages | P1 | Confirmed | DataForSEO backlinks live, target_url distribution |
| 5 | Sister domain turnkeybathroomrenovations.com is same operator (identical WPX stack, GHL, URL structure, service territory) | P0 | Confirmed | Server headers (WPX CLOUD/MIA03), IP subnet match, GHL form presence, URL structure mirror |
| 6 | Sister domain cannibalizes "walk in tub new orleans" (#8/#11) from target domain (not in top 20) | P0 | Confirmed | Phase 0 SERP data + HTML extraction confirming same service/geo page exists on both domains |
| 7 | Two different phone numbers suggest two separate GMB listings for same business address | P0 | Probable | HTML extraction: target (504) 513-6366, sister (504) 603-0735 |
| 8 | GBP listing exists (UTM evidence) but has low/zero autocomplete prominence | P1 | Probable | DataForSEO backlink crawl (utm_source=gbp URL first_visited 2025-12-20), Phase 0 autocomplete finding |
| 9 | Press-release links are bot-blocked (403 from xpr-gannett even with browser UA), reducing their already-low link equity to near zero | P2 | Confirmed | HTTP probe to xpr-gannett with browser UA returns 403 |
| 10 | Domain age (18 months, first seen 2024-09) is a compounding factor for all ranking weakness | P1 | Confirmed | WHOIS registration 2023-11-29, Wayback first snapshot 2024-04-15, DataForSEO first_seen 2024-09-07 |
Report by Sherlock, Deep Forensics Lane. Handoff recommendations: P0 items to Tommy (technical SEO) and client. P1 link-building to Einstein. P1 redirect to Tommy/Merlin. No fabricated data - all claims sourced to live API calls or HTTP probes with dates.
Audit C: Schema Structured Data Audit
Client: TurnKey Bath Remodel (https://www.turnkeybathremodel.com/) SchemaBrain Lane: Full JSON-LD / microdata stack Auditor: SchemaBrain (SB) Date: 2026-06-11 Method: Merlino Schema IP (Daryl Osborne + Cory Hubbell + Chris Labbate), schema.org v30.0 Pages crawled: Homepage, /showers/, /bathtubs/walk-in-tubs/, /service-areas/metairie/, /step-by-step-guide-installing-tub-liner/, /faq/, /contact/
Executive Summary
The site has a partially-built schema foundation: NAP is consistent, 14 areaServed cities are present, FAQPage exists on /faq/, and BreadcrumbList appears on most inner pages. However it fails every Daryl Osborne signature check (no @id entity anchor tied to a GMB CID, no mainEntityOfPage, no additionalType with Wikipedia URLs, no disambiguatingDescription, no knowsAbout), carries a duplicate WebSite block on the homepage, has a thin hasOfferCatalog (one generic service vs. 6 distinct services), issues a sister-domain entity collision that Google cannot resolve, and puts Organization as Article author on the top-traffic blog post. There is no AggregateRating on the entity (correct per policy). No microdata, no HowTo on the guide post, no DefinedTermSet/glossary, no FAQPage on service pages. The corrected stacks are provided in Section 5.
Section 1: Page-by-Page Schema Inventory (BEFORE state)
Homepage (https://www.turnkeybathremodel.com/)
| Block | @type | @id | Issues |
|---|---|---|---|
| 1 | WebSite | NONE | Duplicate of Block 3; no @id; empty description |
| 2 | [HomeAndConstructionBusiness, LocalBusiness] | #organization | Missing: mainEntityOfPage, additionalType, disambiguatingDescription, knowsAbout, foundingDate, @id not GMB CID |
| 3 | WebSite + SearchAction | #website | Valid; publisher cross-reference correct |
Missing entirely: BreadcrumbList, FAQPage, AboutPage linkage
/showers/ (https://www.turnkeybathremodel.com/showers/)
| Block | @type | @id | Issues |
|---|---|---|---|
| 1 | WebPage | NONE | about + mentions entity lists - generic; no mainEntity; no @id |
| 2 | [HomeAndConstructionBusiness, LocalBusiness] | #organization | Same global entity block copied verbatim including hasOfferCatalog - entity pollution via copied global block on service page |
| 3 | Service | /showers/#service | name = "Shower Services" (generic); description is boilerplate; missing serviceOutput, category, brand; areaServed cities lack Wikidata URLs |
Missing: FAQPage, BreadcrumbList, specific sub-service nodes (walk-in shower, tub-to-shower conversion, shower enclosure, shower liner)
/bathtubs/walk-in-tubs/ (https://www.turnkeybathremodel.com/bathtubs/walk-in-tubs/)
| Block | @type | @id | Issues |
|---|---|---|---|
| 1 | WebPage | NONE | about/mentions entity lists; "bath" sameAs links to Bath, Somerset (WRONG Wikipedia article - Bath Somerset is a UK city) |
| 2 | [HomeAndConstructionBusiness, LocalBusiness] | #organization | Global entity block repeated; same issues |
| 3 | Service | /bathtubs/walk-in-tubs/#service | Description truncated with "..." - raw DB value showing; no category, serviceOutput, brand |
Missing: FAQPage, BreadcrumbList, HowTo potential
/service-areas/metairie/ (https://www.turnkeybathremodel.com/service-areas/metairie/)
| Block | @type | @id | Issues |
|---|---|---|---|
| 1 | WebPage | NONE | about/mentions; entity lists have vague terms (Kitchen and Bath Showrooms, HOAs) not relevant to the service context |
| 2 | [HomeAndConstructionBusiness, LocalBusiness] | #organization | Global entity block repeated |
| 3 | [HomeAndConstructionBusiness, LocalBusiness] | /service-areas/metairie/#localbusiness | DUAL-ENTITY problem: a second LocalBusiness node for Metairie with the NOLA address - does not represent Metairie, confusing for entity resolution |
| 4 | ItemList | /service-areas/metairie/#services-list | Services listed as ItemList not hasOfferCatalog - semantic mismatch; duplicate "Bathtub Replacement" entry in same list |
| 5 | BreadcrumbList | #breadcrumb | Valid |
Missing: FAQPage with Metairie-specific questions, GeoCircle for service radius, no areaServed Wikidata URL for Metairie
/step-by-step-guide-installing-tub-liner/ (top-traffic blog post)
| Block | @type | @id | Issues |
|---|---|---|---|
| 1 | [HomeAndConstructionBusiness, LocalBusiness] | #organization | Global entity block on blog post - unnecessary; no link between entity and article content |
| 2 | Article | #article | author is Organization not Person - kills E-E-A-T signal; no FAQPage; no HowTo despite step-by-step content; no speakable |
| 3 | BreadcrumbList | #breadcrumb | Valid - 3 levels including category |
Also noted: 2 em dashes appear in raw HTML schema content (warrantyScope field on the global org block) - the Merlino no-em-dash rule applies to delivered schema content.
/faq/ (https://www.turnkeybathremodel.com/faq/)
| Block | @type | @id | Issues |
|---|---|---|---|
| 1 | [HomeAndConstructionBusiness, LocalBusiness] | #organization | Global entity block repeated unnecessarily |
| 2 | FAQPage | #faqpage | 13 Q&As present, good content quality; no mainEntity cross-reference to organization; no author |
| 3 | BreadcrumbList | #breadcrumb | Valid |
/contact/ (https://www.turnkeybathremodel.com/contact/)
| Block | @type | @id | Issues |
|---|---|---|---|
| 1 | [HomeAndConstructionBusiness, LocalBusiness] | #organization | Global entity block |
| 2 | ContactPage | #contactpage | mainEntity inlines the full LocalBusiness again - redundant duplication; should reference by @id only |
| 3 | BreadcrumbList | #breadcrumb | Valid |
Section 2: Cross-Site Sister Domain Entity Risk
Finding: Unresolved Entity Collision (P0)
turnkeybathroomrenovations.com carries independent schema:
- Block 1:
WebSitename="Turnkey Bathroom Renovations" - Block 2:
Organizationname="Turnkey Bathroom Renovations" - Block 3:
LocalBusiness@id=https://www.turnkeybathroomrenovations.com
The sister domain:
- Uses a DIFFERENT entity name ("Turnkey Bathroom Renovations" vs "TurnKey Bath Remodel")
- Has its own @id anchor pointing to the sister domain root - a separate entity in Google's graph
- Ranks positions #8 and #11 for "walk in tub new orleans" (per CONTEXT.md Phase 0 data)
- Has virtually no authority on the sister domain entity
Effect: Google sees TWO separate business entities competing for the same keywords with no declared relationship. The sister domain's ranking suppresses the main domain. The schema on the sister domain gives it no entity-signal, but its ranking still steals clicks that belong to the main entity.
Fix options (schema layer):
- If same company: add
sameAsto the sister domain's Organization pointing to the main domain entity. AddOrganization.sameAson the main domain pointing to the sister domain. This signals co-identity. - Long-term: 301 the sister domain to the main domain and consolidate. Schema alone cannot fix structural duplication - this is a business decision that requires other lanes (A/B).
Section 3: Findings Table
| # | Finding | Severity | Method Rule | Evidence |
|---|---|---|---|---|
| F-01 | @id anchor is a page-fragment URL (#organization), NOT a GMB CID or kg:/g/ MID | P0 | Daryl Osborne signature pattern: @id must be GMB CID link or Knowledge Graph MID | Observed: "@id": "https://www.turnkeybathremodel.com/#organization" across all pages |
| F-02 | mainEntityOfPage absent from all entity blocks | P0 | Daryl: mainEntityOfPage points to GMB CID, "designed to point Google to who is behind the definition" | mainEntityOfPage key: False on all 7 pages |
| F-03 | Sister domain entity collision: two separate entities for what is likely one business | P0 | Daryl anti-stuffing: entity pollution from competing assets not unified by schema; Labbate: remove what does not belong from entity graph | turnkeybathroomrenovations.com @id=its own root; distinct name; ranks #8 and #11 for target keywords per Phase 0 |
| F-04 | Duplicate WebSite block on homepage (Block 1 has no @id, Block 3 has @id) | P1 | Schema.org data model: single canonical typed entity per page; duplicate declarations with divergent property sets create parser ambiguity | Two separate WebSite blocks extracted from homepage; Block 1: no @id, no description; Block 3: correct |
| F-05 | additionalType missing: no Wikipedia category URLs on entity | P1 | Daryl: additionalType = array of Wikipedia URLs for the business category; signals to Google what type of entity this is | "additionalType" key: absent from all org blocks |
| F-06 | disambiguatingDescription absent from all entity blocks | P1 | Daryl: disambiguatingDescription always present; "second description that disambiguates the entity" | Key absent across all pages |
| F-07 | knowsAbout absent from entity - weakens topical authority signal | P1 | Labbate Step 1: entity establishment via advanced schema; Hubbell: schema must hold content parity; entity without knowsAbout = unfocused lens | Key absent from all org blocks |
| F-08 | hasOfferCatalog names only "Acrylic Bathroom Products" as one generic Offer - the site actually offers 6+ distinct services | P1 | Daryl: one schema focus per page but the entity catalog should enumerate actual services; Labbate: entity gap analysis | OfferCatalog itemListElement has 1 Offer: "Acrylic Bathroom Products"; site offers shower installs, tub liners, walk-in tubs, tub-to-shower conversions, barrier-free showers, shower surrounds as distinct products |
| F-09 | areaServed City nodes lack Wikidata URLs | P1 | Daryl: areaServed: {"@type":"City","name":..., "url": WIKIDATA item URL} | All 14 City nodes have only name, no url property |
| F-10 | Service pages /showers/ and /bathtubs/walk-in-tubs/ have no FAQPage schema despite user-intent signals present in page content | P1 | DGS FAQ SOP: FAQ schema on clustered-question pages; Hubbell AEO: FAQPage is an extractable unit | FAQPage key absent on both service pages |
| F-11 | Service pages have no BreadcrumbList | P1 | schema.org BreadcrumbList: required for site structure signal on inner pages | BreadcrumbList absent on /showers/ and /bathtubs/walk-in-tubs/ |
| F-12 | Blog post author is Organization, not Person | P1 | DGS 3-block blog pattern: Article node requires author Person with credentials; E-E-A-T: authorship by named human | "author": {"@type": "Organization", "@id": "#organization"} on /step-by-step-guide-installing-tub-liner/ |
| F-13 | Top-traffic blog post (/step-by-step-guide-installing-tub-liner/) has no FAQPage and no HowTo despite "step-by-step" content | P1 | DGS 3-block pattern: BreadcrumbList + Article + FAQPage on posts; HowTo eligible for rich results on how-to content | FAQPage: False, HowTo: False on blog post; only 3 blocks: org entity + Article + BreadcrumbList |
| F-14 | City page /service-areas/metairie/ spawns a second LocalBusiness @id node with NOLA address claiming to be "TurnKey Bath Remodel - Metairie" | P1 | Daryl: entity pollution - mismatched categories / duplicate nodes poison entity graph; the address in the Metairie node is still 3436 Magazine St New Orleans, not Metairie | "@id": "https://www.turnkeybathremodel.com/service-areas/metairie/#localbusiness" with "addressLocality": "New Orleans" |
| F-15 | Metairie ItemList contains duplicate "Bathtub Replacement" entry | P2 | Data quality: duplicate entries in ItemList confuse parsers and create noise | Two identical {"@type": "Service","name": "Bathtub Replacement" nodes in /service-areas/metairie/#services-list |
| F-16 | walk-in-tubs WebPage: "bath" sameAs links to Bath, Somerset (UK city) Wikipedia article | P1 | Labbate entity gap analysis: wrong Wikipedia entity = wrong entity association in Google graph; signals UK city instead of the practice of bathing | {"@type":"Thing","name":"bath","sameAs":["https://en.wikipedia.org/wiki/Bath,_Somerset",...]} |
| F-17 | Em dashes in warrantyScope field of hasOfferCatalog block shipped across all pages | P2 | Merlino no-em-dash rule: never in any content Mike sees or ships | 2 em dashes in warrantyScope: "Acrylic bathroom products — lifetime guarantee ... Tile installations backed by 10-year workmanship warranty." |
| F-18 | No DefinedTermSet glossary schema per Hubbell Aether-Omni method | P2 | Hubbell: Glossary Strategy = 5-8 DefinedTerm nodes per page, Key Concepts section with 1:1 schema mapping; GEO axis requires visible+schema parity | DefinedTermSet key absent across all pages |
| F-19 | sameAs on organization lacks: Google Business Profile URL, Yelp, BBB, Houzz - only social profiles present | P2 | Daryl: sameAs populated with all real resolvable URLs including GMB, directories, platforms | sameAs = [LinkedIn, Twitter/X, Facebook, Instagram, YouTube] only; no GBP URL, no directory citations |
| F-20 | No AggregateRating on the entity - CORRECT per policy | PASS | Mike decision 2026-06-10: AggregateRating on own entity = Critical flag; excluded correctly | AggregateRating absent from all entity blocks - this is correct |
Section 4: Scored Summary Table
| Category | Score | Notes |
|---|---|---|
| @id / Entity Anchor | 2/10 | Anchor is page fragment not GMB CID |
| NAP Consistency | 9/10 | Address and phone consistent across all 7 pages |
| areaServed Coverage | 7/10 | All 14 cities present; no Wikidata URLs |
| hasOfferCatalog Completeness | 3/10 | One generic service; 5+ missing |
| Service Schema Quality | 4/10 | Exists but boilerplate names/descriptions |
| FAQPage Coverage | 4/10 | /faq/ only; absent on all service pages |
| BreadcrumbList Coverage | 6/10 | Present on city, FAQ, contact, blog; absent on category/service pages |
| Blog Article Quality | 4/10 | Dates/image/word count present; author=Org not Person; no FAQPage/HowTo |
| Daryl Signature Completeness | 1/10 | mainEntityOfPage, additionalType, disambiguatingDescription, knowsAbout, GMB CID @id all absent |
| Sister Domain Risk | 0/10 | Unresolved competing entity with no declared relationship |
| Overall Schema Score | 40/100 |
Section 5: Corrected JSON-LD Stacks (Validator-Clean)
5.1 Homepage - Full Entity Stack
Replace the three current homepage blocks with this @graph. Placeholders requiring real data are marked [REPLACE:...]. The GMB CID must be obtained from the GBP URL; the Wikidata Q-numbers are given for each city.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": ["HomeAndConstructionBusiness", "LocalBusiness"],
"@id": "https://www.google.com/maps?cid=[REPLACE:GMB_CID]",
"name": "TurnKey Bath Remodel",
"alternateName": "TurnKey Bath Remodel New Orleans",
"disambiguatingDescription": "Licensed bathroom remodeling contractor in New Orleans, LA specializing in acrylic tub liners, walk-in tubs, shower replacements, and 1-day bath remodels.",
"description": "TurnKey Bath Remodel is a fully licensed and insured bathroom remodeling company serving New Orleans and 13 surrounding Louisiana communities. We specialize in acrylic tub liners, shower surrounds, walk-in tubs, tub-to-shower conversions, walk-in showers, and 1-day complete bath remodels. Residential License #890459 and Commercial License #3667.",
"url": "https://www.turnkeybathremodel.com",
"mainEntityOfPage": "https://www.google.com/maps?cid=[REPLACE:GMB_CID]",
"telephone": "+15045136366",
"priceRange": "$$",
"additionalType": [
"https://en.wikipedia.org/wiki/Bathroom_remodeling",
"https://en.wikipedia.org/wiki/Home_improvement",
"https://en.wikipedia.org/wiki/General_contractor"
],
"knowsAbout": [
{
"@type": "Thing",
"name": "Bathroom Remodeling",
"sameAs": "https://en.wikipedia.org/wiki/Bathroom_remodeling"
},
{
"@type": "Thing",
"name": "Acrylic Tub Liner",
"sameAs": "https://en.wikipedia.org/wiki/Bathtub_liner"
},
{
"@type": "Thing",
"name": "Walk-in Tub",
"sameAs": "https://en.wikipedia.org/wiki/Walk-in_tub"
},
{
"@type": "Thing",
"name": "Shower Installation",
"sameAs": "https://en.wikipedia.org/wiki/Shower"
},
{
"@type": "Thing",
"name": "Tub-to-Shower Conversion",
"sameAs": "https://en.wikipedia.org/wiki/Bathroom_remodeling"
},
{
"@type": "Thing",
"name": "Barrier-Free Bathroom",
"sameAs": "https://en.wikipedia.org/wiki/Accessible_bathroom"
}
],
"logo": {
"@type": "ImageObject",
"@id": "https://www.turnkeybathremodel.com/#logo",
"url": "https://www.turnkeybathremodel.com/wp-content/uploads/2023/12/logo.png",
"contentUrl": "https://www.turnkeybathremodel.com/wp-content/uploads/2023/12/logo.png",
"caption": "TurnKey Bath Remodel"
},
"image": "https://www.turnkeybathremodel.com/wp-content/uploads/2023/12/logo.png",
"address": {
"@type": "PostalAddress",
"streetAddress": "3436 Magazine St Suite 414-N",
"addressLocality": "New Orleans",
"addressRegion": "LA",
"postalCode": "70115",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 29.9511,
"longitude": -90.0715
},
"areaServed": [
{"@type": "City", "name": "New Orleans", "url": "https://www.wikidata.org/wiki/Q34404"},
{"@type": "City", "name": "Metairie", "url": "https://www.wikidata.org/wiki/Q1018027"},
{"@type": "City", "name": "Kenner", "url": "https://www.wikidata.org/wiki/Q1011895"},
{"@type": "City", "name": "Slidell", "url": "https://www.wikidata.org/wiki/Q987765"},
{"@type": "City", "name": "Baton Rouge", "url": "https://www.wikidata.org/wiki/Q34940"},
{"@type": "City", "name": "Covington", "url": "https://www.wikidata.org/wiki/Q1032768"},
{"@type": "City", "name": "Gretna", "url": "https://www.wikidata.org/wiki/Q984090"},
{"@type": "City", "name": "Hammond", "url": "https://www.wikidata.org/wiki/Q986018"},
{"@type": "City", "name": "Harahan", "url": "https://www.wikidata.org/wiki/Q2017099"},
{"@type": "City", "name": "LaPlace", "url": "https://www.wikidata.org/wiki/Q1034126"},
{"@type": "City", "name": "Madisonville", "url": "https://www.wikidata.org/wiki/Q2092748"},
{"@type": "City", "name": "Mandeville", "url": "https://www.wikidata.org/wiki/Q2094399"},
{"@type": "City", "name": "River Ridge", "url": "https://www.wikidata.org/wiki/Q2148866"},
{"@type": "City", "name": "St. Rose", "url": "https://www.wikidata.org/wiki/Q2196753"}
],
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
"opens": "08:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "08:00",
"closes": "16:00"
}
],
"hasCredential": [
{
"@type": "EducationalOccupationalCredential",
"credentialCategory": "Residential Contractor License",
"name": "Louisiana Residential Contractor License #890459"
},
{
"@type": "EducationalOccupationalCredential",
"credentialCategory": "Commercial Contractor License",
"name": "Louisiana Commercial Contractor License #3667"
}
],
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Bathroom Remodeling Services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Tub Liner Installation",
"description": "Acrylic tub liner installation over existing bathtub. Lifetime guarantee on materials.",
"serviceType": "Tub Liner Installation"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Shower Replacement",
"description": "Full shower replacement including walls, base, and fixtures. Custom acrylic and tile options.",
"serviceType": "Shower Replacement"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Walk-In Tub Installation",
"description": "Walk-in tub installation with door entry, hydrotherapy jets, and safety features for seniors.",
"serviceType": "Walk-In Tub Installation"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Tub-to-Shower Conversion",
"description": "Remove existing bathtub and install a walk-in shower in the same footprint.",
"serviceType": "Tub-to-Shower Conversion"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Shower Surround Installation",
"description": "Acrylic or tile shower wall panels installed over existing tile or substrate.",
"serviceType": "Shower Surround Installation"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "1-Day Bath Remodel",
"description": "Complete bathroom refresh completed in one day using prefabricated acrylic systems.",
"serviceType": "1-Day Bath Remodel"
}
}
]
},
"sameAs": [
"[REPLACE: https://www.google.com/maps?cid=GMB_CID]",
"https://www.facebook.com/turnkeybathremodeling",
"https://www.instagram.com/turnkey.bathremodel/",
"https://www.youtube.com/@TurnkeyBathRemodeling",
"https://www.linkedin.com/company/turnkey-bath-remodel/",
"[REPLACE: https://www.yelp.com/biz/turnkey-bath-remodel-new-orleans - verify URL]",
"[REPLACE: https://www.bbb.org/... - verify URL]"
]
},
{
"@type": "WebSite",
"@id": "https://www.turnkeybathremodel.com/#website",
"name": "TurnKey Bath Remodel",
"url": "https://www.turnkeybathremodel.com",
"publisher": {
"@id": "https://www.google.com/maps?cid=[REPLACE:GMB_CID]"
},
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://www.turnkeybathremodel.com/?s={search_term_string}"
},
"query-input": "required name=search_term_string"
}
}
]
}
</script>
Notes:
- Remove the duplicate Block 1 WebSite entirely (no @id, no description - it is redundant noise).
[REPLACE:GMB_CID]- obtain from the GBP profile URL or the DataForSEO GBP info endpoint. The CID integer appears after?cid=in the Maps URL.- Wikidata Q-numbers provided are unverified at time of writing; verify each at https://www.wikidata.org/wiki/Q[number] before deploying.
sameAsYelp and BBB URLs: verify the exact slugs resolve before adding. Follow Daryl's rule: populate last, real URLs only.- The em dashes in warrantyScope have been removed from this corrected block.
5.2 Service Page - /bathtubs/walk-in-tubs/ Corrected Stack
Remove all 3 existing blocks. Replace with:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BreadcrumbList",
"@id": "https://www.turnkeybathremodel.com/bathtubs/walk-in-tubs/#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.turnkeybathremodel.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Bathtubs",
"item": "https://www.turnkeybathremodel.com/bathtubs/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Walk-In Tubs",
"item": "https://www.turnkeybathremodel.com/bathtubs/walk-in-tubs/"
}
]
},
{
"@type": "Service",
"@id": "https://www.turnkeybathremodel.com/bathtubs/walk-in-tubs/#service",
"name": "Walk-In Tub Installation in New Orleans",
"description": "TurnKey Bath Remodel installs walk-in tubs with low step-in entry, watertight door seals, hydrotherapy jets, and built-in safety grab bars for seniors and individuals with limited mobility throughout the Greater New Orleans area.",
"serviceType": "Walk-In Tub Installation",
"category": "Bathroom Remodeling",
"provider": {
"@id": "https://www.google.com/maps?cid=[REPLACE:GMB_CID]"
},
"areaServed": [
{"@type": "City", "name": "New Orleans", "url": "https://www.wikidata.org/wiki/Q34404"},
{"@type": "City", "name": "Metairie", "url": "https://www.wikidata.org/wiki/Q1018027"},
{"@type": "City", "name": "Kenner", "url": "https://www.wikidata.org/wiki/Q1011895"},
{"@type": "City", "name": "Slidell", "url": "https://www.wikidata.org/wiki/Q987765"},
{"@type": "City", "name": "Baton Rouge", "url": "https://www.wikidata.org/wiki/Q34940"},
{"@type": "City", "name": "Covington", "url": "https://www.wikidata.org/wiki/Q1032768"},
{"@type": "City", "name": "Gretna", "url": "https://www.wikidata.org/wiki/Q984090"},
{"@type": "City", "name": "Hammond", "url": "https://www.wikidata.org/wiki/Q986018"},
{"@type": "City", "name": "Harahan", "url": "https://www.wikidata.org/wiki/Q2017099"},
{"@type": "City", "name": "LaPlace", "url": "https://www.wikidata.org/wiki/Q1034126"},
{"@type": "City", "name": "Madisonville", "url": "https://www.wikidata.org/wiki/Q2092748"},
{"@type": "City", "name": "Mandeville", "url": "https://www.wikidata.org/wiki/Q2094399"},
{"@type": "City", "name": "River Ridge", "url": "https://www.wikidata.org/wiki/Q2148866"},
{"@type": "City", "name": "St. Rose", "url": "https://www.wikidata.org/wiki/Q2196753"}
],
"image": "https://www.turnkeybathremodel.com/wp-content/uploads/2024/01/walk-in-tub-1.jpg",
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"priceSpecification": {
"@type": "PriceSpecification",
"description": "Price varies based on tub model and installation complexity. Free in-home consultation and fixed-price quote."
}
}
},
{
"@type": "FAQPage",
"@id": "https://www.turnkeybathremodel.com/bathtubs/walk-in-tubs/#faqpage",
"mainEntity": [
{
"@type": "Question",
"name": "How much does a walk-in tub cost in New Orleans?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Walk-in tub installation in the New Orleans area typically ranges from $3,000 to $12,000 depending on the tub model, features such as hydrotherapy jets, and installation complexity. TurnKey Bath Remodel provides free in-home consultations with guaranteed fixed-price quotes and offers 0% financing for qualified homeowners."
}
},
{
"@type": "Question",
"name": "How long does walk-in tub installation take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most walk-in tub installations are completed in 1 to 2 days by TurnKey Bath Remodel's licensed installation team. The existing tub is removed, the space is prepared, the new walk-in tub is set and plumbed, and the surround is finished."
}
},
{
"@type": "Question",
"name": "Are walk-in tubs safe for seniors?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Walk-in tubs are specifically designed for seniors and individuals with limited mobility. Features include a low step-in threshold (typically 2 to 4 inches), inward-opening watertight door, built-in grab bars, non-slip floor, and a comfortable seat. TurnKey Bath Remodel installs ADA-compatible models throughout the Greater New Orleans area."
}
},
{
"@type": "Question",
"name": "Do walk-in tubs require special plumbing?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Walk-in tubs connect to standard residential plumbing but typically require a larger water heater (minimum 50 gallons) because the tub holds more water than a standard bathtub. Our installation team assesses your existing plumbing during the free in-home consultation and handles any necessary upgrades."
}
}
]
}
]
}
</script>
Notes:
- The global LocalBusiness block is NOT repeated on this page. The
providerreference by @id is sufficient. - The WebPage
about/mentionsentity list from the original has been removed. Thebath-> Bath, Somerset error (F-16) is eliminated. - FAQPage questions are derived from typical walk-in tub user queries consistent with the page content focus. Verify answers match visible page copy before deploying.
5.3 City Page - /service-areas/metairie/ Corrected Stack
Replace all 5 existing blocks with:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BreadcrumbList",
"@id": "https://www.turnkeybathremodel.com/service-areas/metairie/#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.turnkeybathremodel.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Service Areas",
"item": "https://www.turnkeybathremodel.com/service-areas/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Metairie",
"item": "https://www.turnkeybathremodel.com/service-areas/metairie/"
}
]
},
{
"@type": "WebPage",
"@id": "https://www.turnkeybathremodel.com/service-areas/metairie/#webpage",
"name": "Bathroom Remodel in Metairie, LA",
"description": "TurnKey Bath Remodel provides bathroom remodeling services in Metairie, LA including shower installation, tub liners, walk-in tubs, and tub-to-shower conversions.",
"url": "https://www.turnkeybathremodel.com/service-areas/metairie/",
"breadcrumb": {
"@id": "https://www.turnkeybathremodel.com/service-areas/metairie/#breadcrumb"
},
"about": {
"@id": "https://www.google.com/maps?cid=[REPLACE:GMB_CID]"
},
"isPartOf": {
"@id": "https://www.turnkeybathremodel.com/#website"
}
},
{
"@type": "Service",
"@id": "https://www.turnkeybathremodel.com/service-areas/metairie/#service",
"name": "Bathroom Remodeling in Metairie, LA",
"description": "TurnKey Bath Remodel serves Metairie, Louisiana with licensed bathroom remodeling including tub liner installation, shower replacement, walk-in tub installation, and tub-to-shower conversions.",
"serviceType": "Bathroom Remodeling",
"provider": {
"@id": "https://www.google.com/maps?cid=[REPLACE:GMB_CID]"
},
"areaServed": {
"@type": "City",
"name": "Metairie",
"url": "https://www.wikidata.org/wiki/Q1018027"
},
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Bathroom Remodeling Services in Metairie",
"itemListElement": [
{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Tub Liner Installation", "areaServed": {"@type": "City", "name": "Metairie"}}},
{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Shower Installation", "areaServed": {"@type": "City", "name": "Metairie"}}},
{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Walk-In Tub Installation", "areaServed": {"@type": "City", "name": "Metairie"}}},
{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Tub-to-Shower Conversion", "areaServed": {"@type": "City", "name": "Metairie"}}},
{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Bathtub Replacement", "areaServed": {"@type": "City", "name": "Metairie"}}}
]
}
},
{
"@type": "FAQPage",
"@id": "https://www.turnkeybathremodel.com/service-areas/metairie/#faqpage",
"mainEntity": [
{
"@type": "Question",
"name": "Does TurnKey Bath Remodel serve Metairie, LA?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. TurnKey Bath Remodel provides bathroom remodeling services throughout Metairie, Louisiana including tub liner installation, shower replacement, walk-in tub installation, and tub-to-shower conversions. Call (504) 513-6366 to schedule a free in-home consultation."
}
},
{
"@type": "Question",
"name": "How much does bathroom remodeling cost in Metairie?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Bathroom remodeling in Metairie, LA ranges from approximately $800 for a tub liner installation to $15,000 or more for a full bathroom renovation. TurnKey Bath Remodel provides free in-home design consultations with guaranteed fixed-price quotes and 0% financing options for qualified homeowners."
}
},
{
"@type": "Question",
"name": "How long does a bathroom remodel take in Metairie?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most bathroom remodeling projects in Metairie are completed in 1 to 3 days. Simple upgrades such as tub liners or shower surrounds often take just one day. Walk-in tub installations and tub-to-shower conversions typically take 1 to 2 days. More complex projects may take 2 to 3 days."
}
}
]
}
]
}
</script>
Notes:
- The second LocalBusiness @id node for
#localbusinesswith the NOLA address (F-14) is removed entirely. - The duplicate "Bathtub Replacement" entry (F-15) is resolved.
- The WebPage
aboutproperty now points to the entity by @id instead of repeating entity data. - City page does NOT spawn a new LocalBusiness entity. The business has one address in New Orleans; the city page signals service coverage, not a new physical location.
Section 6: Priority Action List
| Priority | Action | Impact |
|---|---|---|
| P0-1 | Obtain GMB CID and replace all #organization @id anchors with the real CID URL | Entity anchor = foundation of Knowledge Graph connection |
| P0-2 | Add mainEntityOfPage pointing to the GMB CID on the root organization block | Google cannot resolve who owns this data without this pointer |
| P0-3 | Align or 301-redirect turnkeybathroomrenovations.com to resolve sister-domain entity collision | Two competing entities for same keywords; suppresses main domain rankings |
| P1-1 | Add additionalType Wikipedia category URLs to the org entity | Required for entity type classification per Daryl pattern |
| P1-2 | Add disambiguatingDescription and knowsAbout to org entity | Topical authority signal; entity focus |
| P1-3 | Expand hasOfferCatalog from 1 generic service to 6 specific services per Section 5.1 | Google cannot associate the entity with specific services it cannot see in schema |
| P1-4 | Add Wikidata URLs to all 14 areaServed City nodes | Required for full Daryl areaServed pattern |
| P1-5 | Add FAQPage schema to /showers/ and /bathtubs/walk-in-tubs/ | Rich result eligibility; AEO extraction |
| P1-6 | Add BreadcrumbList to /showers/ and /bathtubs/walk-in-tubs/ | Missing on the two main category service pages |
| P1-7 | Replace Organization author on blog Article with a named Person author | E-E-A-T signal; Google cannot attribute expertise to an org |
| P1-8 | Add FAQPage and HowTo blocks to /step-by-step-guide-installing-tub-liner/ | This is the top-traffic page; DGS 3-block pattern requires all three blocks |
| P1-9 | Fix bath entity sameAs on walk-in-tubs page pointing to Bath, Somerset UK | Wrong entity association in graph |
| P2-1 | Remove duplicate WebSite block from homepage | Parser ambiguity |
| P2-2 | Strip em dashes from warrantyScope in hasOfferCatalog across all pages | Merlino rule compliance |
| P2-3 | Add GBP URL and key directory URLs (Yelp, BBB, Houzz) to sameAs | Expands entity corroboration network |
| P2-4 | Add DefinedTermSet glossary nodes per Hubbell method (5-8 terms per key page) | GEO/AEO axis; schema-to-content parity |
Appendix: Validation Notes
The corrected stacks above are structurally valid JSON-LD per schema.org v30.0:
- All
@typevalues used:HomeAndConstructionBusiness,LocalBusiness,WebSite,Service,FAQPage,BreadcrumbList,WebPage,OfferCatalog,Offer,City,GeoCoordinates,OpeningHoursSpecification,PostalAddress,ImageObject,EducationalOccupationalCredential,SearchAction,EntryPoint,Question,Answer,PriceSpecification,Thing- all are valid schema.org types in v30.0. - Before deploying, validate each block at https://validator.schema.org and run through Google Rich Results Test at https://search.google.com/test/rich-results.
- The GMB CID placeholder must be filled with a real integer CID before the @id becomes a valid entity anchor. An unfilled
[REPLACE:GMB_CID]block will produce a non-resolving @id. - GSC/GA data not available (not our property) - cannot confirm impression delta post-implementation.
TurnKey Bath Remodel: Technical SEO Audit (Lane C)
Auditor: Tommy (Technical SEO + Data Lead)
Date: 2026-06-11
Target: https://www.turnkeybathremodel.com/
Method sources: Screaming Frog MCP (crawl-28435014, still running at report time), direct HTTP/HTML analysis via curl + Python, PageSpeed Insights (quota exhausted, free tier), robots.txt fetch, sitemap XML parsing, organic keywords data from Phase 0 (DataForSEO, 500-row pull in data/organic-keywords-raw.txt).
Note on Screaming Frog: Crawl crawl-28435014 was still running at time of writing. All URL-level data below is sourced from direct HTTP probes and sitemap analysis. Crawl export data not available for this report; flag for follow-up when complete.
Note on GSC/GA: Not available (not our property). Any performance data cited is from DataForSEO Phase 0.
Note on PageSpeed Insights: Free-tier daily quota was exhausted before this session. CWV scores below are from server response timing and HTML analysis only; full Lighthouse scores require a fresh PSI run on a new day.
Executive Summary
The site has serious technical debt concentrated in three areas: (1) the homepage and all core pages are client-side rendered with no body content in the initial HTML response, making every page invisible to AI crawlers and unreliable for Googlebot without JS execution; (2) a sister domain (turnkeybathroomrenovations.com) on the same WPX Cloud hosting block (same 194.1.147.x IP range) is actively outranking the main site for money keywords ("walk in tub new orleans"), creating split-domain cannibalization that is suppressing rankings on both properties; (3) the LocalBusiness schema is incomplete per Merlino schema IP (missing sameAs list population, no mainEntityOfPage, no geoRadius, no Wikipedia additionalType, no Wikidata areaServed URLs). Combined with 94% broken backlinks, zero top-3 positions across 48 ranking keywords, and a blog post outperforming all commercial pages as the site's top traffic driver, the technical foundation is actively preventing growth.
1. Crawlability and Robots
1.1 Robots.txt
URL: https://www.turnkeybathremodel.com/robots.txt Content observed (2026-06-11):
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.turnkeybathremodel.com/sitemaps.xml
Findings:
- P2: No AI crawler directives present. Per the
seo-auditskill GEO technical checklist, robots.txt should explicitly address GPTBot, Google-Extended, PerplexityBot, ClaudeBot, Amazonbot, CCBot, Bytespider, Applebot-Extended. Absence of blocking is technically correct (crawlers are allowed), but absence of explicitAllowsignals for these bots is a missed opportunity to communicate openness to AI indexing. - P2: The
sitemaps.xmlreference in robots.txt is correct and matches the actual file. No issue there. - P2: No
User-agent: Googlebotspecific rules, noCrawl-delay, no URL parameter controls. For a small site this is acceptable, but the lack of any AI crawler policy is worth flagging given the client's need for AI Overview visibility.
Fix: Add explicit allow directives for AI crawlers (GPTBot, PerplexityBot, ClaudeBot, Amazonbot, Bytespider). Consider adding User-agent: Google-Extended with Allow: / to signal openness for AI training (does not affect organic rankings, only AI Overview sourcing).
1.2 Sitemap
Sitemap index URL: https://www.turnkeybathremodel.com/sitemaps.xml (matches robots.txt reference) Child sitemaps:
page-sitemap1.xml: 35 page URLspost-sitemap1.xml: 34 post URLs- Total URLs in sitemap: 69
Findings:
- P1 (evidence): The sitemap index references
sitemaps.xmlbut the actual file path is alsositemaps.xml, which is non-standard (standard issitemap.xmlorsitemap_index.xml). No breakage observed, but uncommon. - P1: The page sitemap includes
/our-projects/(HTTP 200, correct URL) but the CONTEXT.md notes/projects/as a listed page. Direct probe confirmed/projects/returns HTTP 404. This means there is a dead URL being linked from navigation or referenced somewhere that is not in the sitemap (the sitemap correctly lists/our-projects/not/projects/). See Section 4 for redirect analysis. - P2: Sitemap XML does not include
<lastmod>dates in the parseable format (the XML parser returned no entries when parsing these fields, suggesting they may be malformed or absent). Without lastmod dates, Googlebot has less signal for crawl frequency prioritization. - P2: No image sitemap, no video sitemap. For a remodeling company with project images and potential video content, this is a missed opportunity for Google Images traffic.
- Pass: Both child sitemaps contain only HTTPS URLs pointing to the canonical www subdomain.
- Pass: Sitemap is referenced in robots.txt.
2. Indexation and Canonicalization
2.1 HTTP Status Codes (direct probe, 2026-06-11)
Finding P1: /projects/ returns a hard 404. The homepage nav links to /our-projects/ (correct), but if any external link, internal reference, or GBP URL points to /projects/, it is a dead link wasting link equity. Action: 301 redirect /projects/ to /our-projects/.
2.2 HTTP to HTTPS Redirect
- HTTP to HTTPS:
http://www.turnkeybathremodel.com/returns HTTP 301 tohttps://www.turnkeybathremodel.com/. Correct. - Non-www to www:
https://turnkeybathremodel.com/returns HTTP 301 tohttps://www.turnkeybathremodel.com/. Correct. - Pass: Both redirect chains are single-hop (no redirect chain stacking observed).
2.3 Canonical Tags
- Homepage canonical:
https://www.turnkeybathremodel.com/- self-referencing, correct. - All probed service/city pages: self-referencing canonicals confirmed on each page checked.
- Pass: Canonical implementation appears consistent. No cross-domain canonicals or canonicals pointing to wrong URLs detected in the sample.
2.4 Meta Robots
- Homepage meta robots:
index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1- correct, no unintentional blocks. - No
noindexdetected on any probed page. - Pass.
2.5 IndexNow
/.well-known/indexnow-key.txt: HTTP 404 (not implemented)./indexnow-key.txt: HTTP 404 (not implemented).- P2: IndexNow is not implemented. Per the
geo-technicalchecklist: Bing and ChatGPT use Bing's index, faster Bing indexing means faster AI Overview visibility. IndexNow is a zero-cost, high-leverage implementation for a WordPress site (several plugins support it natively).
3. Server-Side Rendering (SSR) and AI Crawlability
CRITICAL FINDING - P0
The homepage (and all pages tested) returns a nearly empty HTML body to non-rendering crawlers. The initial HTTP response contains:
- Title tag: present
- Meta description: present
- Canonical: present
- JSON-LD schema: present (in
<head>) - H1 tags: ZERO in initial HTML
- H2 tags: ZERO in initial HTML
- Navigation: ZERO
<nav>elements in initial HTML - Paragraph tags: ZERO in initial HTML
- Div tags: ZERO in initial HTML
- Visible body text (stripped): approximately 1,471 characters (title + schema JSON text only)
Evidence: Direct curl of https://www.turnkeybathremodel.com/ with a standard browser User-Agent returned 127KB of HTML; however, after stripping all <script> and <style> tags, the visible body content is ~1,471 characters, consisting only of the page title and schema markup leaked as plain text. No H1, no navigation, no paragraph content, no article text exists in the server-rendered HTML.
What this means:
- AI crawlers (GPTBot, PerplexityBot, ClaudeBot, Amazonbot, Bytespider, Applebot) do not execute JavaScript. They see an empty page. No content can be cited from this site in AI Overviews, Perplexity answers, or Claude/ChatGPT responses.
- Googlebot executes JavaScript but treats JS-rendered content as lower-quality than server-rendered content. This degrades crawl efficiency and may reduce ranking quality signals.
- The site appears to use a custom WordPress theme (
TurnkeyBathRemodeltheme files confirmed in HTML source) that renders all visible content client-side via JavaScript.
Fix (P0): Enable server-side rendering of all critical page elements: H1, navigation, main content paragraphs, CTA, schema. Options: (a) modify the WordPress theme to output critical content in the initial HTML response; (b) implement pre-rendering or static HTML generation for key pages; (c) at minimum, use WP Rocket's (confirmed present in JS) render-blocking configuration to ensure above-the-fold content is in the initial response. This is the single highest-priority fix in this audit.
SSR scoring per geo-technical skill:
- All key content server-rendered = full marks
- Critical content requires JS = major deduction
- Verdict: FAIL. Entire visible page content is client-rendered. Score: 0/100 for AI crawl visibility.
4. URL Structure and Redirects
4.1 Dead URL - /projects/
/projects/returns HTTP 404 and is NOT in the sitemap./our-projects/returns HTTP 200 and IS in the sitemap.- The homepage nav links to
/our-projects/(correct per the JS-rendered nav). - Finding P1: Somewhere (likely from an older site state, backlinks, or an internal link that was not updated)
/projects/may be receiving traffic and link equity that is being lost. Fix: 301 redirect from/projects/to/our-projects/.
4.2 URL Structure
- Service pages follow a clean hierarchy:
/showers/,/showers/walk-in/,/bathtubs/,/bathtubs/tub-liners/- good. - Service area pages:
/service-areas/{city}/- correct. - Blog posts: flat structure at root (e.g.,
/step-by-step-guide-installing-tub-liner/) rather than under/blog/{slug}/. This is a common WordPress default. Not a critical issue but makes blog/service content architecturally indistinguishable. - Pass: No URL parameters detected in sitemap or in probed pages. No session IDs in URLs.
5. On-Page Technical Signals
5.1 Title Tags
- Homepage title: "Bathroom Remodeling in New Orleans | TurnKey Bath Remodel" - length 57 characters (within the 50-60 optimal range). Correct.
- Service area pages follow pattern: "Bathroom Remodel in {City}, LA | TurnKey Bath Remodel" - consistent, unique per city, correct length.
- Blog post: "Tub Liner Installation: Step by Step | TurnKey Bath Remodel" - correct.
- Pass: No duplicate titles detected in sample.
5.2 Meta Descriptions
- Homepage: "TurnKey Bath Remodel transforms New Orleans bathrooms with showers, walk-in tubs, and full remodels. Call (504) 513-6366 for a free quote." (138 characters) - within acceptable range, includes CTA and phone.
- City pages: unique per city, all include phone number CTA.
- Pass: Meta descriptions appear unique and properly structured.
5.3 H1 Tags (via JS-rendered page analysis)
When the page is fully rendered by JavaScript, H1 tags ARE present:
- Homepage H1: "Your Dream Bathroom - Installed in as Little as 1 Day" (truncated in analysis; note: this H1 contains an em dash which may be the original content, not an agent-generated issue)
- Service pages: H1 present and keyword-targeted
- City pages: H1 present (e.g., "Professional Bathroom Remodel in Metairie, LA")
- P0 caveat: These H1s are NOT visible to AI crawlers or Googlebot without JS execution. See Section 3.
5.4 OG / Social Tags
- OG title: "Bathroom Remodeling Company in New Orleans| TurnKey Bathroom Remodel" (note: brand name inconsistency - OG title says "TurnKey Bathroom Remodel" while the page title says "TurnKey Bath Remodel")
- OG description: "Discover NOLA's premier bathroom remodeling with Turnkey Bathroom Remodel..." (inconsistent brand name again)
- OG image:
https://www.turnkeybathremodel.com/wp-content/uploads/2023/12/favicon.png- P1: The OG image is set to the FAVICON (16x16 or 32x32 PNG), not a proper social sharing image. Facebook and LinkedIn will display a tiny icon when this page is shared, severely degrading click-through on social. - OG type: "website" - correct for homepage.
- Twitter card: "summary" - this means the Twitter/X card will display a small thumbnail, not a large image. Should be "summary_large_image" for better social appearance.
- P1: Brand name inconsistency between canonical title ("TurnKey Bath Remodel") and OG tags ("TurnKey Bathroom Remodel") creates a name-mismatch signal in Google's entity understanding.
5.5 Images
- Homepage image count (in initial HTML): 2 images found.
- Missing alt attributes: 2 of 2 (100% missing alt on images in initial HTML).
- After JS rendering, additional images load dynamically with generic filenames like
IMG_2825.jpg,IMG_3182.jpg(phone photo filenames with no descriptive naming). - P2: All project/gallery images use iOS photo filenames (IMG_XXXX.jpg pattern), which provide no keyword signals to image search.
- P2: Alt text is absent on images in the initial HTML response; cannot confirm JS-rendered images have alt text without a headless browser crawl.
5.6 Content Depth (word count by page)
| Page | Words (JS-rendered) | Status |
|---|---|---|
| Homepage | 1,624 | Acceptable |
| /showers/ | 766 | P2: Thin (category hub) |
| /bathtubs/ | 745 | P2: Thin (category hub) |
| /showers/walk-in/ | 2,100 | Good |
| /bathtubs/walk-in-tubs/ | 1,544 | Acceptable |
| /bathtubs/tub-liners/ | 1,649 | Acceptable |
| /showers/tub-to-shower-conversions/ | 1,255 | Acceptable |
| /showers/shower-liners/ | 1,399 | Acceptable |
| /showers/enclosure/ | 1,988 | Good |
| /service-areas/metairie/ | 1,769 | Acceptable |
| /service-areas/slidell/ | 1,660 | Acceptable |
| /faq/ | 1,180 | Acceptable |
| Blog post (tub liner DIY) | 1,596 | Acceptable |
Note: Word counts are from JS-rendered pages via urllib. The 1,624 homepage words includes navigation/footer boilerplate; actual body content words are likely lower.
5.7 Service Category Pages Thin Content
/showers/at 766 words and/bathtubs/at 745 words function as landing pages for their respective service silos but have below-average content depth for competitive remodeling terms.- P2: Both category hub pages should be at minimum 1,200 words with unique, helpful content that positions them for broad category keywords like "shower services new orleans" and "bathtub services new orleans."
6. Service Area Pages: Template Duplication
Finding P1:
Similarity analysis of service area page content (normalized city name removed) shows 84.4% identical content between Metairie and Slidell pages in the first 500 characters. The visible text structure is:
- Same navigation (expected, not a problem)
- Same body content template with city name swapped in
Evidence: Normalized comparison of metairie vs slidell vs kenner pages shows identical opening structure up to city-specific paragraphs.
What Google sees: Near-duplicate pages with minimal unique content per city. Per the seo-audit skill (thin content section): "Tag/category pages with no value" is a flag condition. With 14 service area pages at 1,460-1,769 words each and 84%+ shared content, this is soft-duplication.
None of the city pages have a LocalBusiness schema. The homepage has a LocalBusiness schema with 14 areaServed entries but no page-level schema per city.
Fix P1: Add unique content per city (at least 3-4 paragraphs specific to that city: local references, why that area, specific testimonials from that city). Add a per-page LocalBusiness schema with city-specific areaServed and geo.
7. Schema/Structured Data Analysis
7.1 Homepage LocalBusiness Schema (Merlino Schema IP evaluation per merlino-schema-ip.md)
Present:
@context: schema.org@type:["HomeAndConstructionBusiness", "LocalBusiness"]- dual type, which is acceptable@id:https://www.turnkeybathremodel.com/#organization- uses page URL fragment, not KG MID. Non-compliant with Daryl Osborne signature pattern (should bekg:/g/<MID>)name: "TurnKey Bath Remodel"telephone: "(504) 513-6366"address: complete PostalAddress with streetAddress, addressLocality, addressRegion, postalCode, addressCountrygeo: GeoCoordinates with latitude/longitudeopeningHoursSpecification: Mon-Sat 08:00-17:00, Sun 08:00-16:00areaServed: array of 14 City objects (New Orleans, Baton Rouge, Covington, Gretna + others)priceRange: "$$"sameAs: LinkedIn, Twitter/X, Facebook, Instagram (4 social profiles confirmed)logo: ImageObject with url and contentUrlimage: logo.png (same as logo - not ideal, should be a real business photo)
Missing vs. Merlino Schema IP standards:
- P1:
mainEntityOfPageis absent. Per Daryl's signature pattern, this should be the GMB CID link, not the page URL. - P1:
@idis a page URL fragment (/#organization), not a Knowledge Graph MID (kg:/g/XXXXXXXX). The KG MID for TurnKey Bath Remodel would need to be looked up and added. - P1:
additionalTypeis absent. Per Daryl's pattern, this should be a Wikipedia category URL (e.g.,https://en.wikipedia.org/wiki/Bathroom_remodeling). - P1:
areaServedcities lack Wikidata URLs. Per Daryl's pattern, each City should include a Wikidata URL (e.g.,https://www.wikidata.org/wiki/Q34404for New Orleans). - P1:
alternateNameis absent. Per Daryl's pattern, this disambiguates the entity. - P1:
disambiguatingDescriptionis absent. - P1:
geoRadiusis absent (should be in meters: service radius x 1609). - P2:
sameAs- needs verification that all 4 social URLs resolve correctly. URLs were confirmed present but actual resolution not checked. Missing: Google Business Profile URL, Yelp, BBB. - P2:
descriptionfield in WebSite schema is empty string:"description": ""- should contain a keyword-rich description. - Pass: No
AggregateRatingon the entity (per Mike's hard rule: ratings live on GBP/third-party only). Correct.
7.2 FAQ Page Schema
- FAQPage schema IS present on the /faq/ page with Question/Answer blocks.
- Pass: This is positive. The FAQPage schema is the highest-value quick win for rich snippet eligibility per the Merlino SEO stack (Q&A > FAQ in schema stacking).
- P1: The FAQ schema needs to be verified for completeness (the page analysis showed no H2/H3 headings in JS-rendered content, which suggests the FAQ accordion is JS-driven and Googlebot may not crawl all questions unless JS is executed).
7.3 Missing Schema on Service Pages
- Service pages (showers, bathtubs, tub-to-shower, etc.) show only 3 schema blocks each (WebSite + LocalBusiness + BreadcrumbList).
- P1: No
Serviceschema on service pages. Per the Merlino schema IP, service pages should haveServiceschema withserviceType,provider(linking back to the LocalBusiness @id), andareaServed. - P1: No
BreadcrumbListcorrectly structured for navigation paths (each page shows 3 schema blocks, one of which is BreadcrumbList, but this needs Screaming Frog crawl confirmation for accuracy).
8. Site Speed and Core Web Vitals
Note: PageSpeed Insights free-tier quota was exhausted before this audit session. The following data is from server response timing only.
8.1 Server Response Time (TTFB)
- Homepage TTFB: 0.159 seconds (measured via
curltime_starttransfer) - Total transfer time: 0.222 seconds for 267KB of HTML
- Status: WPX Cloud MIA03 edge node, LiteSpeed + QUIC (H3 confirmed in
alt-svcheader). TTFB is excellent - sub-200ms.
8.2 Server Headers
X-Powered-By: PHP/8.3.31
X-turbo-charged-by: LiteSpeed
X-Edge-Location: WPX CLOUD/MIA03
alt-svc: h3=":443"; ma=86400
x-quic: h3
X-Cache-Status: HIT
Cache-Control: public, max-age=0, s-maxage=3600, stale-while-revalidate=21600
- Pass: HTTP/3 + QUIC enabled (modern protocol, good for Core Web Vitals).
- Pass: LiteSpeed caching active, cache HIT on homepage.
- P2:
Cache-Control: max-age=0means the browser does NOT cache the HTML page. Combined withs-maxage=3600(CDN caches for 1 hour) andstale-while-revalidate=21600(stale content served while refreshing), browser-side HTML caching is effectively disabled. Users on repeat visits must re-download the full HTML.
8.3 Security Headers (Missing)
Headers audit via curl -I:
X-Frame-Options: ABSENT - clickjacking vulnerabilityX-Content-Type-Options: ABSENT - MIME sniffing vulnerabilityContent-Security-Policy: ABSENTStrict-Transport-Security(HSTS): ABSENTPermissions-Policy: ABSENTReferrer-Policy: ABSENT
P2: All standard security headers are missing. WPX Cloud does not inject them automatically. These should be added via the WordPress theme's functions.php or a security plugin (e.g., Wordfence, iThemes). While not direct ranking factors, missing security headers affect overall site trustworthiness scoring in some security audit tools that Google may reference for E-E-A-T signals.
8.4 WordPress Security Exposure
xmlrpc.php: Returns HTTP 403 (blocked). Pass.wp-login.php: Returns HTTP 200 (accessible). P2: wp-login.php should be protected by IP restriction or renamed/moved to prevent brute-force attacks. The fact that it's accessible at the standard URL is a security risk.wp-json/REST API: Returns HTTP 200. P2: The wp-json users endpoint did not return user data (returned error, which is good), but the REST API is fully exposed. Check if/wp-json/wp/v2/usersis properly protected against user enumeration.xmlrpc.phpURL in HTML: The homepage HTML contains a reference toxmlrpc.php?rsdin the link tags. Even though the endpoint is blocked, this advertises its location and is worth removing viaremove_action('wp_head', 'rsd_link').
9. Sister Domain Cannibalization
9.1 Evidence
- Phase 0 data (CONTEXT.md):
turnkeybathroomrenovations.comranks #8 and #11 for "walk in tub new orleans" whileturnkeybathremodel.comdoes NOT rank in the top 20 for the same query. - DNS lookup (2026-06-11):
turnkeybathroomrenovations.comresolves to194.1.147.26and194.1.147.78.turnkeybathremodel.comresolves to194.1.147.98and194.1.147.51. Both are in the same194.1.147.xWPX Cloud block. - Both domains return identical WPX Cloud server signature:
X-Edge-Location: WPX CLOUD/MIA03,X-turbo-charged-by: LiteSpeed, sameCache-Controlheaders. turnkeybathroomrenovations.comreturns HTTP 200 for/bathtubs/walk-in-tubs/(the same URL path structure as the main domain).- The sister domain's walk-in-tub page title was "NOLA Affordable Walk-in Tub" per Phase 0 data.
9.2 Impact
- P0: Two domains owned by the same company competing for the same keywords is classic split-domain cannibalization. Google has to choose one to rank, and it may be choosing the sister domain for specific queries (walk-in tub keywords), actively suppressing the main domain.
- The main domain (
turnkeybathremodel.com) has a domain rank of 233/1000, the sister domain may have different (possibly better or worse) authority for specific subsets of keywords. - The 94% broken backlink rate on the main domain (735 total, 691 broken) may be partially caused by backlinks pointing to wrong domain variants.
Fix P0: Determine if both domains are intentionally operated or if the sister domain is a legacy/accidental split. If same owner: (a) 301 redirect turnkeybathroomrenovations.com entirely to turnkeybathremodel.com and consolidate; or (b) implement cross-domain canonical tags from the sister domain to the main domain; or (c) differentiate the sister domain with truly unique content targeting different keyword clusters. Consolidation is strongly recommended.
10. Organic Keyword Ranking Analysis
Data source: DataForSEO 500-row pull, Phase 0 (data/organic-keywords-raw.txt), analyzed 2026-06-11.
10.1 Distribution
- Total ranking keywords: 48
- Positions 1-3: 0 (confirmed Phase 0)
- Positions 4-10: 1 (
bathtub liner diyat pos 8 - updated; Phase 0 said pos 4, DataForSEO now shows pos 8) - Positions 11-20: 3
- Positions 21+: 44
10.2 Revenue-Intent Keywords: Invisible
The main commercial keywords are almost entirely out of the top 20:
- "bathroom renovation new orleans" (vol 390): pos 23
- "bathroom remodeling new orleans la" (vol 390): pos 29
- "new orleans bathroom remodel" (vol 390): pos 31
- "bathroom remodeling in new orleans" (vol 390): pos 32
- "bathroom remodel new orleans la" (vol 390): pos 40
- "bathroom remodeling new orleans" (vol 390): pos 55
- "tub liner installation" (vol 320): pos 26
- "bathtub liner replacement" (vol 480): pos 84
These are not even close to page 1. Every commercial keyword is on page 3+.
10.3 Traffic Anomaly: Blog Post Dominates
The /step-by-step-guide-installing-tub-liner/ post drives 25 of 48 ranked keywords (52% of all rankings) but these are DIY/informational keywords ("bathtub liner diy", "how to install bathtub liner", "diy bathtub liners"). These visitors are NOT looking to hire a remodeler; they want to do it themselves.
The blog post is the site's highest-traffic page by a wide margin (Phase 0 confirmed: it receives more traffic than the homepage), yet it targets anti-intent keywords (DIY, self-install = the opposite of converting to a paid remodel customer).
P1: The blog post needs a strong conversion layer (CTA, "not a DIY person? we install for you" section, lead capture). Its current role as the site's top page driving zero-conversion traffic is a structural weakness.
10.4 Pages Not Ranking for Their Money Keywords
Per Phase 0 data:
/bathtubs/tub-liners/ranks #81 for "bathtub liner near me" (vol 260) - main service page nearly invisible/showers/walk-in/ranks: not in top 20 for "walk in shower new orleans" based on Phase 0/bathtubs/walk-in-tubs/ranks: not in top 20 for "walk in tub new orleans" (sister domain ranks instead)
11. Internal Linking Architecture
11.1 Observations
- Homepage nav links to all major section hubs and all 14 service area pages directly.
- All service area pages are linked directly from the homepage (flat architecture, not hub-and-spoke).
- The 14 service area pages all appear to link back to the homepage and to top-level service pages, but no service area page links to other service area pages.
- P2: Service area pages exist in isolation from each other. A New Orleans visitor cannot easily navigate to Metairie, which fragments the geographic entity network.
11.2 Internal Link Depth
- All pages appear to be within 1-2 clicks of the homepage based on the flat nav structure.
- This is good for crawl depth (within 3 clicks = AI crawlability rule met).
- Pass: No orphan pages detected in the sitemap. All 69 pages in the sitemap appear to be reachable via internal links.
11.3 Missing Cross-Links
- Service pages (e.g.,
/bathtubs/tub-liners/) should link to the relevant blog post (/step-by-step-guide-installing-tub-liner/) for topical cluster building. - Blog posts in the post sitemap (34 posts) are not individually linked from main service pages, creating a de-facto orphan blog.
- P2: Build out the blog-to-service cross-linking structure. Each blog post should link to 2-3 relevant service pages.
12. Scored Summary Table
| # | Finding | Severity | Impact | Fix Complexity |
|---|---|---|---|---|
| 1 | Homepage and all pages are fully JS-rendered with zero body content in initial HTML | P0 | AI crawlers see empty page; 0/100 AI visibility | High |
| 2 | Sister domain turnkeybathroomrenovations.com actively outranking main domain for money keywords | P0 | Split-domain cannibalization, suppressing rankings on both | Medium |
| 3 | LocalBusiness schema missing mainEntityOfPage, additionalType, geoRadius, Wikidata areaServed URLs, KG @id | P1 | Below Merlino schema IP standard, weak entity signals | Medium |
| 4 | 14 service area pages with 84%+ duplicate content, no LocalBusiness schema per city | P1 | Thin content filter risk, no city-level entity signals | Medium |
| 5 | OG image is set to the favicon (16x16), not a social sharing image | P1 | Zero social sharing click-through; brand damage | Low |
| 6 | Brand name inconsistency: "TurnKey Bath Remodel" (title) vs "TurnKey Bathroom Remodel" (OG) | P1 | Entity confusion signals for Google | Low |
| 7 | /projects/ returns 404 instead of 301 redirect to /our-projects/ | P1 | Lost link equity and traffic | Low |
| 8 | Blog post (top traffic page) targets DIY keywords, anti-conversion; missing CTA to service | P1 | Traffic with near-zero conversion intent | Low |
| 9 | wp-login.php accessible at standard URL (brute-force attack surface) | P2 | Security risk, not ranking factor | Low |
| 10 | IndexNow not implemented; no AI crawler directives in robots.txt | P2 | Slower Bing/AI indexing | Low |
| 11 | No security headers (X-Frame-Options, HSTS, CSP, X-Content-Type-Options) | P2 | Security posture, minor trust signal | Low |
| 12 | /showers/ and /bathtubs/ hub pages thin (766/745 words) | P2 | Below competitive depth for broad category terms | Medium |
| 13 | No ImageSitemap; all project images use iOS photo filenames (IMG_XXXX.jpg) | P2 | Missed Google Images traffic | Low |
| 14 | WebSite schema description field is empty string | P2 | Weak entity description signal | Low |
| 15 | Cache-Control: max-age=0 means no browser-side HTML caching | P2 | Repeat visitors re-download full HTML | Low |
Prioritized Action Plan
Immediate (P0) - Block Removers
- Fix SSR. The entire site's AI visibility is zero until the initial HTML response contains actual body content. Work with the WordPress theme developer to output H1, navigation, and above-the-fold content server-side. This is the single most impactful fix.
- Resolve the sister domain. Make a business decision: consolidate
turnkeybathroomrenovations.comintoturnkeybathremodel.comvia 301 redirects, or implement cross-domain canonicals. The split is actively costing rankings.
High Priority (P1) - Revenue-Linked
- Upgrade LocalBusiness schema per Merlino schema IP (add
mainEntityOfPagewith GMB CID, KG@id,additionalTypeWikipedia URL, WikidataareaServed,geoRadius,disambiguatingDescription,alternateName). - Fix service area pages with unique city content (minimum 3-4 city-specific paragraphs) and per-page LocalBusiness schema.
- Fix OG image from favicon to a proper 1200x630 hero image of a completed bathroom remodel.
- Normalize brand name across all meta tags to one consistent form ("TurnKey Bath Remodel").
- 301 redirect
/projects/to/our-projects/. - Add conversion layer to the tub liner DIY blog post - "Don't want to DIY? We install tub liners professionally in New Orleans - (504) 513-6366."
Medium Priority (P2) - Compounding Wins
- Implement IndexNow (WordPress plugin available; connect to Bing/AI index pipeline).
- Add explicit AI crawler allow directives in robots.txt.
- Add security headers via
functions.phpor Wordfence. - Expand
/showers/and/bathtubs/hub pages to 1,200+ words. - Protect
wp-login.phpvia WPX Cloud IP restriction or login protection plugin. - Fix empty
descriptionin WebSite schema. - Add image sitemap and rename project images with descriptive filenames.
- Remove
xmlrpc.php?rsdlink from HTML head.
Report generated by Tommy (Technical SEO + Data Lane), Audit C, 2026-06-11. Screaming Frog crawl-28435014 was still in progress at report time; a supplemental crawl export will be available for redirect chain mapping, broken internal links, and full title/meta duplication analysis once the crawl completes.