PHPackages                             innoweb/silverstripe-metacounter - 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. innoweb/silverstripe-metacounter

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

innoweb/silverstripe-metacounter
================================

Adds a counter to the meta fields for remaining characters

3.1.0(1y ago)01.5k1BSD-3-ClauseJavaScript

Since Dec 27Pushed 1y ago2 watchersCompare

[ Source](https://github.com/xini/silverstripe-metacounter)[ Packagist](https://packagist.org/packages/innoweb/silverstripe-metacounter)[ RSS](/packages/innoweb-silverstripe-metacounter/feed)WikiDiscussions master Synced 2mo ago

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

SilverStripe Metadata Limit Counter
===================================

[](#silverstripe-metadata-limit-counter)

[![Version](https://camo.githubusercontent.com/358b21b2538299ba77233924cb4c9d0a66621ea7d6dc05ed4dd514d66fdcafe3/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f696e6e6f7765622f73696c7665727374726970652d6d657461636f756e7465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/innoweb/silverstripe-metacounter)[![License](https://camo.githubusercontent.com/15e42526e99266404802702bebeed18d218253b5fa6f2f45a4cd6f01b0c81c3f/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f696e6e6f7765622f73696c7665727374726970652d6d657461636f756e7465722e7376673f7374796c653d666c61742d737175617265)](license.md)

Overview
--------

[](#overview)

Adds limit counters to the meta title and description fields in the CMS.

Two levels of limits can be configured to allow longer texts for certain search engines (i.e. Google).

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

[](#requirements)

- SilverStripe CMS 5.x

Note: this version is compatible with SilverStripe 5. For SilverStripe 4, please see the [2 release line](https://github.com/xini/silverstripe-metacounter/tree/2). For SilverStripe 3, please see the [1.1 release line](https://github.com/xini/silverstripe-metacounter/tree/1.1).

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

[](#installation)

Install the module using composer:

```
composer require innoweb/silverstripe-metacounter dev-master

```

Then run dev/build.

Configuration
-------------

[](#configuration)

The default limits are as follows and can be overridden in your site's config.yml:

```
Innoweb\MetaCounter\Model\SiteTreeExtension:
  meta_title_length: 55
  meta_title_length_extended: 55
  meta_description_length: 160
  meta_description_length_extended: 300

```

Once the text exceeds the configured `length` of a field the counter will turn orange, once it exceeds `length_extended` it will turn red and count backwards.

If `length_extended` is not configured or if it is the same as `length`, the counter will turn red if the text exceeds `length`.

Troubleshooting
---------------

[](#troubleshooting)

Sometimes you may add a MetaTitle field to your Page sub/class, with correct length configurations, but no counter appears.

If you have added the field manually rather than via [kinglozzer/metatitle](https://github.com/kinglozzer/silverstripe-metatitle) sometimes the Page extension in this module will run before your MetaTitle field is present (and as result there is no field for the counter to attach to).

To protect against this, use `beforeUpdateCMSFields()` inside your `getCMSFields()`:

```
public function getCMSFields()
{
    $this->beforeUpdateCMSFields(function(FieldList $fields) {
        $fields->insertBefore(
            'MetaDescription',
            TextField::create('MetaTitle', $this->fieldLabel('MetaTitle'))
        );
    });

    $fields = parent::getCMSFields();
    // your other class-specific CMS fields setup
    return $fields;
}

```

License
-------

[](#license)

BSD 3-Clause License, see [License](license.md)

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 66.7% 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 ~387 days

Recently: every ~575 days

Total

9

Last Release

690d ago

Major Versions

1.1.0 → 2.0.02018-03-02

1.1.1 → 3.0.02023-03-15

### Community

Maintainers

![](https://www.gravatar.com/avatar/0d2e71d7787401a7bd4916062346163897f89f455d650ab32b5d60cd14825ad3?d=identicon)[xini](/maintainers/xini)

---

Top Contributors

[![xini](https://avatars.githubusercontent.com/u/1152403?v=4)](https://github.com/xini "xini (16 commits)")[![dizzystuff](https://avatars.githubusercontent.com/u/576903?v=4)](https://github.com/dizzystuff "dizzystuff (8 commits)")

---

Tags

silverstripemetadatacounterlimit

### Embed Badge

![Health badge](/badges/innoweb-silverstripe-metacounter/health.svg)

```
[![Health](https://phpackages.com/badges/innoweb-silverstripe-metacounter/health.svg)](https://phpackages.com/packages/innoweb-silverstripe-metacounter)
```

PHPackages © 2026

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