PHPackages                             pierre-brtrd/sylius-seo-plugin - 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. pierre-brtrd/sylius-seo-plugin

ActiveSylius-plugin[Utility &amp; Helpers](/categories/utility)

pierre-brtrd/sylius-seo-plugin
==============================

Sylius SEO plugin by Dedi.

v1.0.7(7mo ago)2580MITPHPPHP ^8.0

Since Nov 29Pushed 7mo agoCompare

[ Source](https://github.com/Pierre-brtrd/sylius-seo-plugin)[ Packagist](https://packagist.org/packages/pierre-brtrd/sylius-seo-plugin)[ RSS](/packages/pierre-brtrd-sylius-seo-plugin/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (30)Versions (13)Used By (0)

[![docs/data/banner.png](doc/data/banner.png)](doc/data/banner.png)

Sylius Plugin SEO by Dedi
=========================

[](#sylius-plugin-seo-by-dedi)

Sylius SEO plugin by Dedi. Metadata, OpenGraph and RichSnippets (Breadcrumb and Product) for all Sylius resources .

Dedi - web agency specialized in eCommerce since 2004 UX, UI, Dev, SEO, SEA

Overview
--------

[](#overview)

[![docs/data/seo_plugin_example.png](doc/data/seo_plugin_example.png)](doc/data/seo_plugin_example.png)

This Plugin provides an almost plug and play solution for your SEO needs. It integrates Metadata, OpenGraph and RichSnippets (Breadcrumb and Product) on all shop pages.

It provides integration for Google Analytics and Google Tag Manager through your channel configuration.

Organization Rich Snippet
-------------------------

[](#organization-rich-snippet)

The plugin now exposes an **Organization** schema based on the current channel. To enable it:

- Make your channel entity implement `RichSnippetChannelSubjectInterface`; the provided `RichSnippetChannelSubjectTrait` already handles the required getters.
- Ensure the channel data (name, description, email, phone, billing address/TVA) is filled in Sylius.
- Once done, the homepage, contact, product and taxon pages will automatically include the organization JSON-LD alongside existing rich snippets.

No extra configuration or manual fetch is required: the `OrganizationRichSnippetFactory` is registered by default and relies on the channel resolved from the `ChannelContextInterface`.

Adding a custom Rich Snippet
----------------------------

[](#adding-a-custom-rich-snippet)

Follow these steps to introduce a new JSON-LD block tailored to one of your business entities.

### 1. Make your entity a Rich Snippet subject

[](#1-make-your-entity-a-rich-snippet-subject)

- Implement `RichSnippetSubjectInterface` (or create a dedicated interface extending it, as done for products and channels) on the entity you want to expose.
- Return a unique `getRichSnippetSubjectType()` string; factories rely on this value to know which subjects they can handle.
- Ensure your subject fetcher (see next step) returns an instance of that entity when the corresponding route is matched.

### 2. Provide a SubjectFetcher

[](#2-provide-a-subjectfetcher)

- Implement `SubjectFetcherInterface` to locate or build the subject for a given request.
- Register the service with the `dedi_sylius_seo_plugin.rich_snippets.subject_fetcher` tag. The `RichSnippetContext` will iterate over all fetchers until one can serve the current request.
- Reuse existing patterns: check the route in `canFromRequest()` and load the entity in `fetchFromRequest()`.

### 3. Create a Rich Snippet factory

[](#3-create-a-rich-snippet-factory)

- Extend `AbstractRichSnippetFactory`, declare the handled subject types via `getHandledSubjectTypes()`, and implement `buildRichSnippet()` to return an object implementing `RichSnippetInterface` (create a new model if needed, inspired by `ProductRichSnippet` or `ChannelRichSnippet`).
- Inject any dependencies (router, price calculator, asset helpers, etc.) you need to build the final JSON-LD array.
- Register the factory service with the `dedi_sylius_seo_plugin.rich_snippets.factory` tag so it is picked up automatically.

### 4. Rendered output

[](#4-rendered-output)

- Twig automatically dumps every registered snippet with the `dedi_sylius_seo_get_rich_snippets()` function (`src/Resources/views/Shop/Header/_richSnippets.html.twig`). Once your subject fetcher and factory are in place, the JSON-LD block will appear without additional wiring.
- Optionally add functional tests or manual assertions to confirm the JSON-LD output matches your expectations.

Documentation
-------------

[](#documentation)

- [Installation](doc/INSTALL.md)
- [Features](doc/FEATURES.md)
- [Contribute](doc/CONTRIBUTE.md)
- [Troubleshooting](doc/TROUBLESHOOTING.md)

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance62

Regular maintenance activity

Popularity19

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~29 days

Recently: every ~71 days

Total

11

Last Release

235d ago

Major Versions

v0.0.3 → v1.0.02024-11-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/80f83be4587cdc0a64e5e69765a588a5560716805f4eff4afac64e0829a32cef?d=identicon)[Pierre-brtrd](/maintainers/Pierre-brtrd)

---

Top Contributors

[![Pierre-brtrd](https://avatars.githubusercontent.com/u/85477627?v=4)](https://github.com/Pierre-brtrd "Pierre-brtrd (20 commits)")[![JulienLoison](https://avatars.githubusercontent.com/u/46721676?v=4)](https://github.com/JulienLoison "JulienLoison (18 commits)")[![semantic-release-bot](https://avatars.githubusercontent.com/u/32174276?v=4)](https://github.com/semantic-release-bot "semantic-release-bot (11 commits)")[![StefDedi](https://avatars.githubusercontent.com/u/56959140?v=4)](https://github.com/StefDedi "StefDedi (6 commits)")[![zambodaniel](https://avatars.githubusercontent.com/u/3462880?v=4)](https://github.com/zambodaniel "zambodaniel (3 commits)")[![pierre-dedi](https://avatars.githubusercontent.com/u/119299924?v=4)](https://github.com/pierre-dedi "pierre-dedi (3 commits)")[![gaetanbuellet](https://avatars.githubusercontent.com/u/6311358?v=4)](https://github.com/gaetanbuellet "gaetanbuellet (3 commits)")[![mneuville](https://avatars.githubusercontent.com/u/3796880?v=4)](https://github.com/mneuville "mneuville (1 commits)")[![ehibes](https://avatars.githubusercontent.com/u/487124?v=4)](https://github.com/ehibes "ehibes (1 commits)")[![fred-dedi](https://avatars.githubusercontent.com/u/92370487?v=4)](https://github.com/fred-dedi "fred-dedi (1 commits)")[![cbastienbaron](https://avatars.githubusercontent.com/u/1092759?v=4)](https://github.com/cbastienbaron "cbastienbaron (1 commits)")

---

Tags

syliussylius-plugin

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Psalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/pierre-brtrd-sylius-seo-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/pierre-brtrd-sylius-seo-plugin/health.svg)](https://phpackages.com/packages/pierre-brtrd-sylius-seo-plugin)
```

###  Alternatives

[sylius/refund-plugin

Plugin provides basic refunds functionality for Sylius application.

691.7M14](/packages/sylius-refund-plugin)[stefandoorn/sitemap-plugin

Sitemap Plugin for Sylius

851.0M](/packages/stefandoorn-sitemap-plugin)[dedi/sylius-seo-plugin

Sylius SEO plugin by Dedi.

28138.9k](/packages/dedi-sylius-seo-plugin)[tilleuls/sylius-click-n-collect-plugin

Click and Collect plugin for Sylius, to sell and deliver securely during the COVID-19 pandemic.

7814.2k](/packages/tilleuls-sylius-click-n-collect-plugin)[odiseoteam/sylius-report-plugin

Plugin for Sylius to make customizable reports.

3275.4k](/packages/odiseoteam-sylius-report-plugin)[monsieurbiz/sylius-rich-editor-plugin

A Rich Editor plugin for Sylius.

75380.8k6](/packages/monsieurbiz-sylius-rich-editor-plugin)

PHPackages © 2026

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