DEV Community

Cover image for Engineering Content for AI: Shifting from SEO to GEO and AEO
Tran Tien Van
Tran Tien Van

Posted on • Originally published at vanaxity.com

Engineering Content for AI: Shifting from SEO to GEO and AEO

Paid CTR fell 68% on queries with an AI Overview, according to the Seer Interactive research cited by Memeburn.

That number is a useful warning for developers building content, docs, or publishing systems: search visibility is no longer only about whether a page ranks. It is also about whether your content can be understood, trusted, and reused inside an answer surface.

The workflow problem behind AI search

A lot of teams still treat SEO content like a page-production queue. Pick a keyword, draft a post, add internal links, publish, repeat.

That can still matter. The ten blue links are not gone. But they are no longer the whole battlefield. People now ask Google, Perplexity, ChatGPT-style tools, Reddit, or an AI Overview for the answer. The brands named inside that answer get the first shot at trust.

For builders, that changes the system design. Content needs to be more than readable by humans after a click. It needs to be easy for answer engines to parse before the click.

SEO, AEO, and GEO are different surfaces

Traditional SEO is mostly about making a page discoverable, crawlable, indexable, and competitive in a ranked result set. A crawler can traverse links, render or inspect DOM structures, evaluate page content, and associate the document with queries.

AEO and GEO add another layer. Answer engines need clean extractable facts, not just keyword relevance. LLM-backed systems can use visible HTML structure such as h2 and h3 headings to infer sections, definitions, and relationships, while JSON-LD can expose explicit entities, properties, and relationships without forcing the model to infer them from prose alone.

That is the practical shift: SEO helps a page compete for the click, AEO helps a system answer a direct question, and GEO helps generative systems cite or name the source correctly.

Treat content like a source system

The new journey is compressed: ask, receive a synthesized answer, refine the question, then click only if the answer creates enough confidence.

That compression means your content stack has to expose facts cleanly. If your product category, audience, offer, and proof are scattered across pages, the model has to infer too much. If your claims are buried in vague positioning, answer systems have little to quote.

A practical entity-first content framework starts by defining the core entities on the page: the organization, product, category, audience, use case, problem, solution, and supporting proof. Each page should make those relationships easy to extract in both human-readable copy and machine-readable structure.

For example, a technical documentation page can state the product category in the opening section, use clear ## headings for definitions and use cases, keep evidence near the claims it supports, and apply relevant Schema.org markup through JSON-LD. The goal is not to stuff metadata onto a weak page. The goal is to make the page's facts, relationships, and context less ambiguous.

A JSON-LD pattern for entity-first pages

Here is a simple developer-facing pattern: define the page as the container, then define the entities the page is about. Use placeholders for your actual organization, product, category, audience, and use case.

<script type="application/ld+json">
{
  "@context": "schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "#organization",
      "name": "Example Company"
    },
    {
      "@type": "Product",
      "@id": "#product",
      "name": "Example Product",
      "manufacturer": { "@id": "#organization" },
      "category": "Example product category",
      "audience": {
        "@type": "Audience",
        "audienceType": "Example audience"
      }
    },
    {
      "@type": "Thing",
      "@id": "#use-case",
      "name": "Example use case",
      "description": "Define the problem this page helps the audience solve."
    },
    {
      "@type": "WebPage",
      "@id": "#page",
      "name": "Example page title",
      "about": [
        { "@id": "#product" },
        { "@id": "#use-case" }
      ],
      "publisher": { "@id": "#organization" }
    }
  ]
}
</script>
Enter fullscreen mode Exit fullscreen mode

This does not replace strong copy. It gives answer systems a cleaner map of what the page is, who published it, what entity it describes, and which use case the page is meant to answer.

A developer-friendly implementation checklist

If I were translating this into engineering work, I would start with this list:

  1. Add explicit entity statements for the company, product, category, audience, and offer.
  2. Use ## sections that map to real questions, definitions, comparisons, and implementation details.
  3. Keep supporting facts close to the claims they prove.
  4. Separate evergreen definitions from volatile data so updates are easier.
  5. Add JSON-LD where it clarifies entities, relationships, authorship, or page type.
  6. Build review gates for claims, citations, and examples before publishing.
  7. Track whether pages support SEO ranking, AEO answer clarity, or GEO citation visibility.
  8. Make syndication part of the pipeline instead of a manual afterthought.

That last point matters because owned content is necessary, but not sufficient. If people are forming trust inside Google, Perplexity, ChatGPT-style tools, Reddit, and AI Overviews, the source material needs to travel beyond a single blog page.

What not to overbuild

There is an easy engineering trap here: turning GEO and AEO into a full ontology, metadata platform, or publishing rewrite before any page becomes more useful.

Start smaller. Pick the pages that explain what the product is, who it helps, and when it should be chosen. Then make those pages structurally obvious:

  1. One clear entity definition near the top.
  2. ## sections that answer real questions.
  3. Claims paired with nearby support.
  4. JSON-LD that mirrors the visible page instead of adding hidden positioning.
  5. A lightweight review step for ambiguity, stale claims, and missing examples.

The supplied SERP data gives enough reason to start. Pew Research found users clicked a result link on 8% of visits where an AI summary appeared, compared with 15% without one. The response should not be "publish less because clicks dropped." It should be "make the answer surface more likely to mention us correctly."

The tradeoff

The hard part is measurement. A drop in CTR may look like lost demand, but it can also mean influence moved earlier into the answer surface.

That is uncomfortable for analytics pipelines built around sessions, clicks, and last-touch attribution. Developers may need to help marketing teams instrument proxy signals: branded search, assisted conversions, referral patterns, citation checks, and content freshness workflows.

None of those is a perfect replacement for click data. But ignoring answer surfaces because they are harder to measure is worse.

The core idea

SEO, AEO, and GEO are not interchangeable. SEO wins rank, AEO wins answer clarity, and GEO wins citation visibility across generative engines.

For developers, the useful move is to make content infrastructure support all three. That means structured publishing, clear entities, claim review, Schema.org markup, syndication, and update paths.

What would you add to a content pipeline if the main consumer was an answer engine before it was a human visitor?


📖 Read the full guide → GEO and AEO Strategy: Win the Shift From Clicks to Conversations

Top comments (0)