**TL;DR.** Die Anforderungen von Google für Produkt-Rich-Results 2026 fügten `hasMerchantReturnPolicy` und `shippingDetails` als Felder hinzu, die für die Berechtigung zu Rich Snippets erforderlich sind. Produkte ohne diese verlieren Preis, Verfügbarkeit und Bewertungssterne in den Suchergebnissen. Ordiko gibt beide standardmäßig aus, sobald Sie die Richtlinien auf Store-Ebene konfigurieren; Wettbewerber erfordern Theme-/Plugin-Arbeiten.

## Was hat sich 2026 geändert

Im Laufe von 2024 und 2025 führte Google neue Anforderungen für strukturierte Produktdaten ein. Die Basislinie 2026:

| Feld                             | Erforderlich für Rich Result? | Effekt bei Fehlen                     |
| -------------------------------- | ------------------------------ | ------------------------------------- |
| `name`, `image`, `description`   | Ja (seit langem)              | Ergebnis nicht berechtigt             |
| `offers.price`, `priceCurrency`  | Ja (seit langem)              | Preissnippet verborgen                |
| `offers.availability`             | Ja (seit langem)              | Verfügbarkeit wird nicht angezeigt    |
| `aggregateRating` oder `review`   | Empfohlen                     | Sternebewertung wird nicht angezeigt   |
| **`hasMerchantReturnPolicy`**     | **Ja (2026)**                 | **Rich Result nicht berechtigt**      |
| **`offers.shippingDetails`**      | **Ja (2026)**                 | **Rich Result nicht berechtigt**      |
| `brand`, `sku`, `gtin`            | Empfohlen                     | Reduziert Glaubwürdigkeit / Übereinstimmung |
| `material`, `color`, `size`       | Empfohlen                     | Reduziert Filterbarkeit                |

