ProvenExpert Google stars, server-side 

  • Shows your ProvenExpert rating without loading anything from ProvenExpert into the visitor's browser.
Extension key

bm1_provenexpert

Package name

bm1/provenexpert

Version

main

Language

en

Author

Phillip Baumgärtner & contributors

License

This document is published under the Open Publication License.

Rendered

Fri, 31 Jul 2026 08:44:38 +0000


ProvenExpert offers its "Google stars" rich 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 takes the PHP route and wraps it in proper TYPO3 plumbing: caching, backend configuration, a content element and a Fluid ViewHelper. Only the web server talks to ProvenExpert.


Installation 

Install via Composer and enter the API credentials.

Configuration 

Extension configuration, site settings and the available layouts.

Usage 

Content element, TypoScript and Fluid.

Installation 

Requirements 

Component Supported
TYPO3 10.4, 11.5, 12.4, 13.4, 14
PHP 7.4 to 8.4
ProvenExpert a plan with API access

Install the extension 

composer require bm1/provenexpert
Copied!

Without Composer, download the extension from the TYPO3 Extension Repository or from the GitHub releases.

API credentials 

The credentials are shown in your ProvenExpert account under Reputation boost > Google stars > PHP scripts, in the two lines:

$yourApiId = '...';
$yourAPIKey = '...';
Copied!

Enter them in Admin Tools > Settings > Extension Configuration > bm1_provenexpert, or per site – see Configuration.

Configuration 

Extension configuration 

Setting Meaning
apiId, apiKey ProvenExpert API credentials
cacheLifetime how long a response is reused, default 3600 seconds
timeout how long to wait for the API, default 5 seconds
autoInsert place the rating before </body> 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 

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 

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

config/sites/<identifier>/config.yaml (v10-v12), settings.yaml (v13+)
settings:
  bm1_provenexpert:
    apiId: '...'
    apiKey: '...'
    ratingStyle: 'starsInline'
Copied!

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

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.

Usage 

Automatic placement 

After installing the extension and entering the credentials, the rating is rendered before </body> on every page, centred. Nothing else to do.

Switch it off with autoInsert in the extension configuration if you want to place the snippet yourself.

Content element 

Add the content element ProvenExpert rating where it should appear and choose what it shows:

Rating
Stars, link and rich snippet. The automatic placement then holds back, so there is never more than one review snippet on a page.
Seal
The ProvenExpert seal as an image - portrait, landscape, square or circle, up to 250 pixels wide. The image is stored below typo3temp/assets/bm1_provenexpert/ and delivered from your own domain. It keeps its aspect ratio and shrinks to the available width on narrow screens. The seal carries no structured data, so it can sit on the same page as the rating.

The ProvenExpert widget type bar is not offered on purpose: its API response is a <script> tag pointing at ProvenExpert, which would require consent again.

Google grants stars only for a snippet that is fully visible, and expects one review snippet per page.

TypoScript 

Add the static template ProvenExpert (server-side) to your root template, then place the rating wherever you need it:

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

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

Fluid 

{namespace pe=Bm1\ProvenExpert\ViewHelpers}

<pe:rating />
<pe:rating style="textInline" />
Copied!

Caching 

Rating data is cached for an hour by default. If the API is unreachable, the last successful response keeps being served and the API is retried after a minute, so the rating never disappears because of a network hiccup.

Changes made in the ProvenExpert account show up with a delay: this extension caches, and ProvenExpert caches on its own servers as well.

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. No cookies and no sessionStorage entries are created, and no visitor data reaches ProvenExpert.

This covers the display of the rating. Collecting reviews through ProvenExpert is a separate processing activity.