Skip to content

GEO and AEO optimisation for Next.js and Astro websites

Technical optimisation for ChatGPT, Gemini, Perplexity and AI Overviews: bot access, structured data, content structure and measurement.

What you can expect

Access

AI bots, robots.txt and Cloudflare, plus content available in the HTML without waiting for JavaScript.

Understanding

An entity graph in schema.org, answers at the start of each section, clear headings, author and organisation.

Measurement

Traffic from AI assistants in GA4, bot logs and citation samples before and after the changes.

What GEO and AEO mean in practice

GEO (Generative Engine Optimization) prepares a website so that AI assistants such as ChatGPT, Perplexity, Gemini, Claude and Google AI Overviews can fetch it, understand it and cite it in a generated answer. AEO (Answer Engine Optimization) is about being the direct answer to a question, for example in AI Overviews or a voice response. Both build on technical SEO rather than replacing it: a site that Google cannot index properly is rarely a good source for language models either.

What changes after the optimisation

AI bots receive your content

You know which AI bots can access the site, and that is your decision rather than a side effect of default hosting or CDN settings.

  • Separate rules for bots that fetch content for answers and bots that collect training data
  • No accidental blocks in robots.txt, WAF rules or Cloudflare bot protection
  • Key pages deliver their content in the HTML straight away
The site is unambiguous for models

A model can tell who runs the business, what the service covers and who wrote the article, because the site states it in the content and in structured data.

  • Organisation, author and services described in schema.org as a connected entity graph
  • Structured data consistent with what users see on the page
  • Consistent names for services, products and concepts across the site
Content is easier to cite

A passage that answers the question in its first sentences and carries a date and a source is easier to quote than a general description of an offer.

  • The answer first, with detail and context afterwards
  • Facts and figures with an update date and a source
  • One terminology across the site instead of several names for the same thing
You can see what happens

Instead of guessing whether AI systems see the site at all, you have data on bot visits and on traffic arriving from AI assistants.

  • A GA4 segment for traffic from AI assistants
  • Bot logs showing which bots visit, which URLs they request and the response status
  • A baseline recorded before the changes for later comparison

What I check and implement

AI bot access

I check what AI bots actually receive from the server, not only what robots.txt says. You decide which bots to allow.

  • Search bots versus training bots (including OAI-SearchBot, ChatGPT-User, GPTBot, ClaudeBot, PerplexityBot and the Google-Extended token)
  • robots.txt, headers, WAF rules, bot protection and Content Signals in Cloudflare
  • Server responses for these user agents: HTTP status and full HTML
  • Critical content rendered with SSR or SSG rather than only after hydration

Structure and structured data

Structured data describes the site as a network of connected entities: the business, the author, the service and the specific page.

  • Schema.org as an entity graph: Organization, Person, Service, WebPage, Article and BreadcrumbList linked by @id
  • Structured data that matches the visible content
  • Heading hierarchy and sections that answer specific questions
  • llms.txt as an optional extra, with a clear note that support from AI providers is limited

Content that can be cited

I review key pages for whether a specific, verifiable answer can be taken from them.

  • Answers at the start of sections, definitions, sourced figures and update dates
  • Visible author and business information that supports credibility
  • A topic map and pillar pages that organise knowledge on the site
  • No mass-produced AI content

Measurement

I set up measurement before the changes so there is a baseline to compare against.

  • GA4: a segment for traffic from AI assistants (chatgpt.com, perplexity.ai, gemini.google.com, copilot.microsoft.com and others)
  • Cloudflare bot logs: which bots visit, which URLs and with what status
  • Sample prompts in AI assistants before and after, bearing in mind that model answers are non-deterministic
  • Search Console: visibility in Google, including AI Overviews, to the extent GSC reports it

Who GEO and AEO optimisation is for

GEO and AEO optimisation makes most sense when a site already has valuable content and a clear offer, but you do not know whether AI assistants can use it at all.

Best for

  • B2B service businesses
  • Expert and content-led websites
  • SaaS products with a public website
  • Next.js, Astro and React websites

