Multi-Pillar Audit Report

A five-pillar review of experienceweeki.com — SEO, design, frontend, content, and AI-search readiness — covering all 52 pages on the site.

Targetexperienceweeki.com
Pages Audited52 / 52 (full sitemap)
PlatformDM Direct (DreamHost)
DateMay 20, 2026
Prepared byMySeoDesk.com

Executive Summary

The site looks polished and the brand voice is warm. The audit surfaces consistent, mechanical gaps across every modern SEO + performance pillar — most of which become straightforward fixes once identified.

Overall
38
Below Average
SEO Technical
42
Poor
On-Page SEO
58
Mediocre
Schema
13
Critical
Performance
51
Mediocre
Accessibility
28
Critical
Design / Taste
55
Mediocre
Content E-E-A-T
32
Poor
AI Search / GEO
24
Poor
Top 3 Findings

Three highest-leverage fixes

  1. llms.txt is published with X-Robots-Tag: noindex — the AI-citation file ships with a response header that tells crawlers not to index it. The fix is a single platform-level header change. [Issue C-1]
  2. 45 of 52 pages have ZERO schema markup. Every property page, every experience page, every hub page is invisible to rich results, AI Overviews, and structured-data understanding. [Issue C-2]
  3. 88% of images are missing descriptive alt text. 812 of 923 images have alt="", 105 have no alt attribute. WCAG 1.1.1 failure plus a missed image-SEO funnel. [Issue C-4]

Focus Areas vs. Findings

Three areas have been the focus of recent work on the site: speed, SEO, and content quality. Each focus area is matched against what the audit data shows, so the gaps and the wins are visible side by side.

SEO optimization
45 of 52 pages have ZERO schema markup. Only blog posts have BlogPosting (7 pages). No LocalBusiness, no VacationRental, no Product, no Review, no FAQPage, no BreadcrumbList. Zero rich-result eligibility for the entire revenue-generating property + experience inventory.
SEO optimization
15 of 52 page titles exceed 70 characters (will truncate in SERP). 6 titles under 30 chars (thin). 2 sets of duplicate titles across 5 pages.
SEO optimization
9 pages have ZERO H1. 3 pages have multiple H1s. 3 sections on homepage skip from H2 directly to H4 (broken outline).
SEO optimization
9 pages missing meta descriptions. 25 pages have meta descs over 160 chars (truncate in SERP). 3 duplicate meta descs across 7 pages.
Site speed
812 of 923 images use empty alt='', 105 have no alt attribute at all. 88% of images have no descriptive alt text (accessibility + image SEO failure).
Site speed
ZERO lazy-loaded images, ZERO WebP, ZERO AVIF, ZERO srcset, ZERO <picture> elements. Every image is loaded eagerly at full resolution as JPEG. 923 images across 52 pages.
Site speed
Homepage loads jQuery 3.7.0 + jquery-migrate render-blocking from external CDN. 3 render-blocking scripts in <head>. 23 total scripts in <head>. Only 1 preconnect/preload resource hint across 6 distinct external origins.
Site speed
Impeccable audit detected 6 layout-thrash transitions (animating width/height/padding/margin instead of transform/opacity). Causes jank on scroll + interaction.
Content quality
All 3 historical/info blog posts read as AI-generated or fluff. Zero bylines. Zero source citations. Zero first-hand experience markers. Misspelling 'Endagered' in manatee post undermines authority.
Content quality
All 4 sampled property descriptions read as generic real-estate copy. 'breathtaking 270-degree Gulf views', 'magical sunsets', 'hidden paradise', 'stylish, fun-filled retreat' — zero host voice, zero unique sensory detail.

Critical Issues

Six items that materially block organic visibility, accessibility, or AI-search inclusion. Fix order is roughly top-down by impact.

Critical C1

llms.txt served with X-Robots-Tag: noindex header

The site publishes an llms.txt file (138 lines, 52 page entries) intending to guide AI crawlers — but the response includes the header `X-Robots-Tag: noindex`. LLM crawlers that obey this header (Perplexity, ChatGPT, Claude crawlers via robots-conformant fetchers) will NOT index it. The signal is undone before it leaves the server. Either the file is intentional (remove the noindex header) or it's an accident (delete the file).

FixRemove X-Robots-Tag: noindex from the llms.txt response. If using DM Direct's platform-imposed header, contact DreamHost support or set an exception. Decide intent first: is the site opting in to AI citation or out?
Critical C2

Zero schema markup on 45 of 52 pages

No LocalBusiness, no VacationRental (LodgingBusiness), no Product, no Offer, no Review, no AggregateRating, no FAQPage, no BreadcrumbList, no Event (Swamp Fest blog!), no NewsArticle. Only the 7 blog posts have BlogPosting. The entire revenue-generating inventory (13 properties + 7 experiences + 5 hub pages) is invisible to rich-result eligibility, AI Overview eligibility, and Google's structured-data understanding.

