PHPackages                             dylangrech92/seotoolbox - 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. dylangrech92/seotoolbox

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

dylangrech92/seotoolbox
=======================

This plugin was created to facilitate SEO work by automating most of the manual labor

1.1.0(9y ago)6512[10 issues](https://github.com/dylangrech92/seotoolbox/issues)BSD-3-ClausePHPPHP ^5.3.0CI failing

Since Sep 24Pushed 5y ago4 watchersCompare

[ Source](https://github.com/dylangrech92/seotoolbox)[ Packagist](https://packagist.org/packages/dylangrech92/seotoolbox)[ Docs](https://github.com/dylangrech92/seotoolbox)[ RSS](/packages/dylangrech92-seotoolbox/feed)WikiDiscussions master Synced today

READMEChangelog (3)Dependencies (4)Versions (4)Used By (0)

DEPRECATED
==========

[](#deprecated)

I no longer have time to maintain this project, or to upgrade it for Silverstripe version 4 or higher. If anyone would like to try to fork it and upgrade it, feel free to do so.

SEO Toolbox
===========

[](#seo-toolbox)

[![Build Status](https://camo.githubusercontent.com/a1e95963fb14d8ecee3ef2b2e53ba2ed784efd12654296ac9e329c0b3588eea8/68747470733a2f2f7472617669732d63692e6f72672f64796c616e677265636839322f73656f746f6f6c626f782e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/dylangrech92/seotoolbox)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/1fa8b5e388535e514f65ab5e5c8e83f4a33fe75a0b4827e2d6fb413d9d77f9a1/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f64796c616e677265636839322f73656f746f6f6c626f782f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/dylangrech92/seotoolbox/?branch=master)

This plugin was created to facilitate SEO work. It adds functionality in 3 different areas:

1. In the CMS by adding extra functionality to the Site Tree object
2. In the Controller to alter the final html output during rendering
3. As a standalone testing tool to perform various checks on the site

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

[](#requirements)

- [SilverStripe 3.x](https://www.silverstripe.org/download/)
- [SortableGridField](https://github.com/UndefinedOffset/SortableGridField)
- [Silverstripe-html5](https://github.com/silverstripe/silverstripe-html5) (Optional but recommended)

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

[](#installation)

```
composer require dylangrech92/seotoolbox
framework/sake dev/build

```

Usage
-----

[](#usage)

### [Automated Links](https://github.com/dylangrech92/seotoolbox/blob/master/docs/en/AUTOMATED_LINKS.md)

[](#automated-links)

Manually adding and updating thousands of links every time you do a small url change or wanting to target a new keyword is just insanity.

This tool allows you to simply specify a keyword you want to target and where it should point to amongst a few other options. Once that is saved, the tool will automatically link the keyword specified to the page specified.

##### Settings

[](#settings)

[![Creating a new Automated Link](https://raw.githubusercontent.com/dylangrech92/seotoolbox/master/images/seotoolbox_add_link.png)](https://raw.githubusercontent.com/dylangrech92/seotoolbox/master/images/seotoolbox_add_link.png)

##### Global Settings

[](#global-settings)

[![Automated Links Global Settings](https://raw.githubusercontent.com/dylangrech92/seotoolbox/master/images/seotoolbox_global_settings.png)](https://raw.githubusercontent.com/dylangrech92/seotoolbox/master/images/seotoolbox_global_settings.png)

---

### Automated Links Report

[](#automated-links-report)

A report called **Automated Links Report** is automatically added to you reports section that will list all the pages that were affected by the **Automated Links** and how these were affected.

##### Configurations

[](#configurations)

```
    # Once this config is activated the report will stop running in realtime and start
    # looking for the AutomatedLinkPageResult object.
    #
    # To populate this object add this to your crontab:
    # framework/sake AutomatedLinkReportTask

    AutomatedLinkReport:
      run_in_realtime: false
```

---

### [SEOTEST (Crawler)](https://github.com/dylangrech92/seotoolbox/blob/master/docs/en/SEOTEST.md)

[](#seotest-crawler)

This is a fully fledged crawler build mostly in javascript. It will start off by requesting a list of pages that exist in your SiteTree\_Live table and start crawling them to:

- Test for various seo issues such as h1, meta titles, orphan pages, etc..
- Find more pages such as paginated pages

A full list of tests performed can be found [here](https://github.com/dylangrech92/seotoolbox/blob/master/docs/en/SEOTEST.md)

---

### On Page Settings &amp; Reports

[](#on-page-settings--reports)

Apart from the crawler this plugin also adds a small report to every page edit form. This idea was taken from [Live SEO for Silverstripe](https://github.com/micschk/silverstripe-liveseo). However turned it into a much smaller but greatly more reliable report. Instead of just 1 report for the whole page, this report is split into 2 tabs: Desktop &amp; Mobile and in here only the most important data is shown + a google preview snippet and a keyword analysis tool.

This functionality can be re-used in other parts of the CMS by using the [SEOToolboxAnalyzerField](https://github.com/dylangrech92/seotoolbox/blob/master/docs/en/SEOToolboxAnalyzerField.md)

**Note:** A curl is made to the page that is being tested on every page load in the CMS.

[![On Page Analysis](https://raw.githubusercontent.com/dylangrech92/seotoolbox/master/images/seotoolbox_onpage_analysis.png)](https://raw.githubusercontent.com/dylangrech92/seotoolbox/master/images/seotoolbox_onpage_analysis.png)

Reporting an issue
------------------

[](#reporting-an-issue)

When you're reporting an issue try to include as much information as you can so that the mantainers of this module can try to closely replicate the issue.

**Useful Information to send in**

- Full stack trace
- PHP version
- Silverstripe version
- A simplistic overview of your setup example: Apache 2.4, admin and front-end are on seperate domains
- Module name that might be conflicting with this one

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 97.3% 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 ~4 days

Total

3

Last Release

3557d ago

PHP version history (2 changes)v1.0.0PHP &gt;=5.3.0

v1.0.1PHP ^5.3.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5817606?v=4)[Dylan Grech](/maintainers/dylangrech92)[@dylangrech92](https://github.com/dylangrech92)

---

Top Contributors

[![dylangrech92](https://avatars.githubusercontent.com/u/5817606?v=4)](https://github.com/dylangrech92 "dylangrech92 (71 commits)")[![raviranjan112](https://avatars.githubusercontent.com/u/72199019?v=4)](https://github.com/raviranjan112 "raviranjan112 (1 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (1 commits)")

---

Tags

silverstripereportingToolboxseoautomated linksseo testing

### Embed Badge

![Health badge](/badges/dylangrech92-seotoolbox/health.svg)

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

###  Alternatives

[silverstripe/userforms

UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code

1321.1M84](/packages/silverstripe-userforms)[symbiote/silverstripe-advancedworkflow

Adds configurable workflow support to the CMS, with a GUI for creating custom workflow definitions.

46299.9k9](/packages/symbiote-silverstripe-advancedworkflow)[silverstripe/sharedraftcontent

Share draft page content with non-CMS users

21419.6k11](/packages/silverstripe-sharedraftcontent)[cyber-duck/silverstripe-seo

A SilverStripe module to optimise the Meta, crawling, indexing, and sharing of your website content

4351.3k](/packages/cyber-duck-silverstripe-seo)

PHPackages © 2026

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