Scottsdale, Phoenix & Queen Creek, AZ — Luxury pool construction and remodeling
This is an unsolicited concept audit for educational purposes. We are not affiliated with Morris Pools.
The opportunity
Morris Pools does outstanding work — but their website isn't keeping up. A 23-second mobile load time means most visitors leave before the page finishes rendering, and a #86 ranking for “pool builder scottsdale” puts them on page 9 of Google. Their craftsmanship deserves to be seen. A modern rebuild would dramatically improve speed, search visibility, and the number of homeowners who actually find and contact them.
Google uses these metrics to determine ranking eligibility. All four are failing.
15.7s
FCP
23.3s
LCP
650ms
TBT
15.7s
Speed Index
Target thresholds: FCP < 1.8s, LCP < 2.5s, TBT < 200ms. Time to Interactive is 35.6 seconds — meaning the site is unusable on mobile for over half a minute.
We identified 10 issues across performance, SEO, and content that are likely costing Morris Pools qualified leads every month.
criticalPerformance
Critical Mobile Page Speed — 33/100
Problem
Mobile performance score is 33/100. First Contentful Paint is 15.7 seconds, Largest Contentful Paint is 23.3 seconds, and Time to Interactive is 35.6 seconds. Google requires LCP under 2.5 seconds to rank — this site is 9x over the threshold.
Our fix
Rebuild on Next.js with server-side rendering, automatic image optimization (WebP/AVIF), code splitting, and zero render-blocking scripts. A modern framework eliminates the WordPress + Elementor bloat that's causing the 23-second load time.
Data source: Google PageSpeed Insights API
criticalPerformance
5,970ms of Unused JavaScript
Problem
PageSpeed identified 5,970ms of savings from unused JavaScript alone. An additional 1,200ms can be saved from unused CSS. Combined with unminified JS and CSS (12 KiB each), the site is loading massive amounts of code that visitors never use.
Our fix
Remove Elementor's bloated script bundles, eliminate unused plugins, and replace with lightweight, purpose-built components. Next.js automatically code-splits so each page only loads what it needs.
Data source: Google PageSpeed Insights API
criticalSEO
Not Ranking for Any Target Keywords
Problem
The site ranks #86 for 'pool builder scottsdale' — page 9 of Google. For 'pool builder phoenix', 'custom pools scottsdale', 'pool remodel scottsdale', 'swimming pool contractor scottsdale', 'luxury pool builder phoenix', and 'pool renovation queen creek' — not in the top 100 at all.
Our fix
Create dedicated landing pages for each target keyword with unique, keyword-rich content. Add city-specific service pages for Scottsdale, Phoenix, Queen Creek, and Paradise Valley. Build internal linking structure to concentrate authority on key terms.
Data source: DataForSEO Labs API (SERP rankings)
highSEO
8 Duplicate Content Pages Out of 14
Problem
DataForSEO crawled 14 pages and flagged 8 with duplicate content — 57% of the site. Duplicate content dilutes keyword authority and confuses Google about which page to rank, often resulting in none of them ranking well.
Our fix
Consolidate duplicate pages, write unique copy for each service page, and add canonical tags where needed. Each page should target a distinct keyword with original content — at least 800 words per service page.
Data source: DataForSEO On-Page API
highContent
Only 14 Pages Total — Thin Site Architecture
Problem
The entire site has only 14 pages. For a pool builder serving three cities (Scottsdale, Phoenix, Queen Creek) with multiple services (construction, remodeling, commercial), this is far too thin. There's no blog, no FAQ pages, no city landing pages, and no individual project portfolio pages.
Our fix
Build out a proper site architecture: city landing pages for each service area, individual portfolio pages for completed projects, a blog with 2-4 posts per month targeting buyer keywords, and FAQ pages with structured data for AI search engines.
Data source: DataForSEO On-Page API (14 pages crawled)
highPerformance
WordPress + Elementor — Bloated Technology Stack
Problem
The site runs on WordPress with Elementor page builder. Elementor injects thousands of lines of inline CSS and JavaScript on every page, regardless of whether those features are used. This is the root cause of the 5,970ms unused JS and the 35.6-second Time to Interactive.
Our fix
Migrate to Next.js — a modern React framework that generates lightweight, server-rendered pages. Eliminates plugin bloat, render-blocking scripts, and the DOM-heavy page structure that Elementor creates.
Data source: DataForSEO On-Page API + Google PageSpeed Insights API
mediumSEO
No AI Search Engine Optimization (GEO/AEO)
Problem
No llms.txt or llms-full.txt file found. No structured FAQ data for AI assistants. When homeowners ask Perplexity or ChatGPT 'who are the best pool builders in Scottsdale?', Morris Pools won't be cited or recommended.
Our fix
Add llms.txt and llms-full.txt with comprehensive business information. Add FAQ schema markup. Create content that directly answers common questions AI assistants process — pricing, timelines, service areas, process explanations.
Data source: Direct URL checks (llms.txt: 404, llms-full.txt: 404)
mediumSEO
No Structured Data / Schema Markup
Problem
No LocalBusiness, Service, FAQ, or Review schema detected. Google can't display rich results (star ratings, pricing, FAQs) in search listings, which means lower click-through rates compared to competitors who have structured data.
Our fix
Add comprehensive JSON-LD schema: LocalBusiness with service areas, Service schema for each offering, FAQ schema for common questions, and AggregateRating schema if reviews are available.
Data source: DataForSEO On-Page API
mediumContent
Missing Blog — No Topical Authority
Problem
No blog or content hub detected. Without regularly published content, the site can't build topical authority in Google's eyes or provide material for AI search engines to cite. Competitors publishing monthly content will steadily outrank this site.
Our fix
Launch a blog targeting pool buyer questions: 'How much does a pool cost in Scottsdale?', 'Best pool finishes for Arizona heat', 'Pool remodel vs. new construction'. Publish 2-4 SEO-optimized posts per month.
Data source: DataForSEO On-Page API (site crawl)
lowPerformance
Best Practices Score: 73/100
Problem
Google flagged best practices issues including mixed content, outdated APIs, and potential security vulnerabilities. While not directly impacting rankings, these issues signal a site that isn't well-maintained.
Our fix
Fix HTTPS mixed content issues, update deprecated APIs, and implement Content Security Policy headers. A modern Next.js build on a CDN like Amplify handles all of this automatically.
Data source: Google PageSpeed Insights API
Data sources used in this audit
Every finding in this audit is backed by verifiable data from industry-standard tools.