FixAdd JSON-LD to each page type: LodgingBusiness for properties (with priceRange, amenityFeature, address, geo, image, aggregateRating); LocalBusiness for the parent brand on homepage and About; Product + Offer for experiences; Event for Swamp Fest blog; BreadcrumbList sitewide; FAQPage for any page with Q&A pattern (homepage 'Not Sure Which Stay' section qualifies). Validate with Google's Rich Results Test before deploy.
Critical C3

9 pages with zero H1 (including homepage)

The homepage and 8 inner pages render with NO <h1> tag. Affected: HOME, Dolphins-Cove/jacuzzi, app/experiences, app/homes, plus 5 featured-experience subpages (airboat, gulf-tiki, head-spring, massage, round-boat). H1 is the single strongest on-page topical signal. Search engines fall back to <title> or sniffed text, which is a guess.

FixAdd a single semantic <h1> to each page reflecting the primary keyword target. Homepage: 'Locally-Managed Waterfront Vacation Rentals in Weeki Wachee, FL'. Property: '[Property Name] — [Key Feature] in [Location]'. Experience: '[Experience Name] in Weeki Wachee, FL'.
Critical C4

812 images with empty alt='', 105 missing alt entirely (88% alt failure rate)

Of 923 <img> tags across 52 pages, 812 have alt='' (decorative declaration when image is content), 105 have no alt attribute at all. The homepage logo has no alt. Hero images have no alt. Property gallery images have no alt. This is a sweeping accessibility violation (WCAG 1.1.1) AND a missed image-SEO opportunity (Google Images, image-pack inclusion).

FixAudit every <img>. Decorative images keep alt=''. Content images get descriptive alt referencing what's actually shown ('Dolphins Cove backyard with heated pool and tiki hut at sunset'). Logo gets alt='Experience Weeki — Waterfront Vacation Rentals'. Sweep all property galleries; this is mechanical work but unblocks ~3,000+ image-SERP impressions/year.
Critical C5

Duplicate-content cluster: 3 URLs serving identical homepage

Pages `/`, `/home-old`, and `/vacation-rentals` all return the same <title>, same meta description, and likely the same body. Canonical tags point to themselves, not to the homepage. This is an internal duplicate cluster diluting authority and potentially confusing Google's canonical selection.

Fix301-redirect /home-old → /. 301-redirect /vacation-rentals → / OR rewrite /vacation-rentals as a unique landing page with unique title, meta, content (recommended for the keyword 'Weeki Wachee vacation rentals'). Same fix for /own-nature-coast vs /own-weeki-river — they share a duplicate title and meta description but should serve distinct buyer-intent queries.
Critical C6

Robots.txt is empty of AI-crawler Allow rules

robots.txt contains only: `Sitemap: https://www.experienceweeki.com/sitemap.xml` and `User-agent: *` — no Allow, no Disallow, no AI-crawler-specific rules. Greg's standard requires explicit Allow for GPTBot, ChatGPT-User, ClaudeBot, PerplexityBot, Google-Extended, Applebot-Extended, Bingbot, Bytespider, anthropic-ai. Without these, AI crawler behavior is undefined; some default to refusing ambiguous sites.

FixAdd explicit `User-agent: <bot>\nAllow: /` blocks for 9 AI crawlers. Add `User-agent: *` with `Allow: /` and `Disallow: /app/main` (the empty rendered-app endpoint). See template at the end of this audit.

High Priority

Thirteen items that won't tank the site individually but compound into significant CTR, ranking, and conversion loss.

High H1

15 titles >70 chars — will truncate in SERP

All 13 property-page titles plus 1 blog post plus About-Us follow the pattern '[Property] – [Feature1] & [Feature2] | Experience Weeki'. The 70-char SERP-cutoff truncates the brand off the end, so users see '...| Experien' or simply lose the 'Experience Weeki' qualifier. Worst offender: 93 chars on the manatees blog post.

FixTighten to 55-60 chars: 'Dolphins Cove | Hernando Beach Vacation Rental | Experience Weeki'. Move the differentiator to first half; drop redundant connectors.
High H2

25 titles' meta descriptions >160 chars — truncate in SERP

25 of 52 meta descriptions overflow the SERP description cutoff. Truncation kills the call-to-action in the back half, where 'Book direct and save' lives. Visible CTR loss.

FixRewrite to 150-160 chars max. Put the unique benefit + CTA in the first 120 chars.
High H3

9 pages missing meta description

Affected pages: about-our-manatees, app/experiences, app/homes, history-of-weeki-wachee-swamp-fest, how-to-pack-for-your-trip, intro-to-weeki-wachee, locals-guide, sms-consent, spz. Google generates a fallback from page text, which is unpredictable and often suboptimal.