Especially when

  • the site has good content but does not appear in AI answers
  • you do not know whether you are blocking AI bots
  • you want to measure traffic from AI assistants
  • you are planning a migration and want to get it right from the start

How we work together

I start with the questions and pages that matter to you. I check bot access, structure and content, and record a measurement baseline before any changes so the effect can be compared.

  1. Agree the goal and scope

    We choose the questions and pages for which your site should be a source. We decide which AI bots you allow and which you want to block.

    Outcome: A list of prompts, pages and bot decisions.

  2. Diagnose the site

    I check bot access and server responses, the HTML of key pages, structured data and content. I record a baseline in GA4, bot logs and sample prompts.

    Outcome: Documented issues and a measurement baseline.

  3. Review findings and priorities

    I explain what to change first and why, separating findings confirmed by data from hypotheses that need testing on your site.

    Outcome: A roadmap with priorities, findings and hypotheses.

  4. Implement the changes

    If implementation is included, I prepare code changes and verify them in staging, including with AI bot user agents.

    Outcome: Implemented changes or implementation-ready tasks for your team.

  5. Measure and observe

    After a few weeks I repeat the measurements and compare them with the baseline. We review what changed and what to check next.

    Outcome: A before-and-after comparison and a plan for further observation.

FAQ - Questions about GEO and AEO optimisation

How it differs from SEO, AI bots, llms.txt, measurement, timing and scope.

How is GEO different from SEO?

SEO is about visibility in search results, while GEO is about whether AI assistants can fetch, understand and cite a page in a generated answer. GEO builds on SEO rather than replacing it: bot access, readable HTML and structured data help in both cases. The main differences lie in how content is prepared for citation and how you measure the effect.

Can you guarantee that ChatGPT will recommend my business?

No. Model answers depend on the prompt, the conversation and the sources the model chooses, and nobody outside the provider controls that. I can improve the chance that your pages are fetched, understood and cited, and show how traffic and presence in sample prompts change.

Will blocking GPTBot cut me off from ChatGPT?

Not directly. OpenAI separates its bots: GPTBot collects training data, OAI-SearchBot indexes pages for search in ChatGPT, and ChatGPT-User fetches a page when a user asks for it. You can block training and still remain available in search. We decide this separately for each provider.

Do I need an llms.txt file?

It is not required. It is a proposed format that some tools read, but the major AI providers do not state that they use it when choosing sources. I add it as a low-cost extra when it makes sense for the site, not as the basis of the optimisation.

How do you measure AI traffic and visibility?

In GA4 I separate traffic from AI assistant domains such as chatgpt.com, perplexity.ai and gemini.google.com. Cloudflare logs show which bots visit the site and with what status. Sample prompts in AI assistants before and after the changes complement this, treated as a signal rather than a hard measurement, because model answers change.

How long before I see results?

Changes to bot access and structured data can be verified immediately after release. Changes in traffic and citations usually take several weeks, because bots need to fetch the pages again and AI systems need to refresh their indexes. That is why I repeat the measurements a few weeks after publication.

Does the service include writing content?

Not in full. I review key pages and point out what to change in structure and form, for example where to put the answer first or add a date or a source. You or your team write the content itself, and I can propose the layout and check the effect.

Does this work for WordPress websites?

The diagnosis does: I can check bot access, server responses, structured data and content on any site. I implement code changes mainly in Next.js, Astro and React. For WordPress I hand over recommendations for your team, or we discuss a migration if you are planning one anyway.

What are the engagement options?

You can start with a standalone GEO and AEO audit ending with a roadmap, choose an audit with implementation in code and measurement setup, or combine the optimisation with a technical SEO audit when the site also has indexing or performance problems.

What access do you need?

For the diagnosis I usually need access to Google Search Console, GA4 and, if the site uses it, Cloudflare. Implementation requires repository access and an agreed release process. We agree the scope of access before the work starts.

Related services and project examples

Compare the scope with these services, or explore selected client projects and my role in them.