User tests: Successful: Unsuccessful:
Pull Request resolves #48479.
The WebPage node emitted by System - Schema.org and the BreadcrumbList node emitted by mod_breadcrumbs both carried one site-wide @id on every page (https://example.com/#/schema/WebPage/base and https://example.com/#/schema/BreadcrumbList/<module id>), so every page of a site described a different node under the same identifier. The Organization and WebSite nodes are genuinely one node per site and are left as they are.
modules/mod_breadcrumbs/tmpl/default.php: @id becomes <current page URL>#breadcrumb.plugins/system/schemaorg/src/Extension/Schemaorg.php: @id of the WebPage becomes <current page URL>#webpage (the page URL was already used for url; it is now computed once).The WebPage.breadcrumb link is unchanged in code: the plugin reads the @id from the module's inline.breadcrumbs-schemaorg asset, so it follows the new identifier automatically. Per-item schemas keep isPartOf: {"@id": <WebPage @id>}, which now points at the page they belong to.
Written with the help of Claude Code and reviewed by me; I could not run a Joomla site while preparing this, so the testing instructions below are what a tester needs to confirm.
application/ld+json blocks.On both pages:
{"@type": "BreadcrumbList", "@id": "https://example.com/#/schema/BreadcrumbList/17", ...}
{"@type": "WebPage", "@id": "https://example.com/#/schema/WebPage/base", "breadcrumb": {"@id": "https://example.com/#/schema/BreadcrumbList/17"}, ...}Each page carries its own identifiers, and the breadcrumb link on the WebPage matches the BreadcrumbList of that page:
{"@type": "BreadcrumbList", "@id": "https://example.com/about#breadcrumb", ...}
{"@type": "WebPage", "@id": "https://example.com/about#webpage", "breadcrumb": {"@id": "https://example.com/about#breadcrumb"}, ...}Organization and WebSite keep #/schema/Organization/base and #/schema/WebSite/base.
Please select:
🤖 Generated with Claude Code
| Status | New | ⇒ | Pending |
| Category | ⇒ | Modules Front End Plugins |
hello @anishmehta24 it seems you checked the checkbox without reading the Generative AI policy, which makes us unable to proceed with your pull request.
I will close it by our rules, for the next pull request please follow our contribution rules, thank you.
| Status | Pending | ⇒ | Closed |
| Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2026-09-22 09:41:39 |
| Closed_By | ⇒ | HLeithner | |
| Labels |
Added:
PR-6.1-dev
|
||
It is expected that everyone who submits a pull request to Joomla has tested their own work before submitting anything. Simply asking AI to write a pull request for you is not accepted