PHPackages                             plasticstudio/silverstripe-seo-ai - 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. plasticstudio/silverstripe-seo-ai

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

plasticstudio/silverstripe-seo-ai
=================================

AI-powered SEO extension for Silverstripe CMS

2.0.1(1mo ago)63232[1 issues](https://github.com/PlasticStudio/silverstripe-seo-ai/issues)BSD-3-ClausePHP

Since Oct 10Pushed 2mo ago2 watchersCompare

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

READMEChangelog (6)Dependencies (18)Versions (9)Used By (0)

Silverstripe SEO AI Module
==========================

[](#silverstripe-seo-ai-module)

This module extends [Silverstripe SEO](https://github.com/PlasticStudio/Silverstripe-SEO) to allow users to generate SEO tags with the OpenAI API.

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

[](#requirements)

Silverstripe 6

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

[](#installation)

```
composer require "plasticstudio/silverstripe-seo-ai"
```

Setting Up
----------

[](#setting-up)

After installing the module, configure the API and model / temperature settings via YAML.

Any model with text input / output on [OpenAI's Platform](https://platform.openai.com/docs/models) will work, GPT-4o Mini is the default (recommended).

*app/\_config/seo-ai.yml*

```
---
Name: silverstripe-seo-ai
---
SilverStripe\Core\Injector\Injector:
  PlasticStudio\SEOAI\Extensions\SeoAICMSPageEditControllerExtension:
    properties:
      openaiKey: "`OPENAI_API_KEY`"
      model: "gpt-4o-mini"
      temperature: 0
```

Optional: Include / Exclude Specific DOM Elements
-------------------------------------------------

[](#optional-include--exclude-specific-dom-elements)

You can optionally define which DOM elements should be included or excluded when generating SEO content. By default, the module includes common content elements (p, h1–h6, li) and excludes structural elements (header, footer, nav).

This allows you to fine-tune content parsing for your custom site structure.

Example:

```
---
Name: silverstripe-seo-ai
---
SilverStripe\Core\Injector\Injector:
  PlasticStudio\SEOAI\Extensions\SeoAICMSPageEditControllerExtension:
    properties:
      openaiKey: "sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      model: "gpt-4o-mini"
      temperature: 0
      included_dom_selectors:
        - "p"
        - "h1"
        - "h2"
        - "h3"
        - "h4"
        - "h5"
        - "h6"
        - "li"
        - ".class_one"
        - "#ObjectTwo"
      excluded_dom_selectors:
        - "header"
        - "footer"
        - "nav"
        - "form"
        - "#ObjectOne"
        - ".class__two"
```

Usage
-----

[](#usage)

Currently this module generates tags for the fields "Meta Title" and "Meta Description".

To generate tags, navigate to the page you'd like to generate tags for and click "Generate SEO Tags" in the "Page SEO Settings" section.

[![Zoomed In Screenshot](docs/images/zoomed-in-screenshot.png)](docs/images/zoomed-in-screenshot.png)

[Zoomed Out Screenshot](docs/images/zoomed-out-screenshot.png)

Once this process has completed, publish the page as you would normally.

###  Health Score

44

—

FairBetter than 92% of packages

Maintenance86

Actively maintained with recent releases

Popularity22

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

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

Recently: every ~100 days

Total

7

Last Release

43d ago

Major Versions

1.1.0 → 2.0.02026-03-11

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4179876?v=4)[PS/digital](/maintainers/plasticstudio)[@PlasticStudio](https://github.com/PlasticStudio)

---

Top Contributors

[![oscarholt](https://avatars.githubusercontent.com/u/38869989?v=4)](https://github.com/oscarholt "oscarholt (45 commits)")[![robbieaverill](https://avatars.githubusercontent.com/u/5170590?v=4)](https://github.com/robbieaverill "robbieaverill (29 commits)")[![ebakernz](https://avatars.githubusercontent.com/u/4185091?v=4)](https://github.com/ebakernz "ebakernz (11 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (11 commits)")[![chillu](https://avatars.githubusercontent.com/u/111025?v=4)](https://github.com/chillu "chillu (5 commits)")[![GuySartorelli](https://avatars.githubusercontent.com/u/36352093?v=4)](https://github.com/GuySartorelli "GuySartorelli (3 commits)")[![camfindlay](https://avatars.githubusercontent.com/u/367847?v=4)](https://github.com/camfindlay "camfindlay (3 commits)")[![emteknetnz](https://avatars.githubusercontent.com/u/4809037?v=4)](https://github.com/emteknetnz "emteknetnz (2 commits)")[![ScopeyNZ](https://avatars.githubusercontent.com/u/3260989?v=4)](https://github.com/ScopeyNZ "ScopeyNZ (2 commits)")[![sunnysideup](https://avatars.githubusercontent.com/u/167154?v=4)](https://github.com/sunnysideup "sunnysideup (1 commits)")[![moritz-sauer-13](https://avatars.githubusercontent.com/u/43135946?v=4)](https://github.com/moritz-sauer-13 "moritz-sauer-13 (1 commits)")[![NightJar](https://avatars.githubusercontent.com/u/778003?v=4)](https://github.com/NightJar "NightJar (1 commits)")

---

Tags

silverstripecms

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/plasticstudio-silverstripe-seo-ai/health.svg)

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

###  Alternatives

[adrhumphreys/silverstripe-textdropdownfield

A text field combined with a dropdown field.

106.1k](/packages/adrhumphreys-silverstripe-textdropdownfield)

PHPackages © 2026

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