Benchmarks: homepage 800+ words, service pages 1,000+, blog posts 1,500+. Readability score of 46.3 (Flesch-Kincaid) indicates college-level reading — consider simplifying for a broader audience.
WordPressWP Rocket 3.19.4All in One SEOApache HTTP Server
The redesign
Before
After
What we found — and how we'd fix it
We identified 13 issues on the current site that are likely costing them qualified leads every month.
criticalPerformance
Slow Mobile Page Speed
Problem
The mobile performance score is 14/100, with a First Contentful Paint of 9.5s and Largest Contentful Paint of 60.4s. Total page size is 18,473 KiB. DataForSEO reports 27 scripts loaded, 4 of which are render-blocking.
Our fix
Optimize and compress all images (est. savings of 6,251 KiB), minify CSS and JavaScript, remove unused code (1,071 KiB of unused JS), and defer the 4 render-blocking scripts. Use next-gen image formats like WebP.
Data source: Google PageSpeed Insights API + DataForSEO On-Page API
highPerformance
Enormous Network Payloads
Problem
The total network payload is 18,473 KiB — over 18 megabytes. DataForSEO measured a DOM size of 135,677 bytes. The 59 images on the homepage account for a large portion of the weight.
Our fix
Compress and lazy-load images, implement code splitting to load only what's needed per page, and use a CDN for static assets. WP Rocket (already installed) can be configured more aggressively.
Data source: Google PageSpeed Insights API + DataForSEO On-Page API
highSEO
Heading Hierarchy Misuse — H5 Used for Key Content
Problem
DataForSEO detected 12 H5 tags used for important content like "WELCOME TO COPPER LEAF POOLS," team member names, and section headers. These should be H2 or H3 tags. The H1 ("Luxury Pool Builders in Scottsdale, AZ") is correct, but the hierarchy breaks immediately after.
Our fix
Restructure headings: H1 for the page title, H2 for major sections ("Custom Pool Solutions," "From Our Clients"), H3 for subsections (service names, team members). Remove all H5 usage — that level is almost never needed.
Data source: DataForSEO On-Page API
highSEO
Images Missing Alt Text
Problem
DataForSEO flagged the no_image_alt check as failing. With 59 images on the homepage, missing alt text means Google Image Search can't index them, and screen readers can't describe them to visually impaired users.
Our fix
Add descriptive alt text to every image: "Custom infinity pool with desert landscaping in Scottsdale, AZ" rather than "pool1.jpg" or empty alt tags. Include location and service keywords naturally.
Data source: DataForSEO On-Page API (no_image_alt check: FAIL)
mediumContent
Low Content Rate
Problem
DataForSEO flagged low_content_rate — only 4.78% of the page is actual text content (6,485 bytes of text in a 135,677 byte DOM). The homepage has 1,052 words, which exceeds the 800-word benchmark, but most of the page weight is code, not content.
Our fix
Increase the text-to-code ratio by reducing DOM bloat, removing unnecessary wrapper elements, and adding more substantive content. Consider expanding service descriptions and adding an FAQ section directly on the homepage.
Data source: DataForSEO On-Page API (low_content_rate check: FAIL, plain_text_rate: 0.048)
mediumSEO
LocalBusiness Schema Only — Missing Service and FAQ Schema
Problem
Direct HTML inspection confirmed LocalBusiness schema with name, phone, and email. DataForSEO's has_micromarkup check passed, confirming schema exists. But there's no Service schema for the 10+ service pages, no FAQ schema, and no Review schema.
Our fix
Add Service schema for each service page (pool construction, spa design, hardscaping, etc.). Add FAQ schema to existing FAQ content. Add AggregateRating schema for customer reviews.
Data source: DataForSEO On-Page API (has_micromarkup: PASS) + direct HTML inspection
mediumSEO
Only Ranking for 30 Keywords in Top 10
Problem
DataForSEO Labs shows the site ranks for 360 total keywords, but only 30 are in the top 10 (3 in position 1, 11 in positions 2-3, 16 in positions 4-10). The site gets an estimated 700 monthly organic visits worth $6,632 in ad-equivalent value.
Our fix
Target high-value keywords where the site currently ranks 11-20 (64 keywords in striking distance). Optimize existing service pages for their target terms and create new content targeting gaps like "pool cost scottsdale" and "backyard remodel phoenix."
Data source: DataForSEO Labs API (domain_rank_overview + ranked_keywords)
mediumSEO
Has llms.txt but Missing llms-full.txt
Problem
Direct URL check confirmed llms.txt exists (200 status, auto-generated by AIOSEO plugin) listing pages with short descriptions. But llms-full.txt returns 404, and .well-known/ai-plugin.json returns 404.
Our fix
Create a detailed llms-full.txt with service descriptions, pricing ranges, service areas, project timelines, material specs, and FAQs. This gives AI search engines rich content to cite when recommending pool builders in Scottsdale.
Data source: Direct URL checks (llms.txt: 200, llms-full.txt: 404, ai-plugin.json: 404)
mediumTrust
Missing Testimonials and Reviews on Homepage
Problem
DataForSEO detected an H2 section titled "From Our Clients" and team member names in H5 tags, suggesting some social proof exists. However, there are no Google review embeds, no aggregate star ratings, and no structured Review schema for search engines to display.
Our fix
Embed Google Reviews directly on the homepage with star ratings. Add AggregateRating schema so Google can show stars in search results. Feature 3-5 detailed case studies with before/after photos.
Data source: DataForSEO On-Page API (htags analysis) + direct HTML inspection
lowSEO
Duplicate Meta Tags
Problem
DataForSEO detected duplicate "generator" meta tags on the page. While this specific duplicate (WP Rocket) is minor, duplicate meta tags can confuse search engine crawlers and indicate sloppy code.
Our fix
Audit all meta tags and remove duplicates. Ensure only one instance of each meta tag type exists per page. Check that WP Rocket and AIOSEO aren't both injecting the same tags.
Data source: DataForSEO On-Page API (duplicate_meta_tags check: FAIL)
lowSEO
URL Structure Flagged
Problem
DataForSEO flagged multiple URL-related checks: seo_friendly_url, seo_friendly_url_characters_check, seo_friendly_url_dynamic_check, seo_friendly_url_keywords_check, and seo_friendly_url_relative_length_check all failed for the homepage.
Our fix
Review the URL structure across the site. While the homepage URL is clean, internal page URLs should be audited for keyword inclusion, proper length, and avoidance of dynamic parameters.
Data source: DataForSEO On-Page API (5 URL checks: FAIL)
highSEO
29% Duplicate Content Across the Site
Problem
Siteliner analysis found 29% duplicate content across 62 pages, with only 37% unique content. The average page has just 535 words — in the 25th percentile compared to other sites. Duplicate content dilutes keyword authority and can trigger Google's duplicate content filter, pushing pages out of search results.
Our fix
Consolidate duplicate pages, rewrite thin pages with unique service-specific copy, and add city-targeted content. Each service page should have at least 800–1,000 words of original content with unique headings, descriptions, and local context.
Data source: Siteliner (siteliner.com)
lowContent
Lacks Topical Authority via Blog
Problem
The blog has only 5 posts (confirmed via llms.txt), with the most recent topics being pool finishes, costs, and timing. DataForSEO shows the site ranks for pool-related keywords, but content gaps exist for high-volume terms like "pool renovation phoenix" (480 vol, ranking #7).
Our fix
Create a content calendar targeting keyword gaps: "pool cost scottsdale," "backyard remodel phoenix," "pool maintenance arizona." Aim for 1,500+ word long-form posts. Publish 2-4 per month to build topical authority.
Data source: DataForSEO Labs API (ranked_keywords) + direct llms.txt inspection
Data sources used in this audit
Every finding in this audit is backed by verifiable data. No AI-generated scores or subjective ratings — just facts from industry-standard tools.