GEO + SEO Audit Report — Backyard Paradiso

  • Domain: backyardparadiso.com
  • Business Type: Multi-Market Local Services (Outdoor Living Installation)
  • Markets: 7 (Colorado Springs CO, Denver CO, Secaucus NJ, Orlando FL, Naples FL, Romeoville IL, San Antonio TX)
  • Audit Date: May 1, 2026
  • Methodology: geo-seo skill v2.0
  • Pages Sampled: 8 representative URLs

Composite GEO Score: 38/100 — CRITICAL

A solid service-page skeleton sitting on broken foundations. The pergola and artificial-grass pages prove this team can produce decent service content. But the site has no schema, no llms.txt, no LocalBusiness markup for any of its seven locations, content collisions where fence copy bleeds into other service pages, Chinese-character image alt text, near-zero brand authority outside owned channels, and category-archive pages cannibalizing the actual service URLs. AI systems currently have almost nothing to cite.

Score Breakdown

CategoryScoreWeightWeightedStatus
AI Citability48/10025%12.0Below average
Brand Authority18/10020%3.6Minimal
Content E-E-A-T38/10020%7.6Critical
Technical Foundations55/10015%8.3Needs work
Structured Data8/10010%0.8Critical
Platform Optimization42/10010%4.2Below average
Composite100%36.5 → 38Critical

Executive Summary

Backyard Paradiso is a multi-market outdoor-living installer with seven physical locations across Colorado, New Jersey, Florida, Illinois, and Texas, serving a wide service portfolio: pergolas, fencing, artificial grass, decks, pavers, glass railings, motorized zip screens, retractable awnings, permanent and landscape lighting, batting cages, expandable homes, outdoor kitchen cabinets, plus four pool series. The site is a WordPress build with a clean URL pattern at /services/[service]/ and a small blog at /blog/.

The work that has been done on individual service pages — the Pergolas page in particular — is competent. Decent H1, H2/H3 structure, FAQ section, testimonials, ~1,200 words, breadcrumbs. The team clearly knows how to write a service page. But the layer above and around those pages is failing in ways that prevent any of that work from being seen, indexed, or cited.

Three things are gating everything else.

First: there are no entity signals. No Organization schema, no LocalBusiness schema for any of the seven locations, no FAQPage markup despite FAQ sections existing on most service pages, no Article schema on blog posts. AI systems can crawl the pages but they have no machine-readable way to identify what Backyard Paradiso is, where it operates, or which claims belong to it. There is also no llms.txt file. The domain is functionally invisible to entity-graph builders.

Second: content quality bugs are leaking across pages. The Artificial Grass page contains a “Why Choose Backyard Paradiso?” block that talks about composite fences. The Decks page has an embedded H2 that reads “Composite Fences: Beauty and Durability Combined” followed by fence content. Image alt text on the Decks page is raw Chinese filename strings like 图片 (3) and 微信图片 2021102314211423. The same five testimonials (James Rodriguez / Amanda Lee / Michael Davis / Karen Martinez / Thomas Bennett) appear verbatim on the homepage, About, Contact, Artificial Grass, and Pergola pages — Google’s quality systems and AI systems both downweight content that signals templated or fabricated review copy.

Third: the site has no third-party authority. Searches for “Backyard Paradiso” reviews, “Backyard Paradiso Denver”, and combinations with services and cities return nothing — no Reddit, no Wikipedia, no LinkedIn company page, no Yelp/Angi/BBB pages surfacing, no media mentions, no industry citations. The brand has Facebook, Instagram, and a YouTube channel, but the channel doesn’t surface in third-party content. For comparison: searching “aluminum pergola installation Denver Colorado” returns ten competing local installers (StruXure of the Rockies, Legacy Spaces, Freedom Deck Builders, Colorado Dream Decks, Dynamic Pergolas, Inside Outside Spaces, Colorado Classic Exteriors) — Backyard Paradiso doesn’t appear.

The good news: most of this is fixable in 30–60 days because the underlying assets are there. The service pages exist, the locations exist, the blog has started, the technical platform (WordPress) supports schema plugins. The work is structural, not creative.


