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

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

silverstripers/seo
==================

SEO for SilverStripe websites

1.2.4(2y ago)1144.3k↓39.3%18[2 issues](https://github.com/HelloBetterLTD/seo/issues)[2 PRs](https://github.com/HelloBetterLTD/seo/pulls)BSD-3-ClausePHPCI failing

Since Dec 12Pushed 5mo ago1 watchersCompare

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

READMEChangelog (7)Dependencies (5)Versions (17)Used By (0)

seo
===

[](#seo)

This module enables advanced SEO functions for Silverstripe. It providers an SEO editor with

1. Instant Previews for Google, Facebook, Twitter
2. Editor for Open Graph Data
3. Editor for Twitter Cards
4. Save taxonomies
5. Various meta title templates for pages
6. Robots.txt controller
7. Canonical URL management
8. Flexibility on extending

Maintainers
-----------

[](#maintainers)

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

[](#installation)

Use composer to install on your SilverStripe 4 website.

```
composer require silverstripers/seo dev-master

```

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

[](#requirements)

1. SilverStripe 4+
2. SilverStripe Reports
3. SilverStripe Assets

Basic usage
-----------

[](#basic-usage)

Require the package via composer and run dev build. The module will create additional SEO fields for the SiteTree (page) objects and will add in an interface for set up the SEO data.

Add the following instead of the SilverStripe's default meta tag in the `` section of your template.

```
$GenerateMetaTags.RAW

```

DataObjects as pages
--------------------

[](#dataobjects-as-pages)

If you are using data objects as pages then you may need to add in SEO fields for those data objects to do that it needs to decorate the data object with SEODataExtension

```
MyDataObject:
    extensions:
        SilverStripers\SEO\Extension\SEODataExtension

```

This will create the db fields and add the seo editor on to the CMS.

Within the controller you need to call `override_seo_from` function, and pass your data record for the module to grab the SEO details

```
use SilverStripers\SEO\Extension\SEODataExtension
...

class MyController extension Controller {

    ...

    public function view()
    {
        ...
        SEODataExtension::override_seo_from($record);
        ...
    }

}

```

Variables / Taxonomies
----------------------

[](#variables--taxonomies)

If you login to the CMS and go to Settings -&gt; SEO -&gt; Variables, there is a grid field where you can enter name value pair objects. These can have any names and any values and for any text field within the meta editor you can use these.

The variables will have respective buttons to click which will add them automatically on to the editors fields.

You can also type them in like this. `{MyVariableName}`

Meta Title Templates
--------------------

[](#meta-title-templates)

For various websites there are different types of web pages which needs various types of meta titles.

eg: A product page will have a meta title like: `ABC Product - Create the best value for money | XYZ Company`

Meta titles templates lets you define these as

`{MetaTitle} - Create the best value for money | {SiteTitle}`

This then get the meta title from the page's meta title variable, and site title from the Site Config title. You can also use any of the variables you defined in the variables sections.

Structured Data
---------------

[](#structured-data)

The module supports structured data and enabling takes only a few yml configurations.

E.G: The following makes a Page a Thing and maps the fields on to the Database fields.

```
Page:
  schema_type: 'Thing'
  schema:
    'name': 'MetaTitle'
    'description': 'MetaDescription'
    'Image': 'FacebookImage'

```

Supported Types

- Article
- Beach
- BlogPosting
- BreadcrumbList
- ContactPoint
- Corporation
- CreativeWork
- Duration
- Event
- GeoCoordinates
- ImageObject
- Invoice
- ListItem
- LocalBusiness
- MusicAlbum
- MusicGroup
- MusicPlaylist
- MusicRecording
- NewsArticle
- Offer
- Order
- Organization
- Person
- Place
- PostalAddress
- PriceSpeficication
- Product
- Rating
- Review
- SearchBox
- Thing
- VideoObject
- WebPage

To view the config options for any type visit the page with adding `?structureddata_help=1` to the end of the URL

Enjoy!!

###  Health Score

46

—

FairBetter than 93% of packages

Maintenance44

Moderate activity, may be stable

Popularity38

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 92.9% 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 ~275 days

Recently: every ~487 days

Total

10

Last Release

599d ago

Major Versions

1.2.4 → 4.x-dev2024-09-26

### Community

Maintainers

![](https://www.gravatar.com/avatar/6a6fa4ab2a74fee1ac574bf15dd3ce1f38f31fee60c186b4b24ee8d7e3090b52?d=identicon)[silverstripers](/maintainers/silverstripers)

---

Top Contributors

[![fonsekaean](https://avatars.githubusercontent.com/u/143939?v=4)](https://github.com/fonsekaean "fonsekaean (118 commits)")[![DrMartinGonzo](https://avatars.githubusercontent.com/u/11061711?v=4)](https://github.com/DrMartinGonzo "DrMartinGonzo (3 commits)")[![prameshharshana3](https://avatars.githubusercontent.com/u/17820656?v=4)](https://github.com/prameshharshana3 "prameshharshana3 (2 commits)")[![kdanilewicz](https://avatars.githubusercontent.com/u/1428945?v=4)](https://github.com/kdanilewicz "kdanilewicz (1 commits)")[![ethanjohnstone](https://avatars.githubusercontent.com/u/23485998?v=4)](https://github.com/ethanjohnstone "ethanjohnstone (1 commits)")[![christohill](https://avatars.githubusercontent.com/u/2646218?v=4)](https://github.com/christohill "christohill (1 commits)")[![baukezwaan](https://avatars.githubusercontent.com/u/795238?v=4)](https://github.com/baukezwaan "baukezwaan (1 commits)")

---

Tags

seoseotoolssilverstripesilverstripe-4silverstripe-modulesilverstripe-seo-editorsilverstripemoduleseo

### Embed Badge

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

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

###  Alternatives

[hubertusanton/silverstripe-seo

SEO module for Silverstripe

4823.0k2](/packages/hubertusanton-silverstripe-seo)[axllent/silverstripe-trailing-slash

Ensure that a single trailing slash is always added to the URL

11182.6k5](/packages/axllent-silverstripe-trailing-slash)[richardsjoqvist/silverstripe-embedder

Embedder enables embedding media in content fields area similar to how embeds work in WordPress

112.6k](/packages/richardsjoqvist-silverstripe-embedder)

PHPackages © 2026

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