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

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

abdellahramadan/seo-bundle
==========================

All in One Symfony Seo Bundle

v1.2.0(4mo ago)3291[2 issues](https://github.com/abdellahrk/SeoBundle/issues)MITPHPPHP ^8.2CI passing

Since Apr 6Pushed 4mo ago4 watchersCompare

[ Source](https://github.com/abdellahrk/SeoBundle)[ Packagist](https://packagist.org/packages/abdellahramadan/seo-bundle)[ RSS](/packages/abdellahramadan-seo-bundle/feed)WikiDiscussions main Synced 1mo ago

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

This Bundle supports
====================

[](#this-bundle-supports)

- [Meta Tags](docs/meta_tags.md)
- [OpenGraph (Twitter Cards, Facebook, LinkedIn, Instagram, Discord and more)](docs/open_graph.md)
- [Structured Data (Schema)](docs/schema.md)
- [Sitemap Generation](docs/sitemap.md)
- [Google Tag](docs/google_tag.md)
- [Meta Pixel](docs/meta_pixel.md)
- SEO Profiling \[Dev mode\]
- [Breadcrumb Generation](docs/breadcrumb.md)

Installation
============

[](#installation)

Make sure Composer is installed globally, as explained in the [installation chapter](https://getcomposer.org/doc/00-intro.md)of the Composer documentation.

Open a command console, enter your project directory and execute:

```
composer require rami/seo-bundle
```

This will enable the bundle by adding it to the list of registered bundles in the `config/bundles.php` file of your project:

```
// config/bundles.php

return [
    // ...
    Abdellahramadan\SeoBundle\SeoBundle::class => ['all' => true],
];
```

[![Profiler](docs/Profiler.png)](docs/Profiler.png)

#### For full documentation, click on the desired topic above to be taken to its documentation page

[](#for-full-documentation-click-on-the-desired-topic-above-to-be-taken-to-its-documentation-page)

Meta Tags
=========

[](#meta-tags)

##### Example

[](#example)

Define Meta Tags in Two ways:

1. Type hint the `MetaTagsInterface` into a controller

```
use Abdellahramadan\SeoBundle\Metas\MetaTagsManagerInterface;

public function myController(MetaTagsManagerInterface $metaTags): Response
{
    $metaTags->setTitle('My Title')
        ->setDescription('This is the description of the page')
        ->setKeywords(['keywords', 'seo', 'meta'])
        ->setCanonical('https://canonical.com')
    ;
}
```

2. Directly in twig

```
{{ meta_tags(title: 'My Title', description: 'This is the description of the page' ...)}
```

Make sure you add this `{{ meta_tags }}` to the head your Twig file (preferably the base template)

```

    {{ meta_tags() }}

```

This will render in the head the following

```

    My Title

```

Open Graph
==========

[](#open-graph)

### Example

[](#example-1)

### Add to template file

[](#add-to-template-file)

Add `{{ open_graph() }}` to the base template or any page where the meta information will be injected

### Add meta inforation

[](#add-meta-inforation)

In your controller, type-hint `OpenGraphInterface`

### Example

[](#example-2)

```
use Abdellahramadan\OpenGraphBundle\OpenGraph\OpenGraphManagerInterface;

class HomeController extends AbstractController
{
    public function index(OpenGraphManagerInterface $openGraph): Response
    {
        $openGraph
            ->setTitle('My website')
            ->setDescription('Some descriptions ...')
            ->setSiteName('My Blog')
        ;
            ...
        return $this-render('index.html.twig');
    }
}
```

This will render

```

```

You can also leave out setting the properties in the controller and set directly in Twi

```
{{ meta_tags(title: 'My website', siteName: 'My Blog') }}
```

full document at [Open Graph Docs](docs/open_graph.md)

Schema Org \[Rich Result\]
==========================

[](#schema-org-rich-result)

### Usage

[](#usage)

```
use Rami\SeoBundle\Schema\SchemaInterface;
use Symfony\Component\HttpFoundation\Response;

...
    #[Route('/', name: 'app_home')]
    public function index(SchemaInterface $schema): Response
    {
        $person = $schema
            ->person()
            ->name('Abdel Ramadan')
            ->email('abdellah@hey.cm')
            ->children([
                $schema->person()->name('Rami')->email('ramadanabdel24@gmail.com')->givenName('Ramadan'),
                $schema->person()->name('Rami 3')->email('test@gmail.com')
            ]);
        $schema->render($person);
    }
```

enable the schema in the config:

```
seo:
  schema:
    enabled: true
```

This is an example using the `Person` object which will render

```

{
    "@context": "https://schema.org",
    "@type": "Person",
    "name": "Abdel Ramadan",
    "email": "abdellah@hey.cm",
    "children": [
        {
            "@type": "Person",
            "name": "Rami",
            "email": "ramadanabdel24@gmail.com",
            "givenName": "Ramadan"
        },
        {
            "@type": "Person",
            "name": "Rami 3",
            "email": "test@gmail.com"
        }
    ]
}

```

Full Schema docs at [Schema Org Docs](docs/schema.md)

Sitemap Generation
==================

[](#sitemap-generation)

This package automates the generation of sitemaps.

### Usage

[](#usage-1)

```
    #[Sitemap()]
    #[Route('/', name: 'app_home')]
    public function index() {
        ...
    }

    #[Sitemap()]
    #[Route('/blog', name: 'blog')]
    public function blogIndex() {
        ...
    }
```

This will add the the url entries into `sitemaps/default.xml`

```

    https://mysite.com/blog

    https://mysite.com/

```

Full Sitemap docs [Sitemap Docs](docs/sitemap.md)

Full documentation at [Documentation](docs/index.md)

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance72

Regular maintenance activity

Popularity15

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.6% 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 ~19 days

Recently: every ~61 days

Total

14

Last Release

149d ago

PHP version history (2 changes)v1.0.0PHP ^8.0

v1.2.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/5d6da32e287615c39411860f6a16d1805a9fca063de0dc38835eaaed7177e864?d=identicon)[Abdellah](/maintainers/Abdellah)

---

Top Contributors

[![abdellahrk](https://avatars.githubusercontent.com/u/17084652?v=4)](https://github.com/abdellahrk "abdellahrk (65 commits)")[![curenect-meiner](https://avatars.githubusercontent.com/u/168725484?v=4)](https://github.com/curenect-meiner "curenect-meiner (3 commits)")

---

Tags

canonical-urlsmeta-tagsmeta-tags-managementopen-graphrobots-txtsearch-engine-optimizationseoseo-bundlesitemapssocial-sharingsymfony-seotwitter-cardswebmaster-toolsseoSymfony Bundlesymfony seo

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[simplesamlphp/simplesamlphp

A PHP implementation of a SAML 2.0 service provider and identity provider.

1.1k12.4M193](/packages/simplesamlphp-simplesamlphp)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)

PHPackages © 2026

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