Quelle: [Google Search Central — Produktstrukturierte Daten](https://developers.google.com/search/docs/appearance/structured-data/product).

## hasMerchantReturnPolicy

Die vollständige Feldstruktur:

```json
{
  "@type": "MerchantReturnPolicy",
  "@id": "https://example.com/#return-policy",
  "applicableCountry": ["US", "CA"],
  "returnPolicyCountry": "US",
  "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
  "merchantReturnDays": 30,
  "returnMethod": "https://schema.org/ReturnByMail",
  "returnFees": "https://schema.org/FreeReturn"
}
```

Gültige Werte:

- `returnPolicyCategory`: `MerchantReturnFiniteReturnWindow`, `MerchantReturnUnlimitedWindow`, `MerchantReturnNotPermitted`, `MerchantReturnUnspecified`.
- `returnMethod`: `ReturnByMail`, `ReturnInStore`, `ReturnAtKiosk`.
- `returnFees`: `FreeReturn`, `OriginalShippingFees`, `ReturnFeesCustomerResponsibility`, `RestockingFees`, `ReturnShippingFees`.

Wenn Sie eine 30-tägige kostenlose Rückgabepolitik per Post haben (der gängige verbraucherfreundliche Standard):

```json
{
  "@type": "MerchantReturnPolicy",
  "applicableCountry": ["US", "CA"],
  "returnPolicyCountry": "US",
  "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
  "merchantReturnDays": 30,
  "returnMethod": "https://schema.org/ReturnByMail",
  "returnFees": "https://schema.org/FreeReturn"
}
```

## shippingDetails

Die vollständige Feldstruktur:

```json
{
  "@type": "OfferShippingDetails",
  "shippingRate": {
    "@type": "MonetaryAmount",
    "value": "4.99",
    "currency": "USD"
  },
  "shippingDestination": {
    "@type": "DefinedRegion",
    "addressCountry": "US"
  },
  "deliveryTime": {
    "@type": "ShippingDeliveryTime",
    "handlingTime": {
      "@type": "QuantitativeValue",
      "minValue": 0,
      "maxValue": 1,
      "unitCode": "DAY"
    },
    "transitTime": {
      "@type": "QuantitativeValue",
      "minValue": 2,
      "maxValue": 5,
      "unitCode": "DAY"
    }
  }
}
```

Geben Sie ein `shippingDetails` pro Zielregion aus, die Sie bedienen. Ein US-Kanada-Shop versendet an zwei Ziele, also zwei Einträge.

## Referenzmuster (empfohlen)

Die Rückgabepolitik und den Versand pro Produkt zu definieren, erzeugt umfangreiches HTML. Das sauberere Muster besteht darin, sie einmal im `Organization`-Schema mit stabilen `@id`s zu definieren und sie von jedem Produkt zu referenzieren:

```json
// Einmal auf jeder Seite (oder nur auf der Startseite):
{
  "@type": "Organization",
  "@id": "https://example.com/#organization",
  "name": "Beispielgeschäft",
  "hasMerchantReturnPolicy": {
    "@type": "MerchantReturnPolicy",
    "@id": "https://example.com/#return-policy",
    "applicableCountry": ["US", "CA"],
    "returnPolicyCountry": "US",
    "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
    "merchantReturnDays": 30,
    "returnMethod": "https://schema.org/ReturnByMail",
    "returnFees": "https://schema.org/FreeReturn"
  }
}

// Pro Produktseite:
{
  "@type": "Product",
  "name": "Leder Tasche",
  "offers": {
    "@type": "Offer",
    "price": "149.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "hasMerchantReturnPolicy": { "@id": "https://example.com/#return-policy" },
    "shippingDetails": { "@id": "https://example.com/#shipping-us" }
  }
}
```

Dies validiert genau dasselbe wie Inline-Richtlinien, hält jedoch jede PDP kleiner und einfacher zu cachen.

## Produktübersteuerungen

Einige Produkte benötigen Ausnahmen:

- **Übergroße Artikel** (Möbel, Matratzen): andere Rückgabepolitik (häufig `OriginalShippingFees`).
- **Gefahrgut** (Batterien, Aerosole): `MerchantReturnNotPermitted` oder nur im Geschäft.
- **Maßanfertigungen** (Gravuren, Monogramme): `MerchantReturnNotPermitted`.
- **Digitale Produkte**: `MerchantReturnNotPermitted`.

Übersteuern Sie auf Produktebene:

```ts
// Pseudocode für ein Ordiko-Produkt
{
  id: "prod_xyz",
  slug: "custom-engraved-watch",
  returnPolicy: {
    category: "MerchantReturnNotPermitted",
    applicableCountry: ["US"],
  },
}
```

Die Reihenfolge der Auflösung: Produktübersteuerung → Store-Richtlinie → keine.

## Validierung

1. **Pro Seite**: [Google Rich Results Test](https://search.google.com/test/rich-results) auf repräsentativen PDPs. Bestätigen Sie "berechtigt" ohne Warnungen zu Rückgabe/Versand.
2. **In großem Maßstab**: [Schema Markup Validator](https://validator.schema.org) für Syntax.
3. **In der Produktion**: Google Search Console → Verbesserungen → Produkte → Abdeckungsbericht.

## Wie Ordiko dies implementiert

Ordiko gibt `hasMerchantReturnPolicy` und `shippingDetails` automatisch auf jeder PDP aus, sobald Sie konfigurieren:

- **Einstellungen → SEO → Rückgabepolitik** (ein Formular, ~5 Felder).
- **Einstellungen → SEO → Versandrichtlinien** (eine Zeile pro Ziel).

Der Resolver in `src/lib/seo/return-policy.ts` kaskadiert: Produktübersteuerung → Store-Richtlinie → keine. Der Renderer gibt das Referenzmuster mit stabilen `@id`s auf der Organisation aus.

Keine Theme-Arbeiten. Keine Plugins. Kein Schreiben von JSON-LD.

## Häufige Fehler

1. **Inline-Duplikation der Rückgabepolitik auf jedem Produkt.** Validiert, erzeugt aber 10–50KB redundantes JSON pro PDP. Verwenden Sie das Referenzmuster.
2. **Fehlendes `applicableCountry`.** Dies ist erforderlich. Geben Sie die Länder an, auf die die Richtlinie zutrifft.
3. **Falsches Kategorien-Enum.** Verwenden Sie die vollständige URL (`https://schema.org/MerchantReturnFiniteReturnWindow`), nicht den Kurznamen.
4. **Versandrichtlinien, die nicht mit sichtbaren Versandkosten übereinstimmen.** Schema und Seiteninhalt müssen übereinstimmen, sonst unterdrückt Google das Rich Result.
5. **Keine Versandrichtlinie überhaupt.** Selbst Geschäfte mit kostenlosem Versand müssen `shippingDetails` mit einem `shippingRate.value` von `0` ausgeben.

## FAQ

**Wann wurde hasMerchantReturnPolicy erforderlich?**
Google kündigte die Anforderung 2024 an, mit der Durchsetzung, die sich bis 2025 und Anfang 2026 erstreckte. Ab 2026 führt das Fehlen von hasMerchantReturnPolicy im Produkt-Schema zu einem Verlust der Berechtigung für Rich Results — Ihr Produkt zeigt keine Preise, Verfügbarkeiten oder Bewertungssterne mehr in den SERPs an.

**Kann ich eine einzige Richtlinie für den gesamten Shop ausgeben?**
Ja. Definieren Sie hasMerchantReturnPolicy einmal im Organization-Schema mit einer stabilen @id und referenzieren Sie sie dann von jedem Produktangebot's hasMerchantReturnPolicy über @id. Dies ist das sauberste Muster und das, was Ordiko standardmäßig ausgibt.

**Was ist, wenn meine Produkte unterschiedliche Versandregeln haben?**
Übersteuern Sie pro Produkt. Die meisten Geschäfte haben über 90 % der Produkte unter derselben Richtlinie und 5–10 %, die Übersteuerungen benötigen (übergroß, Gefahrgut, maßgefertigt). Ordiko unterstützt nullable pro Produktpolitik, die auf die Store-Richtlinie zurückfällt.

**Beeinflusst dies AI-Suchzitationen?**
Ja, indirekt. KI-Engines (Perplexity, ChatGPT, Claude) analysieren dasselbe JSON-LD, das Google verwendet. Vollständige Rückgabe- und Versandrichtlinien verbessern die Zitierfähigkeit — KI-Engines bevorzugen Seiten mit umfassenden strukturierten Daten, da sie Benutzerfragen direkt beantworten können.