PHPackages                             mitopp/easy-seo-bundle - 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. mitopp/easy-seo-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

mitopp/easy-seo-bundle
======================

Easy SEO Bundle for Symfony

v0.1.0(2mo ago)2508↓45.7%[3 issues](https://github.com/mitopp/easy-seo-bundle/issues)MITPHPPHP &gt;=8.2CI passing

Since Feb 21Pushed 2mo agoCompare

[ Source](https://github.com/mitopp/easy-seo-bundle)[ Packagist](https://packagist.org/packages/mitopp/easy-seo-bundle)[ RSS](/packages/mitopp-easy-seo-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (5)Versions (2)Used By (0)

Easy SEO Bundle
===============

[](#easy-seo-bundle)

Roadmap
-------

[](#roadmap)

- Title
- Meta Tags
- Breadcrumbs
- Schema.org
    - Website

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

[](#installation)

```
composer require mitopp/easy-seo-bundle
```

Configuration
-------------

[](#configuration)

Create configuration file `config/packages/mitopp_easy_seo.yaml`.

```
mitopp_easy_seo:
    title:
        # Required
        site: 'My website'
        # Optional. Default: '-'
        separator: '|'
        # Optional. Default: true
        append_site_title: false
    # Add global meta tags. Optional. Default: []
    meta_tags: []
```

Usage
-----

[](#usage)

Inject the `SeoManagerInterface` into your controller and define your SEO tags.

```
// Controller

#[AsController]
final class DefaultController extends AbstractController
{
    public const ROUTE_NAME = 'app_homepage';

    #[Route(path: '/', name: self::ROUTE_NAME)]
    public function __invoke(SeoManagerInterface $seoManager): Response
    {
        $seoManager->setPageTitle('Default page');
        $seoManager->addMetaTag(MetaTag::create('robots', 'index,follow'));
        $seoManager->addMetaTag(MetaTag::create('keywords', 'default,page'));
        $seoManager->addMetaTag(MetaTag::create('description', 'This is a default page.'));
        $seoManager->addMetaTag(MetaTag::create('author', 'John Doe'));
        $seoManager->addMetaTag(MetaTag::create('color-schema', 'light dark'));
        $seoManager->addMetaTag(MetaTag::create('generator', 'Symfony'));

        return $this->render('page/default/index.html.twig');
    }
}
```

Rendered as...

```

    Default page - My website

```

Development
-----------

[](#development)

- Create a blank Symfony project at the same level as the Easy SEO Bundle.

```
composer create-project symfony/skeleton easy-seo-bundle-demo
```

- Configure Composer to use the local repository.

```
// composer.json
{
    // ...
    "repositories": [
        {
            "type": "path",
            "url": "../easy-seo-bundle"
        }
    ]
    // ...
}
```

- Install the bundle.

```
composer require mitopp/easy-seo-bundle:@dev
```

- Dump the config reference from the bundle.

```
bin/console config:dump-reference EasySeoBundle
```

```
# Default configuration for extension with alias: "mitopp_easy_seo"

# Easy SEO configuration.
mitopp_easy_seo:      []
```

- Dump the current config from the bundle.

```
bin/console debug:config EasySeoBundle
```

```
Current configuration for extension with alias "mitopp_easy_seo"
================================================================

mitopp_easy_seo: {  }
```

- Debug available twig extensions.

```
bin/console debug:twig
```

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance63

Regular maintenance activity

Popularity21

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity36

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

Unknown

Total

1

Last Release

86d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/cbe4e1bd0cadd57bbc477b5339cf9ae196afe01467cdd17f78b6f3eaad41c6fb?d=identicon)[mitopp](/maintainers/mitopp)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/mitopp-easy-seo-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/mitopp-easy-seo-bundle/health.svg)](https://phpackages.com/packages/mitopp-easy-seo-bundle)
```

###  Alternatives

[pentatrion/vite-bundle

Vite integration for your Symfony app

2755.3M13](/packages/pentatrion-vite-bundle)[stfalcon/tinymce-bundle

This Bundle integrates TinyMCE WYSIWYG editor into a Symfony2 project.

2692.9M24](/packages/stfalcon-tinymce-bundle)[wallabag/wallabag

open source self hostable read-it-later web application

12.6k2.2k](/packages/wallabag-wallabag)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[netgen/content-browser

Netgen Content Browser is a Symfony bundle that provides an interface which selects items from any kind of backend and returns the IDs of selected items back to the calling code.

14112.1k8](/packages/netgen-content-browser)

PHPackages © 2026

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