SP Page Builder generates an invalid isPartOf property for Organization structured data on https://www.caplangues.lu/v2027/fr/, causing a Schema.org validation warning. - Forum | JoomShaper
Staff replied SP Page Builder Joomla 6 SP Page Builder Pro 6.10.0

SP Page Builder generates an invalid isPartOf property for Organization structured data on https://www.caplangues.lu/v2027/fr/, causing a Schema.org validation warning.

Asked by Samuel Desloges 1 day ago Last activity 1 day ago

Hello JoomShaper Support Team,

I'm developing a multilingual corporate website using Joomla and SP Page Builder, and I've encountered a Schema.org validation warning related to the built-in Schema settings of SP Page Builder.

The issue

When I select Organization under SP Page Builder → Pages → Page Settings → Schema, the generated JSON-LD automatically includes an isPartOf property referencing the current WebPage.

The official Schema.org Validator reports the following warning:

The property isPartOf is not recognized by the schema (e.g. schema.org) for an object of type Organization.

The relevant JSON-LD is:

{
  "@type": "Organization",
  "name": "Cap Langues",
  "@id": "https://www.caplangues.lu/v2027/#/schema/com_sppagebuilder/page/98",
  "isPartOf": {
    "@id": "https://www.caplangues.lu/v2027/#/schema/WebPage/base"
  }
}

URLs for reproducing the issue

Development website (affected page):
https://www.caplangues.lu/v2027/fr/

Official Schema.org Validator:
https://validator.schema.org/

Important: Please test the exact development URL above, including /v2027/fr/. The main website at the domain root is the current production website and is not the website affected by this issue.

Configuration and tests performed

  • Joomla's native System – Schema.org plugin is enabled, with Organization selected as the base type.
  • The homepage Schema Type in SP Page Builder is set to Organization.
  • The Schema.org Validator reports 0 errors and 1 warning.
  • When I change the SP Page Builder Schema Type to None, the validator reports that no structured data was detected.
  • The isPartOf property is generated automatically, and I cannot find a setting in SP Page Builder to remove it.
  • The JSON-LD syntax is valid. The warning specifically concerns the use of isPartOf with the Organization type.

Scope of this support request

The website uses a third-party Joomla template. However, this issue concerns the structured data generated through SP Page Builder's built-in Schema functionality and its integration with Joomla's native Schema.org system.

I am not requesting support for the template's design, layout or customizations.

I would appreciate your help identifying which component generates this relationship and how to correct it using the recommended native configuration.

My questions

  1. Is this a known issue with SP Page Builder's Schema.org integration?
  2. Is the isPartOf property generated by SP Page Builder or by Joomla's native Schema.org system?
  3. Is there a built-in setting or recommended configuration to prevent this unsupported property from being added to Organization?
  4. If this behavior originates from Joomla, could you identify the relevant integration mechanism so I can report it to the appropriate Joomla maintainers?
  5. If this is an SP Page Builder issue, is a fix planned for a future update?

Expected result

I would like the Organization structured data to validate without warnings while retaining the built-in Schema.org functionality.

My preference is to avoid modifying core files or injecting additional custom JSON-LD, ensuring maintainability and compatibility with future Joomla and SP Page Builder updates.

I have attached a screenshot showing the validation warning.

Thank you for your assistance.

Best regards,

1 reply

Rashida Rahman Staff

Hello Samuel,

Thank you for the detailed report and for clearly outlining your test steps!

I have checked your development page (https://www.caplangues.lu/v2027/fr/) and inspected SP Page Builder's Schema builder class to verify how the JSON-LD @graph is being assembled. Here are the direct answers to all of your questions:

1. Is this a known issue with SP Page Builder's Schema.org integration?
2. Is the isPartOf property generated by SP Page Builder or by Joomla's native Schema.org system?

The isPartOf property on the page-level schema item (#/schema/com_sppagebuilder/page/98) is generated by SP Page Builder—specifically inside PageSchemaOrgBuilder (administrator/components/com_sppagebuilder/dynamic-content/Site/PageSchemaOrgBuilder.php), which mirrors Joomla's plg_system_schemaorg @graph structure.

When SP Page Builder builds the @graph (Organization/base, WebSite/base, WebPage/base, and the page item), it currently attaches:

"isPartOf": { "@id": "[https://www.caplangues.lu/v2027/#/schema/WebPage/base](https://www.caplangues.lu/v2027/#/schema/WebPage/base)" }

unconditionally to the page-level schema node. While isPartOf is valid for CreativeWork types (Article, BlogPosting, Book, Recipe), Organization (as well as Person, Event, and JobPosting) inherits from Thing rather than CreativeWork, which triggers the Schema.org Validator warning.

Furthermore, when you set the SP Page Builder Schema Type to None, PageSchemaOrgBuilder::build() returns null for the page item, which is why the validator detects no SP Page Builder structured data on that page.

3. Is there a built-in setting or recommended configuration to prevent this unsupported property from being added to Organization?

Because isPartOf is currently assigned directly during the @graph assembly in PageSchemaOrgBuilder.php, there is no toggle in the Page Settings UI to disable isPartOf when Organization is selected.

However, you have two options:

  • Option A (No file edits — Use the Custom Schema Type):
    In SP Page Builder → Pages → [Your Homepage] → Page Settings → Schema, change Schema Type from Organization to Custom, and paste your clean Organization (or @graph) JSON-LD directly. This outputs your structured data without running through the automatic isPartOf injection and remains 100% update-safe.
  • Option B (Quick patch in PageSchemaOrgBuilder.php until the next update):
    If you want to keep using the built-in Organization form UI right now, open:
    administrator/components/com_sppagebuilder/dynamic-content/Site/PageSchemaOrgBuilder.php
    Around line 78–79, find:
    
    $itemSchema['@id']      = $articleGraphId;
    $itemSchema['isPartOf'] = ['@id' => $ids['webPage']];


And replace it with:
```php
$isCreativeWork = \in_array(strtolower($schemaType), ['article', 'blogposting', 'book', 'recipe'], true);
$itemSchema['@id'] = $articleGraphId;

if ($isCreativeWork) {
    $itemSchema['isPartOf'] = ['@id' => $ids['webPage']];
}

4. & 5. Is a fix planned for a future SP Page Builder update?

Yes! I will log this issue for our development team with the exact fix in PageSchemaOrgBuilder.php so that isPartOf is only applied to CreativeWork schema types (Article, BlogPosting, Book, Recipe) in an upcoming release of SP Page Builder, ensuring your Organization schema validates with 0 warnings natively across future updates.

Best regards

Log in to reply.