# Kunden page documentation

**Last Updated:** 2026-04-02

## Live page (canonical)

| | |
|--|--|
| **Public URL** | `https://www.ordio.com/kunden` (no trailing slash) |
| **PHP** | [`v2/pages/static_customers_new.php`](../../../../v2/pages/static_customers_new.php) |
| **Status** | Published |
| **Visible FAQ + FAQPage JSON-LD** | [`v2/data/misc-faqs/static_customers_new.json`](../../../../v2/data/misc-faqs/static_customers_new.json) via [`render-faq-json.php`](../../../../v2/components/render-faq-json.php) + post-footer [`include-marketing-faq-jsonld.php`](../../../../v2/components/include-marketing-faq-jsonld.php) (no duplicate FAQPage in head `@graph`) |

**Routing:** [`.htaccess`](../../../../.htaccess) maps **`/kunden`** → `static_customers_new.php`. **`/kunden-neu`** also rewrites to the **same** file (no 301 today). For internal links and editorial copy, use **`/kunden`** only so analytics and signals stay on one URL. (Optional future hardening: 301 `/kunden-neu` → `/kunden` with QSA, like `/preise-neu` → `/preise`.)

**Related:** [CANONICAL_URLS_AND_LINKING.md](../../../development/CANONICAL_URLS_AND_LINKING.md), [VIDEO_CAROUSEL_IMPLEMENTATION_SUMMARY.md](../../../systems/video-carousel/VIDEO_CAROUSEL_IMPLEMENTATION_SUMMARY.md), [customer-spotlight-carousel.mdc](../../../../.cursor/rules/customer-spotlight-carousel.mdc) (rule), [THREE_CARD_TESTIMONIALS.md](../../../systems/shared-components/THREE_CARD_TESTIMONIALS.md) (pages that link *to* `/kunden`).

## Legacy file

- **`v2/pages/static_customers.php`** — Legacy; **not** routed for **`/kunden`**. Keep for reference or rollback only; confirm `.htaccess` before treating as “live”.

## Page structure (live)

Order follows `static_customers_new.php` in document flow:

1. **Hero** — Star row + badge „4,9 bei OMR Reviews“; **H1:** „Echte Erfahrungen“ + blue „aus der Praxis“; intro paragraph; trust counters (2.000+ Kunden, 72 Branchen, 10–5.000 MA).
2. **OMR badges** — Composite strip via [`omr-review-badges-strip.php`](../../../../v2/sections/partials/omr-review-badges-strip.php) + SSOT [`v2/data/omr-review-badges.php`](../../../../v2/data/omr-review-badges.php); hero uses `loading="eager"` and `fetchpriority="high"`. See [OMR_REVIEW_BADGES.md](../../../../docs/systems/shared-components/OMR_REVIEW_BADGES.md).
3. **Customer Spotlight** — [`customer-spotlight-carousel.php`](../../../../v2/base/customer-spotlight-carousel.php); data [`customer-spotlights-data.php`](../../../../v2/data/customer-spotlights-data.php) + header copy [`customer-spotlight-section-header.php`](../../../../v2/data/customer-spotlight-section-header.php). Head JSON-LD `VideoObject` entries must stay in sync (see below).
4. **Rotating OMR carousel** — In code but **disabled** via `$show_rotating_testimonials_carousel = false` (after Customer Spotlight).
5. **Industry tags** — Large tag cloud with in-view stagger (Alpine `industryTagsInView()`).
6. **Industry versatility** — H2 „Egal welche Branche …“, body copy, [`customer-logo-marquee.php`](../../../../v2/sections/partials/customer-logo-marquee.php) (`comparison` variant + label), CTAs via [`include_ctabuttons.php`](../../../../v2/base/include_ctabuttons.php).
7. **Main reviews** — Filterable OMR reviews grid (Alpine + `testimonials-helper.php`); cards with ratings, pros/cons, filters (industry, company size, use cases).
8. **Mit / Ohne Ordio** — Two-column comparison section.
9. **FAQ** — `static_customers_new.json` renderer (**10** Fragen, „Häufige Fragen zu“ + blaues Thema; SSOT unter `v2/data/misc-faqs/`).
10. **Footer** — [`footer.php`](../../../../v2/base/footer.php).

**Head assets:** [`head.php`](../../../../v2/base/head.php); `$aosScript = "true"`; `$swiperScript = "false"`. **Canonical** `https://www.ordio.com/kunden`. **OG:** `get_og_image_for_page('static', 'kunden', …)` plus `og:video` / Twitter player for featured spotlight video.

**CSS:** `testimonials-page.min.css` (includes Customer Spotlight carousel styles used on this page). **JS:** `testimonials-page.min.js` (defer), `lead-capture-triggers.min.js`, inline hero counter + industry-tag stagger. **Lead capture:** [`lead-capture-popup.php`](../../../../v2/components/lead-capture-popup.php).

## Schema (Customer Spotlight)

- **`@graph`:** `CollectionPage`, `WebPage` (with `video` → `@id` list per spotlight), `BreadcrumbList`, one **`VideoObject`** per video in `$spotlight_videos`.
- **SSOT:** Load `customer-spotlights-data.php` early so head JSON-LD and body carousel share `$spotlight_videos`.
- **Validation:** `php v2/scripts/validate-schema.php`; optional `python3 v2/scripts/dev-helpers/validate-kunden-video-schema.py` (live URL). See video carousel docs.

## SEO snapshot (verify on change)

- **Title (live):** „Kundenerfahrungen & Bewertungen - Ordio“
- **Meta description (live):** „Erfahre, was unsere Kunden über Ordio sagen. Über 2.000+ Betriebe aus 72 Branchen vertrauen auf unsere HR-Plattform für Schichtplanung und Zeiterfassung.“
- **Research / metrics:** [`docs/content/pages/static-pages/kunden/`](kunden/) (GSC, keywords, etc.) per [DATA_COLLECTION_STATIC_SITE.md](DATA_COLLECTION_STATIC_SITE.md).

## Maintenance checklist

- [ ] After changing spotlight videos: update `customer-spotlights-data.php`, re-check `VideoObject` count and `uploadDate` (ISO 8601 with timezone).
- [ ] After FAQ or keyword sprints: [DATA_COLLECTION_STATIC_SITE.md](static-pages/DATA_COLLECTION_STATIC_SITE.md) § **Kunden page `/kunden`** — refresh `kunden/data/*`, then `static_customers_new.json`; run `verify-faq-jsonld-parity.php` + `audit-faq-json-internal-links.php`.
- [ ] After FAQ edits: `static_customers_new.json` + Rich Results / marketing FAQ parity scripts as in [FAQ_WEBSITE_STANDARD.md](../../FAQ_WEBSITE_STANDARD.md).
- [ ] OMR badge asset: if OMR ships new quarterly badges, replace WebP and alt text.
- [ ] Run `npm run minify` if `v2/css/testimonials-page.css` or `v2/js/testimonials-page.js` change.
- [ ] Internal links in FAQs and copy: **`/kunden`** only (not `/kunden-neu`).
