More and more users are turning to AI-powered search systems such as ChatGPT, Gemini, Google AI Overviews or Perplexity instead of traditional search engines. As a result, users increasingly receive direct answers to their queries rather than having to browse through search results themselves.
To generate these answers, AI systems rely not only on the visible content of a website but also on structured, machine-readable information in the background of the page.
This includes company information, as well as trust signals such as the Trusted Shops Trustmark and collected reviews.
Trusted Shops automatically provides this information through the Trustbadge. However, not all AI crawlers can detect and read the Trustbadge. For this reason, Trusted Shops also provides the data in the form of structured markup. You can integrate this markup manually into your website's header. This ensures that your trust signals are visible to all AI crawlers.
Structured markup is therefore an optional but recommended enhancement for search engines and AI systems. Your Trusted Shops products and trust signals will continue to work exactly as before for your human customers – whether you use the additional markup or not.
What is structured markup?
Structured markup is an additional block of information within your website's HTML code. This information block is normally not visible to visitors, but it can be read by search engines and AI systems.
You can think of the markup as a standardised data sheet for machines. It describes important information about your shop in a clear and structured format.
This includes information such as:
- Your shop name
- Your website URL
- Your average rating
- The number of your reviews
- Information about your Trusted Shops Trustmark
As a result, AI systems do not have to interpret this information themselves from different areas of your website. Instead, they receive it in a structured format.
Structured markup therefore helps search engines and AI systems to correctly identify and understand your shop's trust signals. This enables them to answer common customer questions such as "Which shops have good reviews?" or "Is it safe to buy from this retailer?" more accurately.
Structured markup helps AI systems and search engines interpret information about your shop correctly. However, this does not automatically mean that your shop will be mentioned more frequently by AI systems.
How do I integrate structured markup into my website?
To integrate structured markup, follow these steps:
- Identify your Trusted Shops ID
- Retrieve the structured markup
- Insert the markup into your shop's HTML code
- Keep the markup up to date
- Verify the integration
Step 1: Identify your Trusted Shops ID
For the following steps, you will need your Trusted Shops ID (TS ID). This is your shop's unique identifier within Trusted Shops.
To find your TS ID:
- Log in to My Trusted Shops.
- You can find your TS ID on the dashboard in the right-hand column.
You have now successfully identified your TS ID.
Step 2: Retrieve the structured markup
Trusted Shops automatically generates the structured markup for your shop as a JSON-LD file.
- Replace the placeholder {your-TSID} in the following URL with your own TS ID: https://widgets.trustedshops.com/js/{your-TSID}-jsonld.json
- Open the URL in your browser.
- The JSON-LD file containing your website's structured information will appear. Copy the entire code to your clipboard.
You have now successfully retrieved the structured markup.
How is the structured markup structured?
The markup may look similar to the following example:
{
"@context": "https://schema.org",
"@type": "OnlineBusiness",
"@id": "https://www.your-shop.com",
"name": "Your Shop Name",
"url": "https://www.your-shop.com",
"sameAs": [
"https://www.trustedshops.de/bewertung/info_{your-TSID}.html"
],
"hasCertification": {
"@type": "Certification",
"name": "Trusted Shops Trustmark",
"certificationIdentification": "https://www.trustedshops.de/bewertung/info_{your-TSID}.html",
"certificationStatus": "CertificationActive",
"sameAs": [
"https://www.trustedshops.de/bewertung/info_{your-TSID}.html"
],
"issuedBy": {
"@type": "Organization",
"name": "Trusted Shops",
"url": "https://www.trustedshops.com",
"sameAs": [
"https://business.trustedshops.com/",
"https://www.trstd.com/"
]
},
"dateModified": "2026-05-15",
"validFrom": "2023-09-28 00:00:00"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"ratingCount": "312"
}
}The markup contains the following information, among others:
| Section | What it tells AI systems |
| OnlineBusiness | Identifies your shop as a certified online business. |
| hasCertification | Displays your active Trustmark and the issuing authority (Trusted Shops). |
| certificationStatus: CertificationActive | Confirms that your certification is currently active. |
| aggregateRating | Displays your overall rating and the number of collected reviews. |
Step 3: Insert the markup into your shop's HTML code
To allow search engines and AI systems to read the markup, the content must be placed inside a special <script> tag.
The structure of the tag looks as follows:
<script type="application/ld+json">
...
</script>- Replace the ... with the code you copied in Step 2. Then copy the complete <script> tag to your clipboard.
- Open the <head> section of your shop's HTML and insert the <script> tag there.
You have now successfully added the <script> tag to your HTML code.
To avoid adding the <script> tag to every individual page of your shop, we recommend placing it in a shared template such as the <head> section that is used throughout the entire shop. Alternatively, you may place the markup elsewhere, for example directly before the closing </body> tag.
The important point is that the <script> tag must be part of the HTML delivered by the server. If it is loaded later via JavaScript, search engines and AI systems may not be able to read it.
Step 4: Keep the markup up to date
The Trusted Shops JSON-LD file is updated daily. This ensures that information such as your overall rating and review count remains current. If you simply copy the markup once and embed it permanently as static content, this information will quickly become outdated.
For this reason, the markup should be updated automatically every day.
Possible implementation methods include:
- A cron job on your server
- A CMS workflow or plugin that supports scheduled HTTP requests
- A step within your CI/CD pipeline that republishes your template with updated content
- A serverless function that runs automatically on a daily schedule
This ensures that the information in your markup always matches the information displayed in your public company profile.
Alternative: Use a static version of the markup
We recommend keeping the markup updated automatically. If this is not possible, you can use a simplified version of the markup instead.
Before integration, remove the following sections from the JSON-LD:
- AggregateRating (including ratingValue and ratingCount)
- dateModified
This means the markup will only contain information about your shop and your Trusted Shops Trustmark that does not change on a daily basis.
However, the information in the markup must always match the information shown in your public company profile. Therefore, do not manually modify the following values:
- certificationStatus
- validFrom
Step 5: Verify the integration
After completing the integration, you should verify that the markup is recognised correctly.
- Open the Google Rich Results Test.
- Enter your shop URL and start the test.
If the structured markup has been recognised successfully, the detected structured data will be displayed in the results. Pay particular attention to entries such as:
- OnlineBusiness
- Certification
The markup was not recognised? Check the following points:
- Is the <script> tag present in the page source? To verify this, right-click anywhere on the page and open the page source view in your browser.
- Does the JSON-LD contain syntax errors? You can validate the JSON code at jsonlint.com.
- Is the markup being loaded afterwards via JavaScript? If so, make sure it is delivered directly as part of the HTML code.