PHPackages                             marblecms/marble-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. marblecms/marble-seo

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

marblecms/marble-seo
====================

SEO plugin for Marble CMS: meta tags, sitemap, robots.txt, JSON-LD.

v1.0.1(1mo ago)00MITPHPPHP ^8.3

Since Apr 25Pushed 1mo agoCompare

[ Source](https://github.com/marblecms/plugin-seo)[ Packagist](https://packagist.org/packages/marblecms/marble-seo)[ RSS](/packages/marblecms-marble-seo/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

Marble SEO
==========

[](#marble-seo)

SEO metadata management, XML sitemap, robots.txt, and structured data (JSON-LD) for [Marble CMS](https://github.com/marblecms/admin).

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

[](#installation)

Add to your `composer.json` repositories and require:

```
composer require marblecms/marble-seo
php artisan marble:seo:install
```

Optionally publish the config:

```
php artisan vendor:publish --tag=seo-config
```

Configuration (`config/seo.php`)
--------------------------------

[](#configuration-configseophp)

KeyDefaultDescription`sitemap_exclude_blueprints``[]`Blueprint identifiers to omit from the sitemap`og_default_image``''`Fallback og:image URL`robots_txt``null`Custom robots.txt content (string or array of lines); `null` = allow all + sitemap link`json_ld_enabled``true`Output JSON-LD structured data`sitemap_cache_seconds``21600`Sitemap cache TTL in seconds (6 h)Usage
-----

[](#usage)

### Blade component

[](#blade-component)

Drop the component inside your `` tag:

```

```

With an explicit language:

```

```

Without an item (static pages):

```

```

The component outputs:

- ``
- ``
- ``, `og:description`, `og:image`, `og:url`, `og:type`
- ``
- `` (when noindex is set)
- JSON-LD `WebPage` or `Article` (for `blog_post` blueprint) + `BreadcrumbList`

### Admin UI

[](#admin-ui)

Navigate to **Structure → SEO** in the Marble admin. Each published item shows a coverage indicator (green tick / dash) per language. Click the edit button to manage per-item, per-language SEO fields:

- SEO Title
- Meta Description (max 500 chars)
- OG Image URL
- Canonical URL override
- No-index toggle

### Sitemap

[](#sitemap)

Auto-generated at `/sitemap.xml`. Includes all published items, all languages, with `xhtml:link` alternate tags. Cached for 6 hours. Cache is invalidated automatically when any item is published.

### robots.txt

[](#robotstxt)

Served at `/robots.txt`. Default content:

```
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml

```

Override via `config('seo.robots_txt')`.

Events
------

[](#events)

The plugin listens to `Marble\Admin\Events\ItemPublished` and automatically invalidates the sitemap cache.

Artisan Commands
----------------

[](#artisan-commands)

CommandDescription`marble:seo:install`Run SEO migrationsDatabase
--------

[](#database)

**`seo_meta`** — one row per item per language.

ColumnTypeNotes`id`bigintPK`item_id`bigintFK → items (cascade delete)`language_id`bigintFK → languages (cascade delete)`title`stringnullable`description`string(500)nullable`og_image_url`stringnullable`noindex`booleandefault false`canonical_url`stringnullable`created_at` / `updated_at`timestampsUnique constraint on `(item_id, language_id)`.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance90

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

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

Total

2

Last Release

45d ago

### Community

Maintainers

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

### Embed Badge

![Health badge](/badges/marblecms-marble-seo/health.svg)

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

###  Alternatives

[watson/breadcrumbs

Breadcrumbs made easy for Laravel.

4543.0k](/packages/watson-breadcrumbs)

PHPackages © 2026

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