←

SEO, GEO and AEO

A search-discovery plan for 21 Lancaster hotel sites: crawlable content, consistent property information, language targeting and evidence that search and answer engines can retrieve.

Visible to Google, readable by AI.

A search-discovery plan for 21 Lancaster hotel sites: crawlable content, consistent property information, language targeting and evidence that search and answer engines can retrieve.

SEO · GEO · AEO · JSON-LD · llms.txt

  • 21Sites in one plan
  • 30+AI engines mapped
  • 9Countries in the market matrix
  • 1Template, forked 20 times
The Lancaster chain hub, the root of the entity graph
The Lancaster chain hub, the root of the entity graph

Strategy and implementation

The plan prioritizes the initial HTML of the React sites, then metadata, property identity, languages and supporting evidence. Rendering capabilities vary by crawler. Making content accessible supports discovery, but does not guarantee indexing, rankings or AI citations. The plan describes intended work; results require separate measurement.

  • SEO master plan with a per-market matrix: languages, keywords, schema, competitors
  • GEO playbook: AI-crawler allowlist, llms.txt, JSON-LD entity graph
  • AEO: FAQ schema and answer-shaped copy for answer engines
  • Prerender for non-JS crawlers behind Caddy

The levers

Make the content accessible, explain each property clearly, then measure discovery and answer accuracy.

  1. 1Let the AI crawlers in
  2. 2Serve real HTML to bots
  3. 3JSON-LD on every page
  4. 4llms.txt index and content
  5. 5hreflang and sitemaps
  6. 6FAQ answers
  7. 7Off-site knowledge graph

What it does

  1. 01

    SEO

    Head tags per route, a CMS-driven sitemap with lastmod and hreflang alternates, reciprocal hreflang with x-default and RTL checks for Arabic, per market from Beirut to Milan.

  2. 02

    GEO

    Generative engine optimisation: accessible canonical pages and accurate property facts. Search crawlers and model-training controls are separate choices. An llms.txt index is optional and does not establish citation or inclusion.

  3. 03

    AEO

    Answer engine optimisation: visible answers to real guest questions, with the property named and supporting details linked. Structured data must match the page; FAQ markup does not guarantee a search feature or an assistant citation.

  4. 04

    Entity graph

    Hotel, LodgingBusiness, Restaurant, HotelRoom with Offer, Event and BreadcrumbList per page, tied to an Organization and HotelChain at the hub, so engines resolve which Lancaster.

  5. 05

    Prerender

    The chosen fix is a bot user-agent prerender behind Caddy: crawlers get full HTML, people keep the fast app, and CMS edits reach bots with no rebuild.

  6. 06

    Per-market strategy

    Each property has its own keyword, languages and competitor set, written up in its own strategy doc.

How it was built

  1. In the template

    The sitemap build script and the SEO helper live in the canonical template every hotel forks, so one fix reaches all twenty-one sites.

  2. Prerender runbook

    The runbook routes bot user agents to a headless renderer on the VM while humans get the SPA. It was chosen over build-time prerendering because CMS edits would otherwise need a rebuild.

  3. Off-site

    A per-property checklist for the off-site sources engines use to build their knowledge graph of each hotel.

Stack

Site
Vite and React 19, react-helmet-async, react-i18next.
Structured data
JSON-LD, schema.org Hotel and HotelChain vocabulary.
Edge
Caddy with a bot-UA prerender.
Docs
SEO master plan, GEO playbook, prerender runbook, per-site strategy.