FixWrite a unique 150-char description for each. For the 2 'app/' pages, decide if they should be noindex (they look like rendered-state shells).
High H4

3 duplicate meta descriptions sharing across 7 pages

`/contact` and `/schedule-a-call` share 'Phone, Email, WhatApp'. Two 'Own' pages share identical desc. Three homepage variants share same desc.

FixRewrite each to reflect the unique intent of the page.
High H5

3 pages with multiple H1 elements

/own-nature-coast, /own-weeki-river, /property-management each render 2 H1s. Confuses semantic outline.

FixDemote secondary H1 to H2.
High H6

jQuery 3.7.0 + jquery-migrate render-blocking from CDN

Homepage <head> loads 3 render-blocking scripts: jQuery 3.7 (~85KB gzipped), jquery-migrate, and d-js-one-runtime-unified-desktop. jQuery in 2026 indicates the DM Direct platform stack hasn't modernized. These block first paint until downloaded + parsed.

FixCannot remove jQuery without platform migration. Push DreamHost / DM Direct support to add async/defer attributes, or migrate to a modern stack (Astro / Next.js) — already used on Greg's other sites at Contabo 194.
High H7

Zero responsive-image markup (no srcset, no <picture>, no WebP/AVIF)

Every image on the site is loaded at full resolution as JPEG with no responsive variants. Mobile users on 3G eat full desktop-sized images. WebP would cut 25-35% off file size, AVIF 40-50%. lirp.cdn-website.com appears to support multiple sizes (filenames like '5-1d1dc87b-1920w.jpg', '5-1d1dc87b-222w.jpg') but they're not wired into srcset.

FixUse the existing CDN size variants in srcset attributes: `srcset='...-222w.jpg 222w, ...-1024w.jpg 1024w, ...-1920w.jpg 1920w' sizes='(max-width:600px) 100vw, 50vw'`. Then ask the CDN to deliver WebP via content-negotiation (Accept header).
High H8

Zero lazy-loading on 923 images

No `loading='lazy'` attributes anywhere. Every image, including those well below the fold, downloads on page load.

FixAdd `loading='lazy'` to every <img> below the fold. Native browser support is universal. ~30-50% reduction in initial-load bytes.
High H9

Pure #000 backgrounds + multiple low-contrast text combinations

Impeccable flagged 1.1:1 contrast on text #f2f2f2 over #ffffff (effectively unreadable for most users), 3.5:1 on white over #619288 (below WCAG AA 4.5:1), and 2.6:1 on #999 over #f5f5f5 (below AA). Pure #000000 backgrounds appear in multiple sections — soften to a tinted near-black to match the warmer brand palette.

FixRun audit-design.sh to locate each. Replace #f2f2f2 on white with #475569 or darker. Replace white on #619288 with a darker green or use a dark text color. Replace #999 on #f5f5f5 with #4b5563. Soften pure-black to oklch(12% 0.01 250).
High H10

3 heading-skip violations on homepage

H2 'Find Your Perfect Weeki Wachee Stay' → H4 (no H3). Same for 'Why Book With Experience Weeki?' and 'Not Sure Which Stay Is Right for You?'. Screen-reader users hit broken outline. Three more skipped-heading instances on inner pages.

FixPromote H4s under those H2s to H3s. Validate outline with Lighthouse Accessibility audit.
High H11

All blog posts and property pages lack author bylines

Zero E-E-A-T author signals across the entire content footprint. Google's helpful-content systems weight author authority heavily for YMYL-adjacent topics (wildlife guides, travel safety) and for hospitality. No 'Reviewed by', no 'Last updated', no author credentials.

FixAdd 'Written by [Name], local since [year]' bylines and 'Last updated [date]' timestamps. Add an Author schema (Person) to each blog post. Consider an /authors/[name] page per real contributor.
High H12

All blog posts read as AI-generated or generic fluff

DeepSeek-V4-Pro audit verdict on 3 sampled blog posts: all READS_AI. Evidence: 'Here are some fun facts you probably didn't know about manatees', 'hidden paradise waiting to be discovered' (used 2x), 'born out of a desire to showcase the unique character and charm'. Zero first-hand markers across 3 posts. Manatee post cites no sources for legal claims and misspells 'Endagered'.

FixRewrite each post with first-hand voice (specific dates, named local spots, observed wildlife), cite primary sources (FWC, USFWS, festival site), add named bylines, fix the misspelling. Worth bringing in a Florida-resident copywriter for 1-day rewrite sprint.
High H13

All property descriptions read as generic real-estate copy

DeepSeek-V4-Pro audit verdict on 4 sampled properties: 3 READS_AI, 1 READS_FLUFF. Repeated cliches: 'breathtaking 270-degree Gulf views', 'magical sunsets', 'hidden paradise', 'stylish, fun-filled retreat'. No host voice, no wildlife observations, no specific guest stories.