Critical Issues — Fix This Week

1. Content collision: fence copy bleeding into other service pages

Two confirmed instances:

  • /services/artificial-grass/ — the “Why Choose Backyard Paradiso?” section opens with: “Our commitment goes beyond providing premium products. Every composite fence we offer is meticulously crafted…”
  • /services/decks/ — contains an H2 heading “Composite Fences: Beauty and Durability Combined” followed by ~200 words of fence content embedded mid-page.

The bug pattern suggests this may be present on more than just these two pages. Audit every service page for similar leakage.

2. No structured data of any kind detected on sampled pages

No JSON-LD blocks visible on the homepage, About, Contact, blog index, blog post, or any of the three service pages sampled. For a multi-location services business this is the highest-leverage technical gap on the site.

Specifically missing:

  • Organization schema on the homepage
  • LocalBusiness schema for each of the seven physical locations
  • Service schema on each service page
  • FAQPage schema on the pergola, artificial grass, and decks pages despite all three having FAQ sections
  • Article + Person schema on blog posts
  • BreadcrumbList schema matching the visible breadcrumbs

The right way to land all of this on a WordPress site is RankMath Pro — global Organization + per-page Service/LocalBusiness via the schema generator. An llms.txt file should ship at the same time.

3. Same five testimonials reused verbatim across at least five pages

The block of five testimonials attributed to James Rodriguez, Amanda Lee, Michael Davis, Karen Martinez, and Thomas Bennett appears verbatim on the homepage, About Us, Contact, Artificial Grass, and Pergola pages. On each page the names are identical and the wording is service-adjusted only on the Pergola page; on the other four it’s identical artificial-grass language regardless of the page topic.

This pattern is read by both Google’s review-quality systems and by AI extractors as templated/fabricated content. Two paths forward:

  • Replace with verifiable Google Business Profile reviews per location with proper Review schema and explicit source attribution.
  • If GBP review volume is thin, launch a 60-day review-collection sprint per location before retiring the placeholder text.

4. Cannibalization: WordPress category archives ranking against actual service pages

The site has both /services/pergolas/ (the actual service page, ~1,200 words, FAQ, full content) and /pergolas/ (a thin WordPress category archive listing one blog post). Both URLs return 200, both are crawlable, and the breadcrumb on the blog post links to the category archive, not the service page.

Likely the same pattern exists for every blog category that shares a name with a service: pavers, retractable-awnings, glass-railings, decks. Each duplicate creates a thin URL competing for the brand+service phrase against the real page.

Fix in three steps: (1) noindex or 301 the /[category]/ archive URLs to /services/[service]/, (2) update the post category permalink to /blog/category/[name]/ or set categories to noindex by default in RankMath, (3) re-anchor the blog-post breadcrumbs so they point to /blog/ as the parent rather than the category archive.


High-Priority Issues — Fix This Month

Image alt text contains raw Chinese filename strings

Confirmed on the Decks page — alt attributes include strings like 图片 (3), 图片 (8), 微信图片 2021102314211423, 主图264, 追评图 3 (1). These are upload filenames from a Chinese WPC supplier’s photo library that became alt text when the images were uploaded to WordPress without the alt field being filled.

Effect: zero image-SEO value, accessibility failure for screen reader users, and a quality-rater signal that the site isn’t being maintained.

Homepage body content essentially empty

The rendered homepage body, with chrome stripped, contains: an H1 (“Creating spaces you’ll love to live in”), a long list of service category labels styled as H4, and the duplicated testimonials block. No introductory paragraph, no service descriptions, no location list, no value proposition prose, no “About” section. Word count is below 200 in the main content area.

For a site with seven locations and 14+ services, the homepage should be doing entity-establishment work. Recommended structure:

  • Above-fold: H1 + 60-word company description naming the brand, the category, the service breadth, and the geographic footprint
  • Service grid with 50-word descriptions per category
  • “Where we install” section listing all seven cities with links to per-city landing pages
  • One real testimonial per location with verifiable attribution
  • FAQ block (4–6 questions) that earns FAQPage schema

No location landing pages despite seven physical locations

