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

Abandoned → [ttree/plugin-seo](/?search=ttree%2Fplugin-seo)Typo3-flow-plugin[Utility &amp; Helpers](/categories/utility)

ttree/plugin-seo
================

SEO Plugin for TYPO3 Neos

2.0.2(8y ago)84491MITCSS

Since Dec 1Pushed 8y ago6 watchersCompare

[ Source](https://github.com/ttreeagency/Ttree.Plugin.Seo)[ Packagist](https://packagist.org/packages/ttree/plugin-seo)[ RSS](/packages/ttree-plugin-seo/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (2)Versions (12)Used By (0)

A SEO plugin for TYPO3 Neos
---------------------------

[](#a-seo-plugin-for-typo3-neos)

**This package is NOT MAINTAINED ANYMORE**.

This package for the Content Management System TYPO3 Neos offer some nice feature for search engine optimizations (SEO).

The logic of this package is done in TypoScript2, so you can customize the rendering to fit your needs.

created by Dominique Feyer &lt;&gt;

Features
--------

[](#features)

- Page title generation
- META tag
- OpenGraph
- Twitter Card

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

[](#installation)

Add this to your composer.json and run composer update:

```
{
    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/ttreeagency/Ttree.Plugin.Seo.git"
        }
    ],
    "require": {
        "ttree/plugin-seo": "dev-master"
    },
}
```

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

[](#configuration)

Include the TypoScript file NodeTypes.ts2 in your site's TypoScript:

```
include: resource://Ttree.Plugin.Seo/Private/TypoScripts/Library/NodeTypes.ts2
```

How to use the plugin ?
-----------------------

[](#how-to-use-the-plugin-)

Use the TS2 object 'Ttree.Plugin.Seo:MetaTags' to generate the HTML meta tags.

How to generate your page title ?
---------------------------------

[](#how-to-generate-your-page-title-)

You can use the object 'Ttree.Plugin.Seo:PageTitle' to generate your page title. By the default the page title contain the current page title, with a static suffix. You need to add this snippet to your Page TS2:

```
page = Page {
        head {
                title = Ttree.Plugin.Seo:PageTitle {
                        @position = 'after characterSetMetaTag'
                }
        }
}
```

You can change the static part of the title, in your TS2, like this:

```
prototype(Ttree.Plugin.Seo:StaticPageTitle) {
        value = 'your company - fixed suffix'
}
```

If you need a static prefix, even if it's not a good practice in term of SEO, use this TS2:

```
prototype(Ttree.Plugin.Seo:PageTitle) {
        value = ${this.staticTitle + " - " + this.pageTitle}
}
```

Has we use EEL for processing the value of the title, more complex configurations can offer a lots of flexibility.

Per exemple you have a specific Node Type for you blog post, you can prefix all the blog page with a specific static prefix, like this:

```
prototype(Ttree.Plugin.Seo:PageTitle) {
        @process.blog = ${q(documentNode).is('[instanceof Ttree.Plugin.Blog:Blog]') ? 'Blog - ' + value : value}
}
```

### You need a more specific title for your page ?

[](#you-need-a-more-specific-title-for-your-page-)

By default the PageTitle object use the node title, the same used for your navigation menu. In some case you need a more specific title. In this case you can use the inspector, in the group "SEO / Generic", fill the property "Title". This title will be used for the HTML page title tag, Opengraph and Twitter Card. In the group "SEO / OpenGraph" and "SEO / Twitter Card", if you fill the property title, you can target this property.

How to generate your page meta tags ?
-------------------------------------

[](#how-to-generate-your-page-meta-tags-)

You just need to update your TS2, like this:

```
page = Page {
        head {
                metaTags = Ttree.Plugin.Seo:MetaTags {
                        @position = 'after characterSetMetaTag'
                }
        }
}
```

How to generate a Twitter Card
------------------------------

[](#how-to-generate-a-twitter-card)

To enable Twitter Card rendering, go to the Inspector Group "SEO / Twitter Card", and check "Enable Twitter Card". By default the card will use the page Title and extract automatically a teaser for the current page, by using the TS2 Object "Ttree.Plugin.Seo:DocumentTeaser". You can provide a custom title and description if needed. Take care to fill the field "Site" and "Creator" to have a valid Twitter Card.

### How to force the rendering of a Twitter Card

[](#how-to-force-the-rendering-of-a-twitter-card)

In some case, like for a blog post, you need the force the rendering of the Twitter Card. For this to work you need a specific Node Type for this kind of Document. You can use this TS2 snippet to force the rendering of the Twitter Card:

```
prototype(Ttree.Plugin.Seo:TwitterCard) {
        hasTwitterCard.@process.event = ${q(documentNode).is('[instanceof Ttree.Plugin.Blog:Blog]') ? TRUE : value}
}
```

### How to force the content for the property Site and Creator

[](#how-to-force-the-content-for-the-property-site-and-creator)

```
prototype(Ttree.Plugin.Seo:TwitterCardAbstract) {
        twitterSite = '@ttreeagency'
        twitterCreator = '@dfeyer'
}
```

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~200 days

Recently: every ~251 days

Total

8

Last Release

3145d ago

Major Versions

0.3.1 → 1.2.02015-01-05

1.2.0 → 2.0.02015-12-23

### Community

Maintainers

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

---

Top Contributors

[![dfeyer](https://avatars.githubusercontent.com/u/221173?v=4)](https://github.com/dfeyer "dfeyer (33 commits)")

### Embed Badge

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

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

###  Alternatives

[kaystrobach/development-tools

111.9k](/packages/kaystrobach-development-tools)

PHPackages © 2026

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