FixAdd a Host's Note section to each property: 1-paragraph first-person story about why the property is named what it is, what the owner has seen there (manatees, dolphins, sunsets at exact time), and what makes it different from the others on the site. Highest leverage edit for direct-bookings conversion.

Medium Priority

Ten items worth scheduling but not urgent. Mostly content-depth, structural, and polish gaps.

Medium M1

6 titles under 30 chars (too thin)

'Homes' (5 chars), 'Experiences' (11), 'SMS Consent' (11), 'Locals-Guide' (12), 'Contact Us Weeki Wachee' (23), 'How to pack for your trip' (25). Wastes the strongest on-page signal.

Medium M2

26 of 52 pages under 500 words (thin content risk)

9 pages under 300 words: the 4 'app/*' shells, contact, water-scooter (101w), water-scooter-instructions (100w), Dolphins-Cove/jacuzzi (155w). The /app/ shells are likely client-rendered React/Foundation routes — should be noindex.

Medium M3

llms.txt structure incomplete vs Greg's standard

Has 2 sections (Pages, Blog Posts) and 138 lines. Missing: Title, > description blockquote, AI Citation Guidance, 125-char quote limit clause, Main Services section, Business Details, Service Areas. Compared to Greg's audit-seo-files.sh standard which requires 7+ sections.

Medium M4

Single-font typography (Poppins only)

Impeccable flagged: only Poppins is used site-wide. No display/body pairing, weak typographic hierarchy.

Medium M5

6 layout-thrash transitions detected

Impeccable flagged 6 `transition: height, padding, width, margin` and 1 `transition: width, height`. Animates layout properties instead of transform/opacity. Causes jank, especially on mobile.

Medium M6

Only 1 resource hint across 6 external origins

<head> has 1 preconnect/preload, but the page fetches from irp.cdn-website.com, lirp.cdn-website.com, static.cdn-website.com, multiscreensite.com, multiscreenstore.com, googletagmanager.com. Each first hit pays DNS + TCP + TLS sequentially.

Medium M7

No breadcrumb navigation on inner pages

Property detail pages, experience detail pages, and blog posts lack visible breadcrumbs. No BreadcrumbList schema. Hurts UX on mobile and rich-result eligibility.

Medium M8

Blog category is sparse (only ~7 posts)

For a niche local-travel site, 7 blog posts is thin. Topics with high local search demand (manatees, kayaking, springs, Tarpon Springs day trips, sunset cruises, alligator safety, hurricane prep) are unaddressed.

Medium M9

No FAQ section visible on property pages

Listings lack FAQ blocks ('Is the pool heated?', 'How far to the river?', 'Is there a grill?'). FAQ schema is one of the highest-ROI rich results for vacation rentals.

Medium M10

No internal-link CTAs from blog posts back to properties

Blog posts end with 'Older Post / Newer Post' navigation but no in-content links to the relevant property or experience pages. Wasted internal-link equity + wasted conversion path.

Low Priority

Cosmetic / hygiene items. Fix when convenient.

Low L1

WhatsApp misspelled as 'WhatApp' in meta description

Both /contact and /schedule-a-call meta descs say 'Phone, Email, WhatApp'.

Low L2

Misspelling 'Endagered' on manatee post

'Endagered Species Act' on /about-our-manatees blog. Authority signal weakened.

Low L3

Inconsistent ampersand encoding in titles

15 titles contain '&amp;' as literal text instead of '&'. Cosmetic but suggests templating bug.

Low L4

Footer copyright year is 2026 (correct, but worth confirming auto-update)

Verify the year auto-updates via JS or template variable, not hardcoded.

Low L5

No hreflang (single language)

OK for now — no Spanish version of the site. Flag if Spanish-speaking travel market becomes a target (Florida tourism, Cuban/Puerto Rican visitors).

Low L6

GA4 only — no GTM or server-side tagging

GA4 (G-J8P5JVBXJV) is fine. No GTM container detected, no server-side tag, no consent banner. Florida has no state privacy law forcing consent, but EU visitors land on un-consented analytics.

SEO — Technical

Crawlability, indexability, robots, sitemap, canonical handling, and AI-crawler configuration.

Robots.txt

Present at /robots.txt but contains only a sitemap reference and a bare User-agent: * with no Allow/Disallow rules. No explicit AI-crawler permissions.

# Current
# Sitemap is also available on /sitemap.xml
Sitemap: https://www.experienceweeki.com/sitemap.xml
User-agent: *
Fix — recommended robots.txt
User-agent: *
Allow: /
Disallow: /app/main

# AI crawlers — explicit allow
User-agent: GPTBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: anthropic-ai
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: Applebot-Extended
Allow: /

User-agent: Bytespider
Allow: /

User-agent: CCBot
Allow: /