The Contact page lists all seven locations with NAP, but no /locations/[city]/ or /[service]-[city]/ pages exist. There is nothing on the site that can rank for the queries that actually convert: “pergola installation Denver”, “artificial grass Orlando”, “deck builder San Antonio”.

The architecture this calls for is the standard Service × Location silo. Seven locations × ten priority services = 70 leaf pages, but the first version only needs the location pillars (7) plus one or two priority service-city combinations per market.

No author identity behind blog posts

All four blog posts are bylined “Backyard Paradiso” with the author URL pointing to /author/devteam/. There’s no author bio, no credentials, no LinkedIn, no real human attached to the writing. December 2025 Quality Rater Guidelines updates extend E-E-A-T to all competitive queries, not just YMYL.

Assign blog posts to a real human at Backyard Paradiso (founder, lead designer, ops lead). Build out an author page with bio, photo, years of experience, sameAs links to LinkedIn / Instagram, list of authored posts. Wire Person schema to the byline.

Blog content under-developed for the topic and service breadth

Four blog posts total, all published in December 2025. Quality is decent — comparison tables, pros/cons, structured H2/H3. But the volume is far below what’s needed to support 14 services in 7 markets. Each service silo needs 8–15 supporting cluster posts to read as authoritative.

URL structure inconsistency for product subpages

Artificial grass product variants live at root paths: /super-eco-1-1/, /imperial-k92/, /imperial-pro/, /putting-green-max/, etc. Eleven product pages total. These should sit under /services/artificial-grass/products/[slug]/ — a logical hierarchy that reflects the real architecture.


Medium-Priority Issues

  • No llms.txt file. Single Markdown file at the domain root listing each service page, each location landing page, the most useful blog posts, and the canonical About URL.
  • Navigation drift between pages. Different services menus on different page templates (homepage / About / Contact show different sets).
  • No question-based H2/H3 headings on service pages. Mirror Google’s “People Also Ask” patterns. Followed immediately by 1–2 sentence direct answers.
  • No published pricing or cost-range information. Competitors (Angi, Pergola Depot, StruXure) publish ranges and earn AI citations. Add cost ranges per service per city.
  • Brand authority signals across all major external platforms minimal. No Wikipedia, no LinkedIn company page, no Reddit, no surfaced Yelp/Angi/BBB.
  • No visible publication or modified dates on service pages. AIO and Perplexity deprioritize undated content for time-sensitive queries.

AI Citability Detail (48/100)

Citability scores how likely AI systems are to cite passages from a page. Research from Princeton and IIT Delhi (2024) found AI systems preferentially cite passages that are 134–167 words, self-contained, fact-rich, and answer a question in the first 1–2 sentences. (Directional research — treat as hypothesis.)

CategoryWeightScoreComment
Answer Block Quality30%42Sections open with marketing prose, not direct answers
Self-Containment25%58Most blocks name their subject; some over-rely on “we”/”our”
Structural Readability20%68H1/H2/H3 hierarchy intact, FAQ section, lists used. No tables.
Statistical Density15%22Almost no numbers — no costs, install timelines, warranty years, wind-load ratings
Uniqueness10%35Generic copy that could apply to any aluminum pergola installer

Per-page citability snapshot

URLCitabilityBiggest gap
Pergolas52No numbers, marketing-prose openings
Artificial Grass38Fence content collision; weak openings
Decks34Fence H2 embedded; Chinese alt text; no numbers
About Us31Aspirational prose, no facts about the company
Homepage18Almost no body content
Blog post (Pergolas vs Gazebos)62Best on the site — has comparison table, pros/cons, definitions

Example rewrite — Pergolas page opening

Current opening:

Transform your outdoor space into a stunning and functional retreat with a custom pergola designed and built by Backyard Paradiso. Our pergolas are more than just a structure—they are a blend of style, comfort, and functionality that can completely redefine how you enjoy your outdoor living area…

Suggested rewrite:

