PHPackages                             dorsetdigital/silverstripe-canonical - 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. dorsetdigital/silverstripe-canonical

ActiveSilverstripe-vendormodule

dorsetdigital/silverstripe-canonical
====================================

Adds a simple canonical tag in Silverstripe

v3.0.0(10mo ago)421.3k↓31.3%5[1 issues](https://github.com/DorsetDigital/silverstripe-canonical/issues)BSD-3-ClausePHPPHP ^8.3

Since Mar 20Pushed 10mo ago2 watchersCompare

[ Source](https://github.com/DorsetDigital/silverstripe-canonical)[ Packagist](https://packagist.org/packages/dorsetdigital/silverstripe-canonical)[ Docs](https://github.com/DorsetDigital/silverstripe-canonical)[ RSS](/packages/dorsetdigital-silverstripe-canonical/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (8)Dependencies (1)Versions (10)Used By (0)

silverstripe-canonical
======================

[](#silverstripe-canonical)

Adds a simple rel=canonical tag to Silverstripe

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/4b3130e1890256da55dedef373d85c45fe6aad7841df2b3caf2a50dcec32a0a2/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f446f727365744469676974616c2f73696c7665727374726970652d63616e6f6e6963616c2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/DorsetDigital/silverstripe-canonical/?branch=master)[![Build Status](https://camo.githubusercontent.com/4d326f1c21dbd95cea5c0b570bffa6982fcac6a82ea04cbd5cbcf31404a7528d/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f446f727365744469676974616c2f73696c7665727374726970652d63616e6f6e6963616c2f6261646765732f6275696c642e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/DorsetDigital/silverstripe-canonical/build-status/master)[![License](https://camo.githubusercontent.com/b3775a2de17853a90995faa104f941eef3ad3c40cc89e34b8b1eaea014614d4e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d425344253230332d2d436c617573652d626c75652e737667)](LICENSE.md)[![Version](https://camo.githubusercontent.com/847ef1efec4cd810b3a5d57c446463378265c37e7d5c3a9c53678e817bb41ccd/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f646f727365746469676974616c2f73696c7665727374726970652d63616e6f6e6963616c2e7376673f7374796c653d666c6174)](https://packagist.org/packages/dorsetdigital/silverstripe-canonical)

Requirements
============

[](#requirements)

- Silverstripe 6 - Use V3 branch
- Silverstripe 4 / 5 - Use V2 branch

Installation
============

[](#installation)

- Install the code with `composer require dorsetdigital/silverstripe-canonical`
- Run a `dev/build?flush` to update your project

Usage
=====

[](#usage)

This module adds a simple canonical tag to your pages to allow for the specification of the default domain.
The canonical tag allows you to signal to search engines like Google which is the authoritative version of the page to help reduce duplicate content issues caused by non-www versions, pages with different protocols, etc.

Once installed, go to the site settings and enter the full canonical domain. This should include the protocol (e.g. http:// or https://)

The module tries to be the last extension to be applied, and will try to remove any existing `rel="canonical"` tags from the head.

At the time of writing, the canonical tags are only added correctly for pages in the SiteTree. Pages generated from custom controllers or from DataObjects may or may not work! When creating the canonical tags, the module will look for a method called `CanonicalLink()` on the extended object. If you are using DataObjects as pages, adding this method on the relevant controller should allow you to control the canonical URL in these cases.

Additional Credits
==================

[](#additional-credits)

- Thanks to @sanderha for the Danish translation
- Thanks to @lerni for his enhancements
- Thanks to @satrun77 for adding CMS 6 support

###  Health Score

50

—

FairBetter than 96% of packages

Maintenance50

Moderate activity, may be stable

Popularity32

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity84

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 57.5% 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 ~335 days

Recently: every ~631 days

Total

9

Last Release

302d ago

Major Versions

v1.1 → 2.x-dev2024-07-12

v2.0.0 → v3.0.02025-07-20

### Community

Maintainers

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

---

Top Contributors

[![DorsetDigital](https://avatars.githubusercontent.com/u/15108750?v=4)](https://github.com/DorsetDigital "DorsetDigital (23 commits)")[![lerni](https://avatars.githubusercontent.com/u/472115?v=4)](https://github.com/lerni "lerni (12 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (2 commits)")[![lukeskelding](https://avatars.githubusercontent.com/u/11160855?v=4)](https://github.com/lukeskelding "lukeskelding (1 commits)")[![sanderha](https://avatars.githubusercontent.com/u/6941043?v=4)](https://github.com/sanderha "sanderha (1 commits)")[![satrun77](https://avatars.githubusercontent.com/u/166450?v=4)](https://github.com/satrun77 "satrun77 (1 commits)")

---

Tags

canonical-tagssilverstripesilverstripe-4silverstripe-5silverstripe-modulehtmlsilverstripeseocanonical

### Embed Badge

![Health badge](/badges/dorsetdigital-silverstripe-canonical/health.svg)

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

###  Alternatives

[silverstripe/staticpublishqueue

Static publishing queue to create static versions of pages for enhanced performance and security

45135.4k4](/packages/silverstripe-staticpublishqueue)[quinninteractive/silverstripe-seo

An all-in-one SEO module for SilverStripe

3328.2k](/packages/quinninteractive-silverstripe-seo)[dorsetdigital/silverstripe-enhanced-requirements

Enhanced requirements for Silverstripe

117.8k4](/packages/dorsetdigital-silverstripe-enhanced-requirements)

PHPackages © 2026

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