AI / GEO Readiness
Generative Engine Optimization — how citable this site is to AI Overviews, ChatGPT, and Perplexity
Every page tested returns full body copy and JSON-LD in the raw, unrendered HTML — no JS execution required — and AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and every other tested user-agent) are fully unblocked in robots.txt. That's a strong technical foundation. What holds the score down is almost entirely upstream of crawling: the same duplicate city-page problem found elsewhere dilutes which page (if any) an AI system would cite, virtually no paragraph on the site lands in the optimal citation-length range, and the schema actively states the wrong business hours — a direct, verifiable fact an AI assistant could get wrong when asked.
| Dimension | Weight | Score |
|---|---|---|
| Citability | 25% | 30/100 |
| Structural Readability | 20% | 40/100 |
| Multi-Modal Content | 15% | 35/100 |
| Authority & Brand Signals | 20% | 40/100 |
| Technical Accessibility | 20% | 68/100 |
Critical Findings
Every page's openingHours JSON-LD says 9:00 AM–5:00 PM daily; confirmed live GBP hours are 6:00 AM–9:00 PM daily. Fixed in Session 1 (2026-09-29) via Rank Math's Local SEO tab. Re-verified live Oct 4, 2026: every page's JSON-LD now correctly states "openingHours":["Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday 06:00-21:00"], matching the real GBP hours. "What are [business]'s hours" is one of the most common AI local-answer query patterns — this is no longer a risk. Full history on the Schema page.
Grepped "Over N years of experience" across pages: home and /tree-removal-services/ say 22 years; city pages (Katy, The Woodlands, and others) say 18 years; a separate homepage paragraph says the arborist has 20 years; "in business since 2002" implies 24. LLMs cross-reference facts across a domain's pages — internally inconsistent numeric claims reduce confidence in any of the site's stated facts, making the whole domain less attractive to cite for pricing, credentials, service area, or hours.
Status (Oct 4, 2026): the client confirmed "since 2002" is the one real anchor fact — 24 years as of 2026. All 4 conflicting instances (18/20/22, plus the untouched Divi blurb titles) found and corrected across 119 occurrences on 67+52 posts, in two passes (the second catching a city-page-specific phrasing variant the first regex missed). Re-verified live sitewide: zero stale instances remain on homepage, city pages, or service pages.
Verified: Katy vs. The Woodlands scored 97.3% textual similarity; the flagged Woodlands duplicate pair scored 98.5%. With this much overlap, AI crawlers and embedding models will likely treat these as near-duplicate documents — diluting which single URL (if any) an AI system would choose to cite for "tree service in [city]," and wasting crawl attention that could go toward a smaller number of genuinely distinct, citation-worthy pages.
Status (Oct 4, 2026, updated three times): real progress, not a full fix. Round 1: a genuinely unique ~80-100 word paragraph was added under a new question-style H2 on all 43 real city pages (99.8% → 91.0%). Round 2: varied the "Why Choose Us" 3-blurb section's wording (same real facts, previously identical) and added a second new paragraph using real Houston-region facts (clay soil, climate, hurricane season) (91.0% → 76.0%). Round 3 (client kept pushing): varied the 4 remaining service-category blurb cards (previously 100% identical across all 43 pages), same real claims, different wording. Re-measured live: Klein vs. Katy similarity now 59.5% (was 76.0%, originally 99.8%). What remains is mostly shared nav/footer/CTA chrome (normal for any site) plus the bio/credential sidebar box, which needs real local specifics (landmarks, job photos, testimonials) from the client to go further. Sulphur LA and Lake Charles LA were removed entirely at the client's request; a third out-of-territory page, Georgetown TX (~170 miles away, missed in the original audit), was found and noindexed.
High Findings
Extracted every paragraph from the homepage, a city page, a service page, and the tips page. City-page paragraphs run 4–42 words (median ~29); zero fall in the 134–167-word band AI systems favor for direct extraction. The site's body copy is short marketing-voice sentences, not self-contained factual answers.
Status (Oct 4, 2026): same root cause as GEO-03, now improved alongside it. One real, factual answer-first paragraph was added to the homepage, /tree-removal-services/ turned out to already have solid content, and all 43 city pages now have a new ~80-100 word unique paragraph each (see GEO-03) — closer to the citable band than before, still short of the 134–167-word target. The rest of each city page's body copy is still short marketing-voice boilerplate.
/llms.txt and /llms-full.txt both 301-redirect to the homepage — Rank Math's generic catch-all, not a real file. Separately, /tree-maintenance-tips/ has genuine FAQ content ("Why Should You Hire An Arborist?", "What Is A Certified Arborist?") but zero FAQPage schema anywhere on the site — a zero-cost missed opportunity, since the content already exists.
Status (Oct 4, 2026): FAQPage schema added to /tree-maintenance-tips/ using the page's own real Q&A text, no new content invented — verified live. llms.txt correction: the master AI-SEO playbook this agency follows explicitly says not to prioritize llms.txt — no major AI platform currently uses it. Leaving the Rank Math redirect as-is is the correct call, not a gap.
Question-based headings (which AI systems strongly favor for direct-answer extraction) appear in exactly one place sitewide: the "Frequently Asked Questions" section on the tips page. Everywhere else: "TREE REMOVAL", "SERVING CYPRESS TEXAS, HOUSTON AND SURROUNDING AREAS". Naturally list-friendly content (a PROS/CONS breakdown on the removal page) is written as plain paragraphs instead of scannable list items — a missed structuring opportunity.
Status (Oct 4, 2026): a real question-style H2 ("Looking for a Tree Service in [City]?") with a direct answer-first paragraph now exists on all 43 city pages, plus one on the homepage — 44 new question-style headings sitewide, up from 1. The original ALL-CAPS marketing headers (hero titles, "SERVING... AND SURROUNDING AREAS") are untouched, and a full rewrite of those is a real content project, not something to rush — especially since several obvious candidates (cost, licensing/insurance) have no real underlying facts on file to answer honestly yet.
What's Working: Entity Clarity
The one genuine strength in this category: every page's JSON-LD resolves to the same LocalBusiness/Organization node — same @id, name, phone, and address on the homepage, both duplicate city pages, and the service page tested. The 45 templated city pages do not fragment the entity at the schema level, which is the single most important thing keeping this from being a worse GEO problem than the content overlap alone would suggest.
- Unified entity graph across all tested pages despite templated content
- No JS-gating — full content and schema visible to any crawler that doesn't execute JavaScript
- All AI crawler user-agents unblocked in robots.txt (confirmed: only one wildcard rule, disallowing just /wp-admin/)
- sameAs omits YouTube — still true as of Oct 4, 2026. Live schema now carries 3 profiles (Facebook, Twitter/X, Pinterest), but no YouTube channel URL exists to add — only a single video link, which isn't the right thing to put in sameAs (that field should point to the entity's own channel/profile, not one piece of content). Genuinely blocked on a real channel existing, not a quick fix.
The schema author entity reads "danny" (a raw WordPress username) instead of "Daniel Arias, ISA Certified Arborist"— FIXED. This was actually resolved back on 2026-09-29 (before this GEO audit page's last write), re-verified live Oct 4, 2026: the schema's Person node now correctly reads "Daniel Arias, ISA Certified Arborist". This bullet was stale.- Bonus fix (Oct 4, 2026): found and fixed a real, unrelated schema bug while re-checking this page — the LocalBusiness priceRange field was literally set to "jaclyn" (a WP admin username leaked into the field, presumably a stray click). Cleared live rather than inventing a price tier with no real pricing data to back it.
Top 5 Highest-Impact Changes
| # | Fix | Effort | Impact |
|---|---|---|---|
| 1 | Low | High — stops AI systems surfacing wrong hours | |
| 2 | Low | High — a core fact AI systems would extract | |
| 3 | Consolidate/differentiate the 45 near-duplicate city pages — Partial: 6 duplicate pairs redirected, differentiation not started | Low (dedup, done) / Medium-High (differentiate, not started) | High |
| 4 | Medium | High for AI Overview/Perplexity citation | |
| 5 | Add YouTube to sameAs — Blocked, no real channel URL exists; | Low | Medium-High |