An aluminum pergola is a freestanding outdoor structure with vertical posts and an overhead beam-and-slat framework, typically used for partial-shade outdoor living areas. Backyard Paradiso installs custom aluminum pergolas across seven US markets — Colorado, New Jersey, Florida, Illinois, and Texas — with motorized louvre roof systems, optional zip-screen walls, and powder-coated finishes rated for 50+ year service life. Typical installation takes 2–4 days from delivery.

The rewrite earns: definition pattern in sentence one, specific facts (seven markets, 50+ year rating, 2–4 day install), self-containment, and 60-word standalone extractability.


Brand Authority Detail (18/100)

PlatformWeightScoreWhat we found
YouTube25%28Channel exists at @BackyardParadiso, but no third-party video coverage
Reddit25%5No mentions found in any DIY, landscaping, or homeowner subreddit
Wikipedia / Wikidata20%0No Wikipedia article. No Wikidata entity.
LinkedIn15%8No company page found in search
Other (Yelp, BBB, Angi, press)15%22Facebook and Instagram active. No surfaceable Yelp/BBB/Angi pages.

90-day brand-authority sprint

  1. Google Business Profiles for all seven locations. Target 30+ reviews per location in 90 days.
  2. LinkedIn company page with all seven locations as office records, employees linked, weekly post cadence.
  3. YouTube content cadence — 1–2 install timelapses per month per market, properly titled with location-tagged metadata.
  4. Local press in 2–3 markets — pitch local home & garden sections.
  5. Authentic Reddit participation — no brand seeding. Months of work, not weeks.

Content E-E-A-T Detail (38/100)

DimensionWeightScoreComment
Experience258/25No project case studies, no first-person install accounts, stock photos throughout
Expertise259/25No author credentials, no technical depth (warranty years, wind-load specs, certifications)
Authoritativeness255/25No external citations, no media coverage, no awards, no industry partnerships listed
Trustworthiness2516/25NAP visible across seven locations, HTTPS valid, contact info present. Duplicated testimonials hurt the score.

Highest-leverage moves

  • Real project case studies — one per service per market over 12 months
  • Author profile + Person schema for blog
  • Trust strip in footer (manufacturer partnerships, insurance/license info, certifications)
  • Add specifics to every service page — warranty years, wind-load ratings, install timelines, material certifications

Technical Foundations (55/100)

Some categories couldn’t be verified directly because the audit environment can’t fetch robots.txt, sitemap.xml, or measure Core Web Vitals against the live origin.

CategoryScoreNotes
Crawlability9/15Sitemap presumed via WordPress default but not verified. AI crawler access needs explicit verification.
Indexability5/12Cannibalization on category archives confirmed. Index bloat likely.
Security7/10HTTPS valid. HSTS, CSP, X-Frame-Options not verified.
URL Structure5/8Service URLs clean. Product subpages at root path inconsistent.
Mobile7/10Viewport meta tag present. Tap targets and font sizes need real-device audit.
Core Web Vitals7/15Cannot measure without CrUX or Lighthouse access.
Server-Side Rendering12/15WordPress is server-rendered. Schema not in raw HTML.
Page Speed3/15Many large images, Chinese-character filenames suggest no optimization workflow.

Verification steps before signing off on technical

  1. Pull live robots.txt and confirm GPTBot, ClaudeBot, PerplexityBot, Bingbot, Googlebot, Google-Extended, CCBot, Amazonbot all explicitly allowed.
  2. Pull sitemap.xml and verify URL count, lastmod dates, that all service and blog URLs are listed.
  3. Run PageSpeed Insights on the homepage, Pergolas page, and one blog post.
  4. Check IndexNow integration (instant Bing notification).
  5. Check Google Search Console for indexing status, mobile usability, schema errors.

Schema & Structured Data (8/100)

Highest-leverage technical improvement on the site.

Priorities

  1. Organization schema (homepage) — name, url, logo, description, foundingDate, sameAs, contactPoint, knowsAbout, areaServed
  2. LocalBusiness schema × 7 — one per location pillar page
  3. Service schema × 14 — one per service page
  4. FAQPage schema — every service page with FAQ section
  5. Article + Person schema — every blog post
  6. BreadcrumbList schema — matching visible breadcrumbs
  7. Product schema — 11 artificial-grass variants and other product sub-pages

