PHPackages                             upassist/neos-schemaorg - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. upassist/neos-schemaorg

ActiveNeos-package[Utility &amp; Helpers](/categories/utility)

upassist/neos-schemaorg
=======================

Schema.org structured data (JSON-LD) for Neos CMS — Organization, LocalBusiness, Service, WebPage

v2.0.4(1mo ago)00MITPHP

Since Apr 21Pushed 1mo agoCompare

[ Source](https://github.com/UpAssist/neos-schemaorg)[ Packagist](https://packagist.org/packages/upassist/neos-schemaorg)[ RSS](/packages/upassist-neos-schemaorg/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (1)Versions (9)Used By (0)

UpAssist.Neos.SchemaOrg
=======================

[](#upassistneosschemaorg)

Reusable Neos CMS package that adds Schema.org structured data (JSON-LD) to your website. All content is editable via the Neos inspector — no YAML configuration needed for content.

Features
--------

[](#features)

Schema TypeScopeDescription**Organization**All pagesCompany name, logo, phone, email, social media**LocalBusiness**HomepageExtends Organization with address, geo coordinates, service area**WebPage**All pagesPage name, description, dateModified**Service**Per page (opt-in)Service type, description, area served**FAQPage**Per page (opt-in)Aggregates all `FaqItem`-mixed nodes on a page into one JSON-LDInstallation
------------

[](#installation)

Pick the constraint that matches your Neos version:

Neos versionComposer constraintBranchNeos 8.x`^1.0` or `dev-neos-8``neos-8`Neos 9.x`^2.0` or `dev-main``main`This branch targets **Neos 9**.

```
composer require upassist/neos-schemaorg:^2.0
```

Or add to your `composer.json`:

```
{
    "require": {
        "upassist/neos-schemaorg": "^2.0"
    },
    "repositories": {
        "upassist/neos-schemaorg": {
            "type": "git",
            "url": "git@github.com:UpAssist/neos-schemaorg.git"
        }
    }
}
```

Usage
-----

[](#usage)

### Organization + LocalBusiness (for your site root node)

[](#organization--localbusiness-for-your-site-root-node)

Add the `LocalBusiness` mixin to your homepage/site node type. This includes Organization automatically.

```
'Your.Site:Document.Home':
  superTypes:
    'UpAssist.Neos.SchemaOrg:Mixin.LocalBusiness': true
```

If you only need Organization (no address/geo data), use it directly:

```
'Your.Site:Document.Home':
  superTypes:
    'UpAssist.Neos.SchemaOrg:Mixin.Organization': true
```

### Service (for service/product pages)

[](#service-for-serviceproduct-pages)

Add the `Service` mixin to page types where editors should be able to define a service:

```
'Your.Site:Document.Page':
  superTypes:
    'UpAssist.Neos.SchemaOrg:Mixin.Service': true
```

Service schema only renders when the editor fills in a **Service type** — leaving it empty means no Service JSON-LD is output.

### WebPage

[](#webpage)

WebPage schema is automatically rendered on all pages — no configuration needed. It uses the page title, meta description, and last modification date.

### FAQPage (for Q&amp;A content)

[](#faqpage-for-qa-content)

Add the `FaqItem` mixin to any NodeType that represents a single question/answer pair. The item must expose `question` and `answer` properties.

```
'Your.Site:Content.Faq.Item':
  superTypes:
    'UpAssist.Neos.SchemaOrg:Mixin.FaqItem': true
  properties:
    question:
      type: string
    answer:
      type: string
```

The package aggregates every `FaqItem`-mixed node on a document into a single `FAQPage` JSON-LD block. No wrapper NodeType is required — drop one or more items into a page and the schema is emitted automatically.

Inspector UI
------------

[](#inspector-ui)

After adding the mixins, editors see a **Schema.org** tab in the Neos inspector with the following groups:

- **Organization** — Name, description, logo, phone, email, social media URLs
- **Local Business** — Street address, postal code, city, region, country, coordinates, area served
- **Service** — Service type, description, service area override

How it works
------------

[](#how-it-works)

The package augments `Neos.Neos:Page` automatically via `Page.fusion` — no manual Fusion includes needed. Each component has `@if` conditions:

- **Organization** — renders on all pages if the site node has the mixin
- **LocalBusiness** — renders only on the homepage
- **WebPage** — renders on all pages (uses Neos.Seo meta description and title)
- **Service** — renders only when `schemaOrgServiceType` is filled in
- **FAQPage** — renders when at least one `FaqItem`-mixed node exists on the document

All JSON-LD is only rendered in the live rendering mode (not in the Neos backend).

Available Mixins
----------------

[](#available-mixins)

### `UpAssist.Neos.SchemaOrg:Mixin.Organization`

[](#upassistneosschemaorgmixinorganization)

PropertyTypeDescription`schemaOrgName`stringOrganization name (falls back to site title)`schemaOrgDescription`stringOrganization description`schemaOrgLogo`ImageOrganization logo`schemaOrgPhone`stringPhone number`schemaOrgEmail`stringEmail address`schemaOrgSameAs`stringSocial media URLs (one per line)### `UpAssist.Neos.SchemaOrg:Mixin.LocalBusiness`

[](#upassistneosschemaorgmixinlocalbusiness)

Extends Organization with:

PropertyTypeDescription`schemaOrgStreetAddress`stringStreet address`schemaOrgPostalCode`stringPostal code`schemaOrgCity`stringCity`schemaOrgRegion`stringRegion/province`schemaOrgCountry`stringCountry code (default: NL)`schemaOrgLatitude`stringGPS latitude`schemaOrgLongitude`stringGPS longitude`schemaOrgAreaServed`stringComma-separated list of locations### `UpAssist.Neos.SchemaOrg:Mixin.Service`

[](#upassistneosschemaorgmixinservice)

PropertyTypeDescription`schemaOrgServiceType`stringType of service`schemaOrgServiceDescription`stringService description (falls back to meta description)`schemaOrgServiceAreaServed`stringService area (falls back to site-level area served)### `UpAssist.Neos.SchemaOrg:Mixin.FaqItem`

[](#upassistneosschemaorgmixinfaqitem)

Marker mixin — adds no properties itself. The host NodeType must expose `question` and `answer` properties for the aggregator to pick up.

Requirements
------------

[](#requirements)

- Neos CMS 9.x
- PHP 8.2+

For Neos 8 support, use the [`neos-8` branch](https://github.com/UpAssist/neos-schemaorg/tree/neos-8) or install `^1.0`.

License
-------

[](#license)

Proprietary — UpAssist

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance92

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

7

Last Release

34d ago

Major Versions

v1.0.0 → v2.0.02026-04-21

### Community

Maintainers

![](https://www.gravatar.com/avatar/0644de5e880c5b511c6b1cb1b08c80be5a64afd16d37dd9e633aa32c2d49f4cd?d=identicon)[hphoeksma](/maintainers/hphoeksma)

---

Top Contributors

[![hphoeksma](https://avatars.githubusercontent.com/u/250683?v=4)](https://github.com/hphoeksma "hphoeksma (17 commits)")

### Embed Badge

![Health badge](/badges/upassist-neos-schemaorg/health.svg)

```
[![Health](https://phpackages.com/badges/upassist-neos-schemaorg/health.svg)](https://phpackages.com/packages/upassist-neos-schemaorg)
```

###  Alternatives

[sitegeist/kaleidoscope

Responsive-images for Neos

29364.3k11](/packages/sitegeist-kaleidoscope)[neos/seo

SEO configuration and tools for Neos

141.0M28](/packages/neos-seo)[kaufmanndigital/gdpr-cookieconsent

A ready-to-run package, that integrates an advanced cookie consent banner into your Neos CMS site.

2541.8k](/packages/kaufmanndigital-gdpr-cookieconsent)[techdivision/ckstyles

Neos package which enables you adding your custom style classes for the CkEditor with a simple Yaml configuration

21175.8k](/packages/techdivision-ckstyles)[sitegeist/taxonomy

Manage vocabularies and taxonomies as separate node-hierarchy.

1593.1k1](/packages/sitegeist-taxonomy)[shel/neos-colorpicker

A plugin for Neos CMS which provides a colorpicker editor

14101.5k6](/packages/shel-neos-colorpicker)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
