← Back to case studies
Website Audit

Morris Pools

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.

PageSpeed scores

Source: Google PageSpeed Insights API

Mobile

33
Performance
92
SEO
91
Accessibility
73
Best Practices

Desktop

58
Performance
92
SEO
91
Accessibility
73
Best Practices

Core Web Vitals (Mobile)

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.

Keyword rankings

Source: DataForSEO Labs API — checked March 2026

KeywordPosition
pool builder scottsdale#86
pool builder phoenixNot ranked
custom pools scottsdaleNot ranked
pool remodel scottsdaleNot ranked
pool construction phoenixNot ranked
swimming pool contractor scottsdaleNot ranked
luxury pool builder phoenixNot ranked
pool renovation queen creekNot ranked

Technology stack

WordPressElementor ProGravity Forms

What we found — and how we'd fix it

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.

  • Google PageSpeed Insights APIPerformance, accessibility, best practices, SEO scores + Core Web Vitals
  • DataForSEO On-Page API14 pages crawled — duplicate content, broken resources, page structure
  • DataForSEO Labs APISERP rankings for 8 geo-targeted keywords + competitor positions
  • Direct URL checksrobots.txt, sitemap.xml, llms.txt, llms-full.txt

Want an audit like this for your site?

Book a free 20-minute call. We'll screen-share your site, audit it live, and give you a gap report — yours to keep either way.

Book a Free Call