Sitemap: https://www.experienceweeki.com/sitemap.xml

Sitemap.xml

Lives at /sitemap.xml. Lists 52 URLs. Format is valid XML. Three URLs (/home-old, /vacation-rentals, /) point to duplicate content — see Issue C-5.

Missing image sitemap entries despite 923 images on the site. Adding image extension would let Google crawl image alt + caption metadata directly.

Canonicalization

Non-www → www 301 redirect is in place. All 52 pages declare a self-canonical, which is mostly correct — except the 3-URL homepage cluster where two duplicates self-canonicalize instead of pointing to /.

Fix Either 301-redirect /home-old and /vacation-rentals to /, or rewrite each as a distinct page with its own canonical (recommended for /vacation-rentals — high-intent keyword).

SEO — On-Page

Titles, meta descriptions, heading hierarchy, internal anchors.

Title length distribution

  • 15 pages over 70 chars (truncate in SERP)
  • 6 pages under 30 chars (too thin to compete)
  • 2 sets of duplicate titles across 5 pages
  • 0 pages with empty <title> (the recon agent's earlier flag — server-rendered HTML actually has them)
See all 15 over-length title offenders →
[93] /intro-to-weeki-wachee-an-overview-of-the-town-s-history...
[77] /optimystical-vista
[77] /paddlers-point
[77] /sunfish-cove
[76] /manatee-run-retreat
[76] /red-elephant-inn
[75] /teal-turtle
[74] /coastal-cozy-cabana
[74] /fun-flamingo
[74] /overlook-retreat
[73] /paddlers-cove
[73] /salty-mangrove
[73] /shelter-from-the-storm
[71] /about
[71] /nanas-river-house

Meta description quality

  • 9 pages missing meta description entirely
  • 25 pages with meta desc over 160 chars (truncate)
  • 9 pages with meta desc under 120 chars (thin)
  • 3 duplicate meta descriptions shared across 7 pages

H1 hygiene

9 pages have zero H1 (including the homepage). 3 pages have multiple H1s. 3 sections on the homepage skip from H2 directly to H4, creating a broken document outline.

See H1-less pages →
/
/Dolphins-Cove/jacuzzi
/app/experiences
/app/homes
/featured-experiences/airboat-tours-and-fishing-charters
/featured-experiences/gulf-tiki-cruises
/featured-experiences/head-spring-drift-experience
/featured-experiences/massage-therapy
/featured-experiences/round-boat-rentals

SEO — Schema Markup

JSON-LD structured data is the single highest-leverage SEO surface in 2026 — it powers rich results, AI Overview eligibility, and structured-data understanding. The site is almost entirely absent from this layer.

Coverage

45 of 52 pages have zero JSON-LD

Only the 7 blog posts emit BlogPosting schema. Every other page — homepage, all 13 property pages, all 7 experience pages, contact, about, ownership pages — has no structured data.

Missing schema types by page category

Page TypeMissing SchemaImpact
HomepageLocalBusiness, Organization, WebSite (with SearchAction), BreadcrumbListKnowledge-panel eligibility, sitelinks, brand signal
Property pages (×13)LodgingBusiness or VacationRental, with priceRange, amenityFeature, address, geo, image, aggregateRatingRich snippets for vacation rentals, AI Overview eligibility, Google Travel inclusion
Experience pages (×7)Product or Service or TouristAttraction, plus Offer with price + availabilityProduct rich results, price display in SERP
Blog (×7)Author (Person) under BlogPosting, mainEntityOfPage, imageE-E-A-T author signal for Google's helpful-content systems
Swamp Fest blogEvent schema (location, startDate, endDate, organizer)Event rich result + Google Events surface
SitewideBreadcrumbList on every inner pageBreadcrumb rich result + improved click attribution
Any page with Q&AFAQPage on homepage "Not Sure Which Stay" section + property FAQsFAQ rich result expansion in SERP
Fix — example LodgingBusiness for one property
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LodgingBusiness",
  "name": "Dolphins Cove",
  "description": "Pet-friendly waterfront home in Hernando Beach North...",
  "image": ["https://www.experienceweeki.com/images/dolphins-cove-1.jpg"],
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Hernando Beach",
    "addressRegion": "FL",
    "postalCode": "34607",
    "addressCountry": "US"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": 28.4881, "longitude": -82.6620 },
  "telephone": "+1-352-585-8944",
  "priceRange": "$$$",
  "amenityFeature": [
    { "@type": "LocationFeatureSpecification", "name": "Heated Pool", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Hot Tub", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Pet Friendly", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Deep Water Dock", "value": true }
  ],
  "url": "https://www.experienceweeki.com/dolphins-cove"
}
</script>

SEO — Images

923 images across the site. Image quality and metadata fail on multiple axes simultaneously.

Empty alt=""
812
88%
No alt at all
105
11%
Lazy-loaded
0
0%
WebP
0
0%
AVIF
0
0%
srcset
0
0%

Every image is loaded eagerly, at full resolution, as JPEG

No loading="lazy", no srcset, no <picture>, no WebP, no AVIF. Mobile users on cellular networks download the entire image payload of every page before scrolling. The CDN (lirp.cdn-website.com) appears to support pre-built size variants (filenames include -222w.jpg, -1920w.jpg) but they are not wired into responsive image markup.

Fix — convert one hero image as proof
<!-- before -->
<img src="https://lirp.cdn-website.com/.../5-1d1dc87b-1920w.jpg" alt="">

<!-- after -->
<img
  src="https://lirp.cdn-website.com/.../5-1d1dc87b-1024w.jpg"
  srcset="https://lirp.cdn-website.com/.../5-1d1dc87b-480w.jpg 480w,
          https://lirp.cdn-website.com/.../5-1d1dc87b-1024w.jpg 1024w,
          https://lirp.cdn-website.com/.../5-1d1dc87b-1920w.jpg 1920w"
  sizes="(max-width: 600px) 100vw, (max-width: 1200px) 50vw, 1024px"
  loading="lazy"
  decoding="async"
  alt="Dolphins Cove backyard at sunset — heated pool, tiki hut, and deep-water dock">

Content & E-E-A-T (Humanizer Pillar)

DeepSeek V4 Pro audited 3 blog posts and 4 property descriptions for AI tells, citation gaps, and first-hand experience markers. Verdicts below.

Verdict

All 3 sampled blog posts read as AI-generated

The homepage brand voice is warm and personal, but the blog posts themselves are missing the markers that carry that voice through. Zero bylines. Zero source citations for factual claims (manatee biology, federal protection laws, Swamp Fest history). Zero first-hand markers ("I", "we", named local residents, dated personal observations). This is a high-leverage rewrite opportunity — the brand is already established; the content just needs to inherit it.

See verbatim evidence per post →

/about-our-manatees: "Here are some fun facts you probably didn't know about manatees:" followed by a bullet list. Cites "Endagered Species Act" (misspelled). No source link to FWC or USFWS.

/best-kept-secrets: "hidden gems" (3x), "hidden paradise waiting to be discovered", "tranquil oasis beloved by locals but often overlooked". No dated visits, no parking notes, no wildlife observations.

/history-of-weeki-wachee-swamp-fest: "born out of a desire to showcase the unique character and charm", "its commitment to celebrating the unique spirit of Weeki Wachee remains unwavering". No interview quotes. No festival URL cited.

Verdict

All 4 sampled property descriptions read as generic real-estate copy

The property descriptions trigger every common AI-content marker: "breathtaking 270-degree Gulf views", "magical sunsets", "stylish, fun-filled retreat", "hidden paradise". There is no host voice, no story of the property's name, no specific wildlife or sensory detail.

Highest-ROI rewrite Add a 1-paragraph Host's Note to each property page. First-person, dated, specific. Example for Dolphins Cove:
"We named it Dolphins Cove after the pod that plays in the canal every evening around 5pm — grab a drink on the dock and you'll see them. The deep-water slip fits boats up to 28ft."

Cross-cutting E-E-A-T gaps

  • Zero author bylines across all 7 blog posts. No "Written by [Name]". No Author schema.
  • No "Last updated" timestamps. The Pine Island Park entry on /best-kept-secrets says "Currently Closed" — no date. Will go stale silently.
  • No citation links. Factual claims about manatee biology, federal laws, and festival history are unsourced.
  • No /authors/ pages. No Person schema. No staff bios with credentials ("Weeki Wachee local since 2008", "Florida master naturalist").
  • Cliche overuse: "hidden gem" (3x), "oasis" (2x), "breathtaking" (4x across audited pages), "magical" (3x). Google's helpful-content systems demote pages with high cliche density and low specificity.

AI Search / GEO Readiness

How well does the site surface in ChatGPT, Perplexity, Claude, Google AI Overviews, and Bing Copilot? Per Google's AI Optimization Guide, llms.txt is not a Google AI Overview ranking lever — but it is meaningful for non-Google LLM crawlers.

Header Conflict

llms.txt is published but served with X-Robots-Tag: noindex

The site has invested in creating a 138-line /llms.txt file with 52 page entries, intending to guide AI crawlers. But the HTTP response carries:

server: nginx
content-type: text/plain;charset=UTF-8
cache-control: no-cache, no-store, must-revalidate
x-content-type-options: nosniff
x-robots-tag: noindex

The noindex directive tells robots-conformant crawlers (including some LLM citation pipelines) not to index this resource. The signal is killed before it leaves the server. Likely a DM Direct platform default; needs an explicit exception.

Fix Open a DreamHost / DM Direct support ticket to remove the X-Robots-Tag: noindex response header on /llms.txt (and /robots.txt if also affected). Verify with curl -I https://www.experienceweeki.com/llms.txt after the change.

llms.txt structure is incomplete vs. citation-readiness best practice

The current file has 2 sections (Pages, Blog Posts) and only lists URLs + page descriptions. Missing the elements that help LLMs pull a useful, on-brand summary:

  • No # Title with the brand name
  • No > description blockquote — the elevator pitch crawlers grab first
  • No AI Citation Guidance section (recommended quote-length limits, attribution language)
  • No Business Details section (phone, email, service areas, hours)
  • No Main Services taxonomy

No passage-level citability in body content

AI search systems prefer compact, fact-dense paragraphs. The site's content is structured as long blog narratives + short property blurbs. There are few quotable, self-contained facts ("The Weeki Wachee River maintains a constant 72°F year-round" — not stated anywhere on the site).

Fix Add a "Quick Facts" sidebar block to every blog post and property page. 5-8 self-contained facts with units, dates, and named sources. These are the chunks AI systems quote.

Performance / Core Web Vitals

Performance is one of the stated focus areas for the site. The PageSpeed Insights public API quota was exhausted at audit time, so this section is derived from static HTML analysis and observed render-blocking patterns. A follow-up PSI run with an authenticated key is recommended for lab + CrUX field data.

Homepage loads jQuery 3.7.0 + jquery-migrate render-blocking

23 scripts in the <head>. 3 of them are render-blocking (no async/defer): jQuery 3.7, jquery-migrate, and the DM Direct runtime bundle. jQuery 3.7 gzipped is ~85KB; the DM Direct runtime is multiple times that. First-contentful-paint cannot begin until these download + parse.

Constraint On DM Direct platform, jQuery removal is not possible without migrating off DreamHost's site builder. Mid-term plan should target migration to Astro SSR or similar — the same stack Greg uses on the other Contabo-hosted sites. Quick interim wins: ensure async/defer on the runtime bundle, add preconnect to the 6 distinct CDN origins.

Six layout-thrash CSS transitions detected

Impeccable audit flagged 6 instances of transition: height, padding, width, margin and 1 of transition: width, height. Animating these properties forces the browser to recalculate layout on every frame, causing jank — especially on mobile.

Fix Replace with transform + opacity animations (GPU-accelerated). For height transitions, use grid-template-rows or max-height with overflow-hidden.

Only 1 resource hint across 6 external origins

The homepage references 6 distinct external CDN hosts (irp.cdn-website.com, lirp.cdn-website.com, static.cdn-website.com, multiscreensite.com, multiscreenstore.com, googletagmanager.com) but only one preconnect/preload hint is present in the <head>. Each first hit pays DNS + TCP + TLS sequentially.

Fix
<link rel="preconnect" href="https://lirp.cdn-website.com" crossorigin>
<link rel="preconnect" href="https://irp.cdn-website.com" crossorigin>
<link rel="preconnect" href="https://static.cdn-website.com" crossorigin>
<link rel="dns-prefetch" href="https://www.googletagmanager.com">

Total HTML payload across the site

52 pages × 107KB average = 5.5MB HTML payload sitewide. The average page weighs in at 107KB of HTML alone, before CSS, JS, fonts, or images. For a content-light vacation rental site, this is heavy — DM Direct injects 48KB of inline CSS + 26KB of inline JS into every page.

Design / Taste / Frontend

Impeccable + chrome-devtools rendering audit. The site looks professional at a glance but breaks down on contrast, type, and motion.

Accessibility

Color contrast falls below WCAG AA in multiple places

Impeccable detected the following contrast ratios:

  • 1.1:1 — text #f2f2f2 on #ffffff (effectively invisible)
  • 3.5:1 — white text on #619288 (need 4.5:1 for body text)
  • 2.6:1#999999 on #f5f5f5

The 1.1:1 is the most serious — that text is unreadable to virtually all users. Likely a section background/text-color swap bug.

Single-font typography (Poppins only)

The site uses Poppins for everything — headings, body, captions, navigation. No display/body pairing, no typographic hierarchy beyond size and weight.

Fix Pair a distinctive display face (Fraunces, Recoleta, Tiempos) for headings with Inter or system-ui for body. Resort/vacation brands lean toward serif headings — it signals warmth and place.

Pure #000000 backgrounds

Pure black appears as a section background. Reads harsh and unbranded against the otherwise warm teal/sand palette. Soften to oklch(12% 0.01 200) for a tinted near-black.

Three heading-skip violations on homepage

Three sections render H2 directly followed by H4 (no H3). Screen-reader users hit a broken outline. Promote the H4s to H3 — purely a tag swap.

Quick Wins (Ranked by Effort)

These ten items can ship in under a day total. Highest leverage per hour.

EffortAction
15 minRemove `X-Robots-Tag: noindex` header from llms.txt response (DreamHost support ticket).
30 minFix misspelling 'Endagered' → 'Endangered' on /about-our-manatees and 'WhatApp' → 'WhatsApp' in 2 meta descriptions.
30 minAdd 301 redirects: /home-old → /, /vacation-rentals → /.
45 minAdd explicit AI-crawler Allow rules to robots.txt (9 bots).
1 hrAdd semantic <h1> to homepage + 8 H1-less inner pages.
2 hrTighten 15 over-length titles to ≤60 chars.
2 hrWrite 9 missing meta descriptions + rewrite the 25 over-length ones.
3 hrGenerate JSON-LD LodgingBusiness for all 13 properties (template + per-property fields).
4 hrSweep all 923 <img> tags to add descriptive alt text (start with homepage hero + each property hero).
4 hrAdd loading='lazy' to every below-the-fold image (mechanical pass via DM Direct template edits).

30 / 60 / 90 Day Roadmap

A sequenced plan if the audit results are taken seriously. The 90-day milestone is the meaningful one — a platform migration off DM Direct unlocks every category that the current stack caps.

30 Days quick-wins

  • All quick-wins shipped (above 10 items).
  • JSON-LD coverage: LodgingBusiness, LocalBusiness, BreadcrumbList, FAQPage, Event (Swamp Fest).
  • Robots.txt + llms.txt aligned with Greg's standard.
  • Alt-text sweep complete across 923 images.
  • Lazy-loading + srcset across all property gallery images using existing CDN size variants.

60 Days content + structure

  • Rewrite 3 existing blog posts with bylines, citations, first-hand voice.
  • Add Host's Note section to all 13 property pages.
  • Add 5-10 FAQ items per property page with FAQPage schema.
  • Publish 6 new blog posts on high-intent topics (manatee swim safety, sunset cruise comparison, Tarpon Springs day trip, kayaking the headspring, fishing the flats, hurricane season tips).
  • Add visible breadcrumbs across the site.

90 Days platform shift

  • Migrate off DM Direct to Astro SSR or similar (jquery removal, modern image pipeline, no platform-imposed render-blocking).
  • Author pages per real contributor with credentials and photo.
  • Internal-link audit: every blog post links to ≥2 relevant inventory pages.
  • Image SERP push: descriptive alts + image-sitemap inclusion.
  • Local citation cleanup + GBP + Bing Places (if not already done).

What's Already Working

A fair audit names the wins, not just the gaps. Ten things the site is doing right today.

G-1

Sitemap.xml present at /sitemap.xml and referenced from robots.txt (52 URLs).

G-2

All 52 pages declare canonical (self-canonical mostly, which is correct except for the duplicate cluster).

G-3

OG title + OG image present on 48 of 52 pages.

G-4

GA4 tracking with custom events (G-J8P5JVBXJV) is wired correctly.

G-5

llms.txt exists with all 52 page entries (intent is right; header issue is the blocker — see c1).

G-6

Non-www → www 301 redirect is in place (correct canonicalization at the host level).

G-7

Mobile viewport meta is set with `initial-scale=1, maximum-scale=5` (correct).

G-8

Property descriptions, despite genericness, are at least unique per listing (not templated word-for-word).

G-9

Content tone is friendly and family-owned (good brand foundation to build on — just needs more specificity).

G-10

BlogPosting schema on all 7 blog posts (rare W for the platform).

Methodology

How this audit was conducted, for reproducibility.

Tools used

  • Crawl: Full sitemap parse + parallel curl of all 52 URLs. Python static analyzer for titles, meta, H1/H2 hierarchy, canonical, JSON-LD, OG tags, alt text, image format, lazy-loading, word count, HTML weight.
  • Render audit: chrome-devtools MCP — accessibility tree, DOM, screenshots, console messages (homepage + 5 inner pages).
  • Design / taste: Impeccable CLI (15 anti-patterns surfaced). Greg's audit-design.sh wrapper.
  • SEO files: Greg's audit-seo-files.sh for robots.txt + llms.txt + AI-crawler rule validation.
  • Content E-E-A-T: DeepSeek V4 Pro 1.6T (frontier reasoning) audited 3 blog posts + 4 property descriptions for AI tells, citation gaps, author authority, first-hand markers.
  • Performance: Static HTML analysis (PSI public API quota was exhausted at audit time — a follow-up Lighthouse run with an authenticated key is recommended).

What this audit does not cover

  • Backlink profile (no data pulled — recommend Moz/Ahrefs/DataForSEO follow-up).
  • Google Search Console traffic + impression data (no API access for this domain).
  • Live Core Web Vitals field data via CrUX (no PSI quota available at audit time).
  • Booking-funnel conversion analysis (would require analytics access).
  • Competitor benchmarking (recommended as a separate engagement).