Install
Works with Drupal: ^10.3 || ^11Using Composer to manage Drupal site dependencies
Alternative installation files
Download tar.gz
85.94 KB
MD5: 97d9b33859711229b043acfd15f6c37c
SHA-1: 1f42a65bedd16eb9b34ad7846eab70b9d3ef56a7
SHA-256: 5dcc96b1eb1a6b29d1964aef40b8bdd5a52056db3a163aa3034be106930c2225
Download zip
108.27 KB
MD5: d8699a7c4af27e27b8ba3feaca97a876
SHA-1: 6f606dfae039cc56fb57d2a4c745a7ef357c6580
SHA-256: c54d73838d481e7a54c59a1f9438ee8d2a8866d1e4129946aca664bb1aaf3192
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.
- Inline per-field analysis buttons — a small "SEO/GEO ✦" button appears next to each text field on node edit forms. Clicking it streams a focused AI analysis for that specific field (title, body, meta description, summary, or any other text field) in a modal without leaving the page. Works with CKEditor 5 and fields inside Paragraph sub-forms. Can be enabled in module configuration.
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_hashfield 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
<div>tag in a translatable string (#3561817). - Fixed
substr()offset bugs in code-block stripping (off-by-one errors); also handles```htmlfenced blocks. - Draft analyses no longer persist to the report database.
- PHP 8.4 compatibility: explicit
?Typenullable 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_hashon all existing report type entities to enable safe auto-updates going forward.