Install
Works with Drupal: ^10.3 || ^11Using Composer to manage Drupal site dependencies
Alternative installation files
Release notes
This release adds Generative Engine Optimization (GEO) capabilities alongside existing SEO analysis. The module is renamed to AI SEO/GEO Analyzer to reflect the expanded scope.
New features
GEO analysis support
Module renamed from "AI SEO Analyzer" to "AI SEO/GEO Analyzer" throughout (name, description, menus, permissions, page titles).
System prompt updated: the AI now audits both traditional SEO and GEO signals — AI citability, E-E-A-T, structured data for AI extraction, and agentic search readiness.
Full SEO Analysis report extended with a new Section 13: GEO Optimization / AI Mode covering AI citability assessment, E-E-A-T authority signals, structured data for AI extraction (Speakable, FAQPage, dateModified), and agentic search readiness recommendations.
Schema.org Markup report extended with a new Section 5: Speakable Schema & AI Extraction Signals covering SpeakableSpecification, sameAs for entity disambiguation, freshness signals, and about/mentions properties.
Two new report types
AI Citability — evaluates how likely content is to be cited by AI-powered search systems.
Agentic Search Readiness — audits content for discoverability by Google information agents and other background AI agents.
Streaming analysis
Analysis results now stream live to the browser via Server-Sent Events (SSE) — the report renders word-by-word as the AI responds, replacing the previous blank spinner. A built-in markdown renderer displays the report progressively with no external dependencies.
Two new SSE endpoints: one for saved nodes (/ai-seo/stream/{node}) and one for draft content (/ai-seo/stream-draft), both CSRF-protected.
A queue worker (AiSeoAnalysisWorker) is included for background processing.
Node edit form integration
A new AI SEO Analysis panel appears in the node edit form sidebar (requires view seo reports permission).
View latest report button opens the most recent saved report in a modal dialog without leaving the edit form.
Analyze draft button analyzes the current unsaved form content and shows the result in a modal — not persisted to report history.
Run full SEO analysis after saving checkbox triggers a full analysis immediately after save.
Improved AI output formatting
A structured output format block is appended to every prompt, enforcing consistent ##/### headings, bold labels, single-level bullet lists, score formatting, before/after rewrite examples, and a ## Priority Actions closing section.
Safe prompt auto-update infrastructure
New default_prompt_hash field on ReportType entities records the MD5 of the shipped default prompt. Future update hooks can detect whether a prompt has been customised and skip auto-updates safely, logging a warning instead of overwriting.
New permission administer ai seo settings for managing report type entities separately from general module administration.
Bug fixes
Fixed incorrect permission name in routing, preventing access to analysis routes (#3569854).
Fixed custom prompt no longer being applied during analysis (#3511850).
Fixed translation being skipped due to a disallowed
Fixed substr() offset bugs in code-block stripping (off-by-one errors); also handles ```html fenced blocks.
Draft analyses no longer persist to the report database.
PHP 8.4 compatibility: explicit ?Type nullable syntax on all affected method signatures.
ViewReportController cleaned up: inline styles replaced with CSS classes, Markup::create() used for safe HTML output.
Database updates
Run drush updb after updating.
ai_seo_update_10310 — Creates the ai_citability and agentic_readiness report types. Updates the full and schema_org_markup default prompts only when the stored prompt still matches the original shipped default; customised prompts are left untouched and a warning is logged.
ai_seo_update_10311 — Backfills default_prompt_hash on all existing report type entities to enable safe auto-updates going forward.