All documentation

    AEO/GEO Mode

    AEO Mode ("Answer Engine Optimisation" / "Generative Engine Optimisation") turns Rank Pilot AI SEO into a toolkit for getting a brand cited by AI answer engines — ChatGPT, Gemini, Claude and Perplexity — rather than just ranking in traditional search. The feature lives at /aeo-mode (AeoMode.tsx) and is driven by a pure client-side scoring engine in src/lib/aeoEngine.ts.

    Access gating (useAeoAccess)

    AEO Mode is not available to every plan. The useAeoAccess hook implements the rule set:

    • Enterprise on a paid subscription — AEO is included and always on.
    • Enterprise on a trial — AEO is blocked; the account must convert to a paid subscription first.
    • Pro tier — requires an active 7-day AEO pass, a one-off purchase (checked against the aeo_passes table for a row with status = active and expires_at in the future).
    • Lower tiers — must both upgrade to Pro and buy the 7-day pass.

    The hook combines usePlanFeatures (for tier), useSubscription (for trial status) and a React Query lookup of the user's most recent active pass, exposing hasAccess, isEnterprise, isPro, tier, activePass and loading state. When access is missing, the page renders an AeoAccessGate instead of the tool. When a user returns from Stripe checkout with ?pass=success in the URL, the page polls the aeo-active-pass query every 2 seconds (up to 10 tries) so the newly purchased pass appears as soon as the webhook writes it.

    Using AEO Mode

    With access confirmed, the page shows:

    1. Enable AEO Mode toggle — switches the page between AEO analysis and a placeholder "standard SEO only" state.
    2. Brand details — name, website URL, about page, logo URL, and multi-line fields for service pages, documentation pages and social profile URLs. These feed both llms.txt generation and the semantic scoring layer.
    3. Content to optimise — a textarea for pasting the page or article to analyse (minimum 100 characters, alongside a brand name and URL, before the "Run AEO Analysis" button becomes fully effective).

    Clicking Run AEO Analysis calls runAeo({ brand, content }) from aeoEngine.ts entirely in the browser — no AI call is made for the core scan, so results are instant and deterministic.

    The AEO engine (aeoEngine.ts)

    runAeo bundles together five outputs:

    • llms_txt — a generated llms.txt file: a # Brand Name heading, optional tagline, an "Authoritative Pages" section linking the about page plus every service and documentation page supplied, and a "Brand Entity" block listing name, URL and social profile "same-as" links. This is meant to be saved to public/llms.txt at the site root so LLM crawlers can find authoritative brand context.
    • schema — four JSON-LD blocks generated from the pasted content: Organization (name, url, logo, sameAs), FAQPage (extracted from question?\nanswer patterns in the text), Article (headline pulled from the first line, author fixed to "RankPilot AI", today's date), and HowTo (numbered-list steps extracted with a regex).
    • geo_rewrite — a "generative engine optimisation" rewrite that breaks any paragraph longer than 180 characters into bullet-pointed sentences, on the theory that AI answer engines extract and cite shorter, self-contained statements more reliably.
    • aeo_scores — four 0–100 layer scores plus an overall average:
      • Semantic layer: +25 each for having a brand name, URL, social profiles and an about page.
      • Relevance layer: +25 each for mentioning "FAQ", "how to", being over 800 characters, and mentioning "AI"/"LLM".
      • Citability layer: +25 each for bullet lists, question marks, the word "step", and tables/pipe characters.
      • Validation layer: +40 for having social profiles, +30 for more than 5 brand mentions, +30 for more than 20 backlinks.
    • content_hub — up to 20 unique capitalised multi-letter words/phrases extracted from the content, used as a rough topic list.
    • validation_actions — a fixed list of off-site recommendations (publish on Medium, post in relevant subreddits, guest posts, backlink acquisition, and — after Search Console/Business Profile — recommending Rank Pilot AI SEO's autopilot).

    Results and WordPress push

    The results panel shows the four-layer scores as progress bars plus an overall badge, and lets the user copy or download the llms.txt file and copy the JSON-LD schema. For connected WordPress sites (from autopilot_connections where platform = wordpress), users can push the generated llms.txt, schema and (optionally, for a chosen slug) the GEO rewrite straight to the site via the aeo-wordpress-push edge function. Shopify and generic CMS connections are listed but push is not yet supported for them — the UI warns the user AEO push is WordPress-only for now.