Implementation path: install RankMath Pro, use Schema Generator, validate every output through validator.schema.org and Google’s Rich Results Test before declaring a page done.


Platform Readiness (42/100)

PlatformScoreBiggest gap
Google AI Overviews38Pages don’t rank top-10 for service-city queries
ChatGPT (Bing index)32No Wikipedia entity, no Reddit signals, weak entity recognition
Perplexity45Pages lack statistical density and named sources
Claude52Cleanest structure of the four; improves with schema
Bing Copilot42Same as ChatGPT (shared Bing index). IndexNow not detected.

Quick Wins — This Week (under 5 hours total)

  1. Fix the fence-content leakage on /services/artificial-grass/ and /services/decks/. Audit every other service page for similar leakage.
  2. Replace the testimonials block on the homepage, About Us, Contact, and Artificial Grass pages.
  3. Bulk-fix Chinese filename alt text on the Decks page and the rest of the site.
  4. Install RankMath Pro and deploy Organization schema on the homepage.
  5. Add a 60-word company description to the homepage above-fold stating who, what, and where.
  6. 301 the WordPress category archive URLs to the corresponding service pages.
  7. Add a static “Updated [Month YYYY]” line to all 14 service pages.

30-Day Roadmap

Week 1: All seven Quick Wins. In parallel: pull live robots.txt and sitemap.xml, run PageSpeed Insights on all sampled URLs, claim or audit Google Business Profiles for all seven locations.

Week 2: Schema rollout phase 1 — Organization (homepage) + Service schema for all 14 service pages + FAQPage schema on every page with an FAQ section. Begin bulk image alt-text remediation across the rest of the site.

Week 3: Build the seven location pillar pages at /locations/[city]/. Each gets H1, address, map embed, services list with internal links, location-specific testimonials, LocalBusiness schema, service-area copy.

Week 4: Author identity rollout — assign a real human to the blog, build the author page with Person schema, retroactively re-byline the four existing posts. Generate and publish llms.txt. Begin GBP review-collection sprint. Plan the next 90 days of blog content.

Beyond 30 days: 10–15 cluster posts per service silo, one project case study per service per market over the year, YouTube content cadence, LinkedIn company page launch, local press outreach in two priority markets, schema completeness for all blog posts and product pages, ongoing review-volume growth on GBP.


Methodology & Caveats

Methodology: geo-seo skill (v2.0), composite-scoring across six categories: Citability (25%), Brand Authority (20%), Content E-E-A-T (20%), Technical (15%), Schema (10%), Platform (10%).

Pages sampled (8): homepage, /about-us/, /contact-us/, /blog/, /services/pergolas/, /services/artificial-grass/, /services/decks/, /pergolas-gazebos-pavilions-whats-the-difference/, /pergolas/ (the duplicate WordPress category archive).

Limitations of this audit:

  • robots.txt, sitemap.xml, and llms.txt couldn’t be fetched directly from the audit environment due to network constraints. Verify these in step one of remediation.
  • Core Web Vitals weren’t measurable without Lighthouse / PageSpeed Insights access.
  • Schema was tested by inspecting raw HTML returned by web fetcher. JS-injected schema wouldn’t show in this view.
  • Brand authority scoring used external search reconnaissance only; a more thorough scan would directly query LinkedIn, Yelp, and BBB APIs.

Methodological caveats from the geo-seo skill itself:

  • The 134–167 word optimal-citation length and the +40% / +115% citation-lift figures come from individual academic studies. Directional, not load-bearing physics.
  • The Ahrefs Dec 2025 “brand mentions outweigh backlinks 3x” finding is one study on 75K brands. Platform weights are derived from that single study.
  • Wikipedia presence is recommended for ChatGPT and Perplexity citation, but the editorial notability bar makes it unrealistic for an SMB outdoor-living installer in the short term.
  • Reddit recommendations should be authentic participation only. Brand-account posting is detected and removed.

Audit produced with the geo-seo skill (v2.0.0) on May 1, 2026. Composite GEO score: 38/100 · Critical · Needs Attention.