PHPackages                             benjaminhaeberli/kirby-seo - 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. benjaminhaeberli/kirby-seo

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

benjaminhaeberli/kirby-seo
==========================

🔎 Minimal SEO plugin for Kirby CMS – for PHP lovers.

v1.1.0(3mo ago)4918[1 PRs](https://github.com/benjaminhaeberli/kirby-seo/pulls)MITPHPPHP ^8.2CI passing

Since May 30Pushed 1mo ago2 watchersCompare

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

READMEChangelog (7)Dependencies (7)Versions (15)Used By (0)

 [![Logo of Kirby SEO](./logo.svg)](./logo.svg)
 Minimal SEO plugin for Kirby CMS

 [![Build Status](https://github.com/benjaminhaeberli/kirby-seo/workflows/tests/badge.svg)](https://github.com/benjaminhaeberli/kirby-seo/actions) [![Total Downloads](https://camo.githubusercontent.com/9241c825a31adcf1597596e8ed64ef59c471a041ee4cdebc901311f9ad2b663b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f62656e6a616d696e6861656265726c692f6b697262792d73656f)](https://packagist.org/packages/benjaminhaeberli/kirby-seo) [![Latest Stable Version](https://camo.githubusercontent.com/325841ca7dd49a0033457d1370e70c3b199235642efb140a79176998475ffd0a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f62656e6a616d696e6861656265726c692f6b697262792d73656f)](https://packagist.org/packages/benjaminhaeberli/kirby-seo) [![License](https://camo.githubusercontent.com/38914a69ea12a838412c77d758afa5b1b3d735406e6c29c8624e12190f6d369a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f62656e6a616d696e6861656265726c692f6b697262792d73656f)](https://packagist.org/packages/benjaminhaeberli/kirby-seo)

Features
--------

[](#features)

- Meta tags (title, description, keywords, robots, canonical URL)
- Open Graph tags (title, type, site name, URL, image, description, locale)
- Twitter Card tags (title, card, site, creator, image, description)
- Automatic image cropping to 1200x630 for social sharing
- Panel blueprints for page-level and site-level SEO fields
- Multi-language support (locale detection)
- Conditional rendering (empty fields produce no HTML output)

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

[](#requirements)

- PHP ^8.2
- Kirby ^4.0.1 or ^5.0

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

[](#installation)

```
composer require benjaminhaeberli/kirby-seo
```

Usage
-----

[](#usage)

### 1. Add the site-level blueprint

[](#1-add-the-site-level-blueprint)

In your `site.yml` blueprint, include the SEO fields for global settings (site title, OG image, Twitter handles):

```
# site/blueprints/site.yml
tabs:
  seo:
    label: SEO
    fields:
      seo: fields/seo/site
```

### 2. Add the page-level blueprint

[](#2-add-the-page-level-blueprint)

In any page blueprint, include the SEO fields (meta title, description, keywords, canonical URL):

```
# site/blueprints/pages/default.yml
tabs:
  seo:
    label: SEO
    fields:
      seo: fields/seo/meta
```

### 3. Render the meta tags

[](#3-render-the-meta-tags)

In your `header.php` snippet (or equivalent), add the SEO snippet inside ``:

```

```

### Output example

[](#output-example)

The snippet generates the following HTML (tags with empty values are omitted):

```

Page title

```

Panel fields
------------

[](#panel-fields)

### Site-level (`fields/seo/site`)

[](#site-level-fieldsseosite)

FieldTypeDescriptionSite title`text`Used as `og:site_name`Image`files`OG/Twitter image (cropped to 1200x630)Twitter (Creator)`text``@handle` of the content authorTwitter (Site)`text``@handle` of the website### Page-level (`fields/seo/meta`)

[](#page-level-fieldsseometa)

FieldTypeDescriptionMeta title`text``` and `og:title`Meta description`textarea``` and `og:description`Keywords`tags```Canonical URL`url``` (defaults to site URL)Panel translations
------------------

[](#panel-translations)

Blueprint labels and help texts use Kirby's [plugin translations](https://getkirby.com/docs/reference/plugins/extensions/translations) system. English and French are included.

To add a new language, create a file in `translations/` (e.g. `de.php`) following the same format as `en.php`, and register it in `index.php`. Contributions are welcome via pull request.

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

[](#development)

```
composer install
composer test          # Run all checks (rector, pint, phpstan, pest)
composer test:unit     # Run Pest tests only
composer test:types    # Run PHPStan only
composer lint          # Run Pint code formatter
composer refacto       # Run Rector refactoring
```

Inspiration
-----------

[](#inspiration)

- [diesdasdigital/kirby-meta-knight](https://github.com/diesdasdigital/kirby-meta-knight)
- [fabianmichael/kirby-meta](https://github.com/fabianmichael/kirby-meta)

License
-------

[](#license)

[MIT](./LICENSE)

###  Health Score

48

—

FairBetter than 95% of packages

Maintenance85

Actively maintained with recent releases

Popularity18

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity64

Established project with proven stability

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

Recently: every ~229 days

Total

7

Last Release

106d ago

Major Versions

v0.3.0 → v1.0.02026-02-02

PHP version history (2 changes)v0.1.0PHP ^8.1

v1.0.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/1f0f1b83c1387fb7ef07a37846bc22f2f36f1f72fb68f012ee581b4a3a65e7c2?d=identicon)[benjaminhaeberli](/maintainers/benjaminhaeberli)

---

Top Contributors

[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (144 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (144 commits)")[![benjaminhaeberli](https://avatars.githubusercontent.com/u/33510361?v=4)](https://github.com/benjaminhaeberli "benjaminhaeberli (18 commits)")[![claude](https://avatars.githubusercontent.com/u/81847?v=4)](https://github.com/claude "claude (1 commits)")

---

Tags

phpseokirbykirby-plugin

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/benjaminhaeberli-kirby-seo/health.svg)

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

###  Alternatives

[moritzebeling/kirby-favicon

Kirby plugin to meet all favicon needs

144.8k](/packages/moritzebeling-kirby-favicon)[oblik/kirby-link-field

Kirby 4 field for all types of links.

7650.6k2](/packages/oblik-kirby-link-field)[belugadigital/kirby-navigation

Kirby 5 field for hierarchical menus with drag &amp; drop level indentation.

8713.4k](/packages/belugadigital-kirby-navigation)[tobimori/kirby-tailwind-merge

Tailwind Merge for Kirby CMS

276.3k](/packages/tobimori-kirby-tailwind-merge)[bnomei/kirby3-recently-modified

Kirby Section to display recently modified content pages

309.3k](/packages/bnomei-kirby3-recently-modified)[johannschopplich/kirby-seo-audit

SEO analysis powered by Yoast for Kirby CMS

102.3k](/packages/johannschopplich-kirby-seo-audit)

PHPackages © 2026

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