Drupal is a registered trademark of Dries Buytaert
Drupal 11.4.3 Update released for Drupal core (11.4.3)! Views Bulk Operations (VBO) 4.4.6 Minor update available for module views_bulk_operations (4.4.6). External Authentication 2.0.12 Minor update available for module externalauth (2.0.12). No Request New Password 8.x-1.6 Minor update available for module noreqnewpass (8.x-1.6). Entityqueue 8.x-1.12 Minor update available for module entityqueue (8.x-1.12). AI Related Content 1.0.4 Minor update available for module ai_related_content (1.0.4). Field Widget Actions 1.4.0 Minor update available for module field_widget_actions (1.4.0). Actstream 2.1.0 Minor update available for module actstream (2.1.0). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs. Hubspot Forms 2.0.6 Module hubspot_forms updated after 14 months of inactivity (2.0.6).

GEO Starter JSON-LD

3 sites Security covered
View on drupal.org

This module generates schema.org structured data for published content pages, emitting only facts that are actually displayed on the page. It is specifically designed to work with the GEO Starter recipe's content model and supports Service, Evidence Source, and FAQ pages. The generated data is intended to make content more discoverable and understandable by machines, with a strong emphasis on accuracy and only emitting data when it can be reliably represented.

Drupal is the CMS for an age of agents.

A governed content model only helps machines if they can read it. GEO Starter JSON-LD builds that reading surface: one schema.org graph per page, emitted only on the full canonical view of a published node, and only for what the page actually renders.

The structured data never claims more than the visible page shows: if a fact is not rendered, it is not emitted. Invalid or inflated structured data is worse than none, so when in doubt the module emits nothing.

This is the companion module for the GEO Starter recipe. It reads GEO Starter's content model. It is not a general-purpose JSON-LD tool.

What It Emits

  • Service pages emit a Service object plus the page's WebPage, carrying the service summary, primary action, topic, audience, review date, and cited sources.
  • Evidence Source pages emit a CreativeWork with the external source link and publisher. This is what makes a citation on another page resolve to a real, inspectable source.
  • FAQ sections emit a FAQPage, but only when the section has at least two reviewed question-and-answer pairs. Thin or empty FAQs emit nothing.
  • Citations between pages resolve by stable @id. If a cited source is unpublished, its citation is dropped, not left dangling.

Emission Rules

Structured data is only as good as its honesty, so the module enforces these rules:

  • It emits only on a published node's own full page. Teasers, search results, and editor previews emit nothing.
  • It emits only fields the page actually renders, so the JSON-LD cannot exceed the visible content.
  • It strips markup, encodes safely, and emits nothing at all on any error.
  • It carries full cache metadata, including every cited source, so the structured data refreshes when the node or a source it cites changes.

Relationship To GEO Starter

  • It is required by the GEO Starter recipe and installed automatically with it.
  • It reads GEO Starter's fields and Paragraph types. On a site without that content model, it has nothing to emit.
  • It ships as its own Composer package because a Drupal recipe cannot carry a module on disk. The recipe requires it; you do not install it separately.

Scope And Honest Limits

  • Implemented and validated on a fresh install: Service, Evidence Source, and the gated FAQPage.
  • Not yet built: Answer, Article, HowTo, contact-point, and item-list emission.
  • No PHPUnit test suite yet. The slice is validated with a repeatable probe script tools/jsonld-probe.php).
  • External schema.org and Rich Results validation has not been run. Do not make public rich-result claims until it has.
  • No guaranteed AI citations, rankings, rich results, or answer-engine placement. The module makes content inspectable. It does not promise outcomes.

Requirements

  • The GEO Starter recipe, or a site that uses its content model.
  • Drupal 11 / Drupal CMS.
  • Core only. No contrib dependencies and no patches.

Documentation And Support

  • README.md for design and settings.
  • Use the Drupal.org issue queue for Community alpha support.

Activity

Total releases
7
First release
May 2026
Latest release
1 month ago
Releases (12 mo)
7 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Release date
1.1.0 Stable Jun 11, 2026
1.0.0 Stable Jun 8, 2026
1.0.0-rc1 Pre-release Jun 8, 2026
1.0.0-beta1 Pre-release Jun 7, 2026
1.0.0-alpha3 Pre-release Jun 2, 2026
1.0.0-alpha2 Pre-release Jun 2, 2026
1.0.0-alpha1 Pre-release May 31, 2026