Open-source research

SAGE: A Complete Review of the Open-Source SEO, AEO and GEO Audit Engine

Executive summary

A direct review of Taqi Molavi’s public repository: a Python engine for technical SEO, entity answers and generative retrieval readiness.

2 September 2026Written and developed by Taghi Molavi
Human-free conceptual visualization of the SAGE SEO, AEO and GEO audit engine

Executive summary

SAGE, distributed as sage-audit, is a Python engine for auditing three layers of modern discoverability: technical SEO, Answer Engine Optimization (AEO), and Generative Engine Optimization (GEO). This research is based on a direct review of the public tmolavi/sage-audit repository on 2 September 2026.

The project is not a black-box rank tracker. Each check produces a structured finding with status, score, weight, evidence, and a recommendation. SEO contributes 30% of the overall score, while AEO and GEO contribute 35% each.

What the repository contains

The reviewed snapshot has two commits, requires Python 3.10+, uses the MIT license, and exposes four interfaces: CLI, Python library, JSON/Markdown reporting, and an MCP server. The README presents GitHub as published and PyPI as a pending maintainer step, so direct Git installation remains the documented path.

AreaMain modulePractical output
Data modelmodels.pyFindings, pillar reports, final report
Orchestrationcore.pyThree audits and weighted score
Technical SEOseo_auditor.pyCrawl, metadata, headers and robots checks
Entity AEOaeo_auditor.pyJSON-LD, entities, FAQ and direct-answer checks
Generative GEOgeo_auditor.pyChunks, retrieval simulation, CSP and artifacts
Interfacescli.py, server/mcp_server.pyCLI commands and MCP tools
Qualitytests/test_auditors.pyOffline deterministic test coverage

The three pillars

Technical SEO

The SEO auditor checks titles, canonical URLs, robots directives, Open Graph, H1 hygiene, text-to-code ratio, security and cache headers, and AI crawler policies for GPTBot, PerplexityBot, ClaudeBot, Google-Extended, Amazonbot and Applebot-Extended.

Answer Engine Optimization

The AEO auditor recursively inspects JSON-LD entity graphs, including Organization, Person, Product, Article and FAQPage nodes. It also considers sameAs authority links, freshness, FAQ structure and whether section openings provide direct answers.

Generative Engine Optimization

The GEO auditor chunks text at roughly 60–120 tokens, selects fastembed, sentence-transformers or a deterministic hashed n-gram fallback, then simulates top-k retrieval. It measures cosine similarity, semantic entropy and Citation Survival Probability (CSP), while generating llms.txt and rag_ready_chunks.json.

GEO layerQuestionOutput
Clean DOMIs the main text separated from boilerplate?Extracted text and ratios
Semantic chunksDo passages have coherent boundaries?60–120 token chunks
EmbeddingsHow is meaning represented?Neural or deterministic vectors
RetrievalWhich passages win a query?Top-k similarity ranking
Citation survivalIs the winner distinctive?CSP, entropy and artifacts

Strengths and limits

The strongest design choice is graceful degradation: missing embedding dependencies or failed model downloads do not stop the audit. Pydantic models keep reports machine-readable, while the offline tests cover tokenization, extraction, JSON-LD, robots, all three pillars and the CLI.

The limits are equally important. CSP is an internal experimental signal, not a promise of placement in ChatGPT, Google or Perplexity. An in-memory RAG simulation cannot reproduce every provider’s retrieval stack. The sample report in the README is illustrative. Serious evaluation should record fixed queries, locale, country, model, date, retrieved sources, brand mentions, factual accuracy and business conversion.

Installation and use

pip install git+https://github.com/tmolavi/sage-audit.git
sage audit https://example.com
sage audit https://example.com --format markdown -o report.md --save-artifacts ./out
sage generate-llms https://example.com -o llms.txt --also-chunks

Conclusion

SAGE turns the vague promise of “AI visibility” into three inspectable questions: is the page technically reachable, is its entity and answer structure clear, and do its passages survive semantic retrieval? Its value is not a guaranteed ranking claim; it is a compact, open and repeatable framework for building a baseline and testing changes.

Sources