PHPackages                             bm1/provenexpert - 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. bm1/provenexpert

ActiveTypo3-cms-extension

bm1/provenexpert
================

Renders the ProvenExpert rating (Google stars) server-side - no third-party JavaScript, no cookies, no consent needed.

1.2.1(today)08↑2900%GPL-2.0-or-laterPHPPHP &gt;=7.4CI passing

Since Jul 31Pushed todayCompare

[ Source](https://github.com/BM1-de/provenexpert)[ Packagist](https://packagist.org/packages/bm1/provenexpert)[ Docs](https://github.com/BM1-de/provenexpert)[ RSS](/packages/bm1-provenexpert/feed)WikiDiscussions main Synced today

READMEChangelog (4)Dependencies (1)Versions (6)Used By (0)

ProvenExpert Google stars for TYPO3 (server-side)
=================================================

[](#provenexpert-google-stars-for-typo3-server-side)

Renders the ProvenExpert rating – the "Google stars" rich snippet – **on the server**. The visitor's browser never contacts ProvenExpert, so the extension loads no third-party JavaScript, sets no cookies and writes nothing to `sessionStorage`.

ProvenExpert offers the snippet as a JavaScript and as a PHP script. The JavaScript variant runs in the visitor's browser and writes to `sessionStorage`, which usually puts it behind a consent banner – where most visitors and search engines never get to see the rating. This extension is the PHP way, wrapped in proper TYPO3 plumbing: caching, backend configuration, content element.

Full manual: [docs.typo3.org/p/bm1/provenexpert/main/en-us](https://docs.typo3.org/p/bm1/provenexpert/main/en-us/) · TER entry: [extensions.typo3.org/extension/bm1\_provenexpert](https://extensions.typo3.org/extension/bm1_provenexpert)

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

[](#requirements)

TYPO310.4 · 11.5 · 12.4 · 13.4 · 14PHP7.4 – 8.4ProvenExpertplan with API access (credentials under *Reputation boost › Google stars › PHP scripts*)Installation
------------

[](#installation)

```
composer require bm1/provenexpert
```

Then enter the API ID and API key, either in the extension configuration (*Admin Tools › Settings › Extension Configuration › bm1\_provenexpert*) or per site (see below).

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

[](#configuration)

SettingMeaning`apiId`, `apiKey`ProvenExpert API credentials`cacheLifetime`how long a response is reused (default 3600 s)`timeout`how long to wait for the API (default 5 s)`autoInsert`place the rating before `` on every page, default on`ratingStyle`layout of the visible rating, see below`strokeColor`, `fillColor`, `fontColor`colour overrides for the stars, exactly like the official PHP script### Layout

[](#layout)

ProvenExpert always returns the layout selected in the account under *Google stars › Display of the rich snippet*; its API offers no parameter for it. The extension therefore builds the visible output itself, from the `ratingValue` and `reviewCount` fields of the same API response – a route ProvenExpert explicitly allows. The JSON-LD block is always taken over from ProvenExpert **unchanged**, so the structured data stays exactly as intended.

`ratingStyle`Output`starsInline` (default)stars next to "N reviews on ProvenExpert.com"`stars`stars above the review count`text`"Company has 4.67 out of 5 stars" above the review count`textInline`both in one line, separated by a pipe`account`untouched markup from ProvenExpert, i.e. whatever the account is set to### Per site

[](#per-site)

The same keys can be set per site below `settings.bm1_provenexpert`, which takes precedence over the extension configuration:

```
# config/sites//config.yaml (v10-v12)
# config/sites//settings.yaml (v13+)
settings:
  bm1_provenexpert:
    apiId: '…'
    apiKey: '…'
```

On TYPO3 v13 and above you can also add the shipped site set `bm1/provenexpert`, which makes the settings editable in the backend.

### Keeping credentials out of the repository

[](#keeping-credentials-out-of-the-repository)

Any string setting may hold a placeholder such as `%env(PROVENEXPERT_API_KEY)%`, which is resolved from the server environment. In site YAML files TYPO3 resolves such placeholders on its own (since v10).

Usage
-----

[](#usage)

Install, enter the credentials – done. The rating is placed before `` on every page automatically, centred, without any TypoScript.

### Content element

[](#content-element)

The content element **ProvenExpert rating** shows either of two things:

- **Rating** – stars, link and rich snippet. Placing it somewhere makes the automatic placement hold back, so there is never more than one review snippet per page. Switch the automatic placement off entirely with `autoInsert`.
- **Seal** – the ProvenExpert seal as an image, in portrait, landscape, square or circle, up to 250 pixels wide. The image is stored on your server and delivered from there, so it works without consent as well, and it scales down in narrow columns. The seal carries no structured data and can therefore sit on the same page as the rating.

The ProvenExpert widget type `bar` is deliberately not offered: its API response is a `` tag pointing at ProvenExpert, which would require consent again. Should such markup ever appear in a response, the extension strips it and writes a warning to the log.

### TypoScript

[](#typoscript)

Add the static template *ProvenExpert (server-side)* to your root template:

```
# e.g. below the footer, on every page
page.footerData.950 < lib.provenExpertRating

# optional: override the configured layout
page.footerData.950.style = stars

# the seal, e.g. as a Fluid variable
page.10.variables.provenExpertSeal < lib.provenExpertSeal
page.10.variables.provenExpertSeal.type = square

```

### Fluid

[](#fluid)

```
{namespace pe=Bm1\ProvenExpert\ViewHelpers}

```

Notes
-----

[](#notes)

- Google grants stars only for a snippet that is **fully visible**, and expects **one** review snippet per page.
- If the API is unreachable, the last successful response keeps being served and the API is retried after a minute – the rating never disappears because of a network hiccup.
- Changes made in the ProvenExpert account (e.g. the account layout) show up with a delay: this extension caches for an hour, and ProvenExpert caches on its own servers as well.

What is sent where
------------------

[](#what-is-sent-where)

Only the web server talks to ProvenExpert. The visitor's browser loads nothing from ProvenExpert: no script, no image, no font - the seal image is copied to your server and served from there. No cookies and no `sessionStorage` entries are created, and no visitor data (IP address, user agent, …) reaches ProvenExpert. The rating is therefore rendered for every visitor and for search engines, without any interaction.

Rate this extension
-------------------

[](#rate-this-extension)

This extension is free. If it helps you, please rate it on RatingStar: [ratingstar.de/t/bm1](https://ratingstar.de/t/bm1) · [more information](https://ratingstar.de/vs/provenexpert)

License
-------

[](#license)

GPL-2.0-or-later

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance100

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

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 ~0 days

Total

5

Last Release

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5550674?v=4)[Phillip](/maintainers/bm1-phillip)[@bm1-phillip](https://github.com/bm1-phillip)

---

Tags

extensionreviewsTYPO3 CMSgdprRatingprivacyconsentProvenExpertGoogle stars

### Embed Badge

![Health badge](/badges/bm1-provenexpert/health.svg)

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

###  Alternatives

[friendsoftypo3/content-blocks

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

105574.3k61](/packages/friendsoftypo3-content-blocks)[web-vision/deepltranslate-core

DeepL Translate (CORE) - This extension provides option to translate content element, and TCA record texts to DeepL supported languages.

34162.0k9](/packages/web-vision-deepltranslate-core)[web-vision/wv_deepltranslate

DeepL Translate (CORE) - This extension provides option to translate content element, and TCA record texts to DeepL supported languages.

33305.5k](/packages/web-vision-wv-deepltranslate)[friendsoftypo3/visual-editor

TYPO3 CMS Visual Editor - Brings a modern WYSIWYG editing experience to TYPO3 CMS.

6010.0k3](/packages/friendsoftypo3-visual-editor)[georgringer/gdpr

Make TYPO3 more compatible to GDPR

4557.7k](/packages/georgringer-gdpr)[jweiland/events2

Events 2 - Create single and recurring events

2168.1k3](/packages/jweiland-events2)

PHPackages © 2026

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