PHPackages                             dkd/content-signals - 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. dkd/content-signals

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

dkd/content-signals
===================

Adds Content-Signal meta tags to pages per contentsignals.org spec, configurable globally via TypoScript and per page via TCA fields.

1.0.0(3mo ago)00GPL-2.0-or-laterPHPPHP ^8.1

Since Feb 16Pushed 3mo agoCompare

[ Source](https://github.com/dkd-dobberkau/typo3-content-signals)[ Packagist](https://packagist.org/packages/dkd/content-signals)[ RSS](/packages/dkd-content-signals/feed)WikiDiscussions main Synced 1mo ago

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

Content Signals – TYPO3 Extension
=================================

[](#content-signals--typo3-extension)

Rendert `` Tags im HTML `` gemäß der [contentsignals.org](https://contentsignals.org/) Spezifikation.

Damit sind AI-Nutzungsrechte direkt im HTML sichtbar – für Crawler, AI-Agents und den [Markdown for Agents](https://blog.cloudflare.com/markdown-for-agents/) Sidecar.

Output
------

[](#output)

```

```

Signale
-------

[](#signale)

SignalBedeutung`ai-train`Darf der Inhalt zum Training von AI-Modellen verwendet werden?`search`Darf der Inhalt in Suchmaschinen indexiert werden?`ai-input`Darf der Inhalt als Input für AI-Agents verwendet werden?Installation
------------

[](#installation)

```
composer require dkd/content-signals
```

Danach:

```
vendor/bin/typo3 extension:setup dkd_content_signals
vendor/bin/typo3 database:updateschema
vendor/bin/typo3 cache:flush
```

Konfiguration
-------------

[](#konfiguration)

### 1. Statisches TypoScript einbinden

[](#1-statisches-typoscript-einbinden)

Im TYPO3 Backend unter **Template &gt; Info/Modify &gt; Includes** das statische Template **"Content Signals"** hinzufügen.

### 2. Globale Defaults (TypoScript Constants)

[](#2-globale-defaults-typoscript-constants)

```
plugin.tx_dkdcontentsignals.settings.aiTrain = yes
plugin.tx_dkdcontentsignals.settings.search = yes
plugin.tx_dkdcontentsignals.settings.aiInput = yes

```

Diese Werte gelten für alle Seiten, sofern nicht pro Seite überschrieben.

### 3. Pro-Seite überschreiben

[](#3-pro-seite-überschreiben)

Im Seiteneigenschaften-Dialog erscheint die Palette **"Content Signals (contentsignals.org)"** mit drei Dropdowns:

FeldOptionenBeschreibung**AI Training**Default / Yes / NoErlaubt AI-Training mit dem Seiteninhalt**Search Indexing**Default / Yes / NoErlaubt Suchmaschinen-Indexierung**AI Input**Default / Yes / NoErlaubt AI-Agents den Inhalt als Input zu nutzen"Default" übernimmt den Wert aus den TypoScript Constants.

### Beispiel: Seite vom AI-Training ausschließen

[](#beispiel-seite-vom-ai-training-ausschließen)

Globale Defaults bleiben auf `yes`, aber auf einer bestimmten Seite wird AI-Training deaktiviert:

1. Seiteneigenschaften der Seite öffnen
2. **AI Training** auf **No** setzen
3. Speichern

Ergebnis auf dieser Seite:

```

```

Projektstruktur
---------------

[](#projektstruktur)

```
dkd_content_signals/
├── Configuration/
│   ├── TCA/Overrides/
│   │   ├── pages.php              ← TCA-Felder auf pages (3 Dropdowns)
│   │   └── sys_template.php       ← Statisches TypoScript registrieren
│   ├── TypoScript/
│   │   ├── constants.typoscript   ← Globale Defaults (yes/yes/yes)
│   │   └── setup.typoscript       ← Meta-Tag Rendering via page.headerData
│   └── Services.yaml
├── Resources/
│   ├── Private/Language/
│   │   └── locallang.xlf          ← Labels für Backend-Felder
│   └── Public/Icons/
│       └── Extension.svg
├── composer.json
├── ext_emconf.php
├── ext_tables.sql                 ← 3 Felder auf pages-Tabelle
├── LICENSE
└── README.md

```

Funktionsweise
--------------

[](#funktionsweise)

Die Extension nutzt reines TypoScript (`page.headerData`) um den Meta-Tag zu rendern:

1. Pro Signal wird das zugehörige Seiten-Feld (`tx_dkdcontentsignals_*`) gelesen
2. Ist das Feld leer ("Default"), wird der Wert aus den TypoScript Constants verwendet
3. Alle drei Signale werden zu einem `` Tag zusammengebaut

Es wird kein PHP-Code zur Laufzeit benötigt.

Zusammenspiel mit Markdown for Agents
-------------------------------------

[](#zusammenspiel-mit-markdown-for-agents)

Diese Extension und der [Markdown for Agents Sidecar](https://github.com/dkd-dobberkau/md-for-varnish) ergänzen sich:

KanalMechanismusZielgruppe**HTML**`` Tag (diese Extension)Crawler, Bots, die HTML lesen**Markdown**`Content-Signal` HTTP-Header (Sidecar)AI-Agents mit `Accept: text/markdown`Beide verwenden das gleiche Signal-Format von [contentsignals.org](https://contentsignals.org/).

Anforderungen
-------------

[](#anforderungen)

- TYPO3 12.4+ oder 13.x
- PHP 8.1+

Lizenz
------

[](#lizenz)

[GPL-2.0-or-later](LICENSE)

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance82

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 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

Unknown

Total

1

Last Release

92d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/65bbe8d95947658a4961afd1655306d6dbf5666b3696729d16f7e5fab0569d92?d=identicon)[dkd](/maintainers/dkd)

---

Top Contributors

[![dkd-dobberkau](https://avatars.githubusercontent.com/u/9196831?v=4)](https://github.com/dkd-dobberkau "dkd-dobberkau (4 commits)")

### Embed Badge

![Health badge](/badges/dkd-content-signals/health.svg)

```
[![Health](https://phpackages.com/badges/dkd-content-signals/health.svg)](https://phpackages.com/packages/dkd-content-signals)
```

###  Alternatives

[in2code/powermail

Powermail is a well-known, editor-friendly, powerful and easy to use mailform extension for TYPO3 with a lots of features

982.5M38](/packages/in2code-powermail)[fluidtypo3/flux

The flux package from FluidTYPO3

152982.2k20](/packages/fluidtypo3-flux)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

96374.6k23](/packages/friendsoftypo3-content-blocks)[derhansen/sf_event_mgt

Configurable event management and registration extension based on ExtBase and Fluid

64313.9k6](/packages/derhansen-sf-event-mgt)[typo3/cms-t3editor

TYPO3 CMS T3Editor - JavaScript-driven editor with syntax highlighting and code completion. Based on CodeMirror.

115.9M50](/packages/typo3-cms-t3editor)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

39488.5k](/packages/wazum-sluggi)

PHPackages © 2026

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