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

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

setono/sylius-seo-plugin
========================

SEO plugin for your Sylius store

v1.0.0(6mo ago)07.5k[1 issues](https://github.com/Setono/sylius-seo-plugin/issues)[1 PRs](https://github.com/Setono/sylius-seo-plugin/pulls)MITPHPPHP &gt;=8.1CI passing

Since Aug 14Pushed 1w ago1 watchersCompare

[ Source](https://github.com/Setono/sylius-seo-plugin)[ Packagist](https://packagist.org/packages/setono/sylius-seo-plugin)[ GitHub Sponsors](https://github.com/Setono)[ RSS](/packages/setono-sylius-seo-plugin/feed)WikiDiscussions 2.x Synced 2d ago

READMEChangelog (10)Dependencies (80)Versions (16)Used By (0)

Sylius SEO Plugin
=================

[](#sylius-seo-plugin)

[![Latest Version](https://camo.githubusercontent.com/5e163630f95ff12cff9bc44a89bd6d377abc23d50143b75fc8f9025ce3c9f880/68747470733a2f2f706f7365722e707567782e6f72672f7365746f6e6f2f73796c6975732d73656f2d706c7567696e2f762f737461626c65)](https://packagist.org/packages/setono/sylius-seo-plugin)[![Software License](https://camo.githubusercontent.com/0d0411c56678e0fa74030d191290911988432ba14ecb86683732730ca3389e59/68747470733a2f2f706f7365722e707567782e6f72672f7365746f6e6f2f73796c6975732d73656f2d706c7567696e2f6c6963656e7365)](LICENSE)[![Build Status](https://github.com/Setono/sylius-seo-plugin/workflows/build/badge.svg)](https://github.com/Setono/sylius-seo-plugin/actions)[![Code Coverage](https://camo.githubusercontent.com/cb43e20801fefe5770040a9ec55da84d3ecfbbeae721ce42b276c774a16fdc22/68747470733a2f2f636f6465636f762e696f2f67682f5365746f6e6f2f73796c6975732d73656f2d706c7567696e2f67726170682f62616467652e737667)](https://codecov.io/gh/Setono/sylius-seo-plugin)[![Mutation testing](https://camo.githubusercontent.com/d97b0d55d480f2be8a9f0e31e5b771ad444cce02a595e1935878c83b881e26cf/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f7374796c653d666c61742675726c3d687474707325334125324625324662616467652d6170692e737472796b65722d6d757461746f722e696f2532466769746875622e636f6d2532465365746f6e6f25324673796c6975732d73656f2d706c7567696e253246322e78)](https://dashboard.stryker-mutator.io/reports/github.com/Setono/sylius-seo-plugin/2.x)

Add the SEO features that Sylius is missing — structured data, Open Graph metadata and a manageable `robots.txt` — with sensible defaults and zero template changes.

Once installed, the plugin automatically enriches your storefront's `` on every page, so search engines and social networks understand your catalog out of the box.

Features
--------

[](#features)

- **🔎 Schema.org structured data (JSON-LD)** — automatically generates and renders structured data for your storefront:

    - `OnlineStore` and `WebSite` on the homepage (the `WebSite` node can expose a [Sitelinks Search Box](https://developers.google.com/search/docs/appearance/structured-data/sitelinks-searchbox))
    - `Product` / `ProductGroup` on product pages, including images and offers (price, availability, canonical variant URLs)

    The data is rendered as a single JSON-LD graph in the shop ``.
- **📣 Open Graph metadata** — emits `` tags (title, description, site name, locale, images, …) for rich link previews on social platforms, populated from your channel and products.
- **🤖 robots.txt management** — edit a `robots.txt` per channel straight from the admin panel and serve it at `/robots.txt`. The content is rendered as a Twig template, so it can be dynamic.
- **🧩 Extensible by design** — add or override any fact in the structured data with a tagged data mapper, or hook into the dedicated events. Nothing is hardcoded.
- **🌍 Translations** — the admin UI ships with translations for 16 locales.

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

[](#requirements)

PackageVersionPHP`>= 8.2`Symfony`6.4` or `7.4`Sylius`^2.0`> Using Sylius 1.x? Use the [`1.x`](https://github.com/Setono/sylius-seo-plugin/tree/1.x) branch (`^1.0`) instead.

Installation
------------

[](#installation)

### 1. Require the plugin

[](#1-require-the-plugin)

```
composer require setono/sylius-seo-plugin
```

### 2. Register the plugin

[](#2-register-the-plugin)

```
# config/bundles.php

return [
    // ...
    Setono\SyliusSEOPlugin\SetonoSyliusSEOPlugin::class => ['all' => true],
];
```

### 3. Import the routing

[](#3-import-the-routing)

```
# config/routes/setono_sylius_seo.yaml
setono_sylius_seo:
    resource: "@SetonoSyliusSEOPlugin/config/routes.yaml"
```

### 4. Implement `ChannelInterface`

[](#4-implement-channelinterface)

The plugin stores the `robots.txt` content on your channel. Implement the plugin's `ChannelInterface`and use the `ChannelTrait` on your Channel entity:

```
