# Homepage Documentation

**Last Updated:** 2026-04-10

Complete documentation for the Ordio homepage — primary entry point at `https://www.ordio.com/`.

## Basic Information

- **Canonical PHP:** `v2/start-v2.php` (served at `/` per root `.htaccess` and `index.php`)
- **Alternate LP shell:** `v2/pages/landingpage.php` — used for `/v2/` and partner/typewriter URLs, **not** for `/`
- **Slug:** (root — `/`)
- **URL:** https://www.ordio.com/
- **Status:** Published (Active)
- **Other files:** `landingpage_v3.php`, `landingpage_v4.php`, `landingpageurlgenerator.php` (see [HOMEPAGE_INVENTORY.md](HOMEPAGE_INVENTORY.md))

## Page Structure (document order)

### Hero Section (`start-v2.php`)

**Default Headline:**

- **H1:** English “Automating” plus rotating terms (`txt-rotate`: Schichtplanung, Zeiterfassung, Payroll, etc.) — brand/design-forward. **SEO wording** is carried primarily by **`<title>`**, **meta description**, **WebPage JSON-LD**, **Open Graph**, and the **FAQ block** (German). See *Hero vs title (SEO tradeoff)* below.
- **Fallback (noscript):** Static “Automating” + first rotate term.

**Default Subheadline (`start-v2`):**

- “Ordio reduziert manuelle Arbeit im Schichtbetrieb …” (see source).

**Dynamic Features:**

- **Partner Logo Support:** Via `?partner=[partner-name]` URL parameter
- **Custom Title:** Via `?title=[custom-title]` URL parameter
- **Custom Typewriter:** Via `?typewriter=[item1,item2,item3]` URL parameter
- **Custom Blue Line:** Via `?blueline=[text]` URL parameter
- **Custom Pink Line:** Via `?pinkline=[text]` URL parameter
- **Custom Subheadline:** Via `?subheadline=[text]` URL parameter

**Hero Layout Options:**

- **Split Layout:** Activated via `?herotype=split` (two-column layout with visual on right)
- **Centered Layout:** Default (centered text, visual below)

**CTAs:**

- **Primary CTA:** "Kostenlos testen" (opens modal)
- **Secondary CTA:** "Demo vereinbaren" (opens modal)
- **Callback Button:** "Rückruf anfordern" (opens lead capture popup)
- **CTA Configuration:**
  - `$ctaPositionLeft = "true"` (for split layout)
  - `$ctaButtonsAOS = 'data-aos="zoom-in" ...'`
  - `$ctaButtonsLight = 'yes'`
  - `$showCallbackButton = 'yes'`

**Visual Elements:**

- Hero video/demo section
- Animated background gradients
- Product screenshots/previews

### Main Sections (top to bottom)

1. **`#section-1`** — Hero (headline, subheadline, CTAs, hero visual/video).
2. **`#section-1a`** — Customer logo marquee (`v2/sections/partials/customer-logo-marquee.php`).
3. **Mid-page:** Feature intro, feature showcase grid, trust card, customer spotlight carousel, testimonials / Heilandt block (see `start-v2.php` — `#section-2` and related includes).
4. **`#section-3`** — Reporting insights dark block (`v2/sections/reporting-insights-section.php`; data `v2/data/reporting-insights-section.php`). Homepage adds Lanxess testimonial **after** the partial.
5. **FAQ (standard accordion)** — **Last main block before `footer.php`** (not inside the dark reporting section).
6. **Footer** — `v2/base/footer.php`. Set `$color_fill` / `$color_background` / `$rotate` so the top SVG wave matches the **FAQ** background (`#fbfbfb`), same pattern as feature pages (e.g. `product_schichtplan_neu.php`: `#fff`, `#fbfbfb`, `rotate` `0`). Do **not** use the dark reporting section color (`#232529`) here — that caused a dark band between FAQ and footer when FAQ was moved below `#section-3`.

### FAQ block (canonical homepage)

- **Copy (SSOT — root `/` only):** `v2/data/homepage-faq-items.php` — `ordio_homepage_faq_items()` (`title` / `description` per row; mapped to `question` / `answer` in `start-v2.php`). **Count:** 10 items (data-driven refresh 2026-04-10); adjust after future GSC/SISTRIX sprints, not arbitrary inflation.
- **LP card-grid pages (separate SSOT):** `v2/data/landing-transparency-faq-items.php` — `ordio_landing_transparency_faq_items()` for `v2/sections/partials/landing-transparency-faq-section.php` (e.g. legacy landingpages, `kostenlos-testen`). Editing the homepage file does **not** change LP FAQs.
- **Markup:** Shared component `v2/components/site-faq-section.php` (same accordion shell as feature pages, e.g. `/schichtplan`): centered H2 “Häufige Fragen zu/zur/zum …”, `<details>` rows, `id="faq"` on `<section>`.
- **FAQ H2 (homepage):** `Häufige Fragen zu Ordio` — `$site_faq_zu_zur_zum = 'zu'` and `$site_faq_topic_plain = 'Ordio'` (brand-first, short; umbrella terms like “Personalsoftware” stay in `<title>`, meta, and answers, not stacked in the section heading).
- **Variables set in `start-v2.php` before include:** `$site_faq_items`, `$site_faq_zu_zur_zum`, `$site_faq_topic_plain`, `$site_faq_h2_id`, `$site_faq_section_aria_labelledby`, `$site_faq_answer_mode` (`blog_sanitize`). Optional homepage-only HTML answers: `ordio_homepage_faq_answer_overrides()` (e.g. richer anchor to `/preise`); JSON-LD reuses the same map.
- **FAQPage JSON-LD:** Emitted **once**, **after** `footer.php`, via `ordio_echo_homepage_faq_jsonld_script('https://www.ordio.com/')` in `v2/helpers/faq-jsonld.php` (`ordio_echo_landing_transparency_faq_jsonld_script()` remains a deprecated alias). The FAQPage node `@id` is `https://www.ordio.com/#faq` (aligned with visible `id="faq"`). **Not** duplicated in `<head>` `@graph`.

**Homepage topic order (2026-04):** Was ist Ordio? · Für wen eignet sich Ordio? · Welche Themen (Schichtplan, Zeiterfassung, HR)? · Kostenloser Test · Abrechnung pro Standort · Monatliche Kündigung · Mitarbeiter-Apps · Administratoren / Rollen · Produktvorführung (`/demo-vereinbaren`) · Daten an Steuerberatung / DATEV

**Other templates:** Select landing pages use the **card grid + search** partial with **`landing-transparency-faq-items.php`** only; the **root homepage** uses **`homepage-faq-items.php`**.

### Supporting sections (detail)

- **Social proof — trust card:** `v2/sections/social-proof-trust-card.php` + `v2/data/social-proof-trust-section.php` (do not duplicate markup).
- **Reporting insights:** Validation `php v2/scripts/dev-helpers/verify-reporting-insights-section.php`.

## Hero vs title (SEO tradeoff)

- **Chosen approach:** Keep the animated English H1 for brand and product marketing; **German** commercial and category terms are concentrated in **title, meta, WebPage schema, OG, and FAQs** to avoid cannibalization with Funktionen URLs and to preserve the hero design.
- **If** a future sprint needs more visible German keywords above the fold, scope a minimal **subheading or static line** with design sign-off (do not duplicate full feature-page H1s on `/`).

## Content Strategy

### Messaging

**Primary Message:** "Die All-in-one [Schichtplanung/Zeiterfassung/etc.] - Mehr Zeit fürs Wesentliche"

**Value Proposition:**

- "Mit Ordio ist es kinderleicht dein Personal in Minuten zu organisieren"
- All-in-one platform for workforce management
- Suitable for all industries, branches, and sizes

**Key Benefits:**

- Quick setup (minutes)
- Easy to use (kinderleicht)
- Comprehensive (All-in-one)
- Time-saving (Mehr Zeit fürs Wesentliche)
- Flexible (all industries and sizes)

### SEO Focus

**Primary / umbrella keywords:** see `data/target-keywords.json` and `data/KEYWORD_DECISION.md`. Feature-level head terms belong on Funktionen pages.

**Meta / OG / WebPage (`start-v2.php`):** Aligned `<title>`, `meta name="description"`, `apple-mobile-web-app-title`, Open Graph + Twitter via `render_og_meta_tags()` and `get_og_image_for_page('homepage', ...)`, and WebPage `name` / `description` in head JSON-LD.

**OG image alt (homepage):** Set alongside `get_og_image_for_page` in `start-v2.php` (e.g. “Ordio – Personalsoftware für Schichtplanung und Zeiterfassung”).

**Robots:** `index, follow` on `/` (`start-v2.php`).

**Target Intent:**

- Informational (what is Ordio?)
- Commercial (workforce / HR software)
- Brand (Ordio)

## Technical Implementation

### PHP Configuration

**Session & Period:**

```php
session_start();
```

**URL Parameters:** `partner`, `title`, `typewriter`, `pinkline`, `blueline`, `subheadline`, `herotype`, `land`, etc. (see source).

**Header:** `$textcolor_darkmode`, `include base/header.php`

**Scripts:** AOS, Swiper (see `$aosScript`, `$swiperScript` in file)

### JavaScript Features

**Typewriter Effect:** Rotating headline terms (configurable).

**AOS Animations:** Applied to hero and sections as in source.

**Homepage FAQ:** Native `<details>` / `<summary>` in `site-faq-section.php` — no Alpine `searchableContent` on `/`.

### CSS Classes

Hero and layout classes as in `start-v2.php` (Gilroy, responsive breakpoints, `max-w-*` containers).

## Schema Markup

- **`<head>` `@graph`:** `WebPage` + `BreadcrumbList` only (`start-v2.php`), built with `json_encode()` from `$ordio_homepage_seo_*` + `$ordio_homepage_canonical_url` (same copy as meta/OG). WebSite / Organization may appear via `base/head.php` or global graph patterns — **do not** add a second FAQPage in `<head>`.
- **FAQPage:** Single post-footer script from `ordio_echo_homepage_faq_jsonld_script()`; `@id` `https://www.ordio.com/#faq`.

### Rich Results Test (manual QA)

After FAQ or JSON-LD changes, validate production: [Google Rich Results Test](https://search.google.com/test/rich-results) on `https://www.ordio.com/`. Commercial FAQ rich results may be limited; still verify valid JSON-LD and no errors.

**Checklist (run after deploy):** URL `https://www.ordio.com/` — confirm FAQPage parses (post-footer script), WebPage/BreadcrumbList in `<head>` `@graph` (from `start-v2.php`) + Organization/WebSite from `base/head.php` show no duplicate FAQPage in head. **Repo audit:** `php v2/scripts/dev-helpers/audit-faq-jsonld-context.php` (OK as of 2026-04-10). Homepage FAQ SSOT is PHP (`homepage-faq-items.php`), not `verify-faq-jsonld-parity.php` JSON files — parity is by construction via `ordio_echo_homepage_faq_jsonld_script()`.

## Performance (Core Web Vitals)

**Homepage-specific:** Hero image preload in `<head>` (`ordio-plan-screenshot.webp`, `fetchpriority="high"`). Broader CWV targets: see `.cursor/rules/homepage.mdc`.

**Lighthouse (local `http://localhost:8003/`, 2026-04-10, Headless Chrome):**

| Metric | Mobile | Desktop |
|--------|--------|---------|
| Performance score | 0.72 | 0.58 |
| LCP | ~7.2 s | ~8.3 s |
| CLS | ~0.009 | ~0.009 |
| SEO (mobile) | 1.0 | — |

**Notes:** LCP is dominated by hero/visual weight on a cold local run; production CDN/TTFB may differ. CLS is strong. Re-run after hero or script changes; compare production PSI when possible.

## Maintenance Requirements

### Data and SEO pipeline (quarterly recommended)

1. Refresh global static GSC + GA4 per [DATA_COLLECTION_STATIC_SITE.md](../static-pages/DATA_COLLECTION_STATIC_SITE.md).
2. `split-static-gsc-to-registry-pages.php` → `data/performance-gsc.json`.
3. `collect-tool-gsc-queries.php --path=/` → `data/gsc-queries.json`.
4. `collect-page-keywords-sistrix.php --page=homepage` → `data/keywords-sistrix.json`.
5. Optional: `collect-feature-page-keyword-serp.php --page=homepage` → `data/sistrix-keyword-serp.json`.
6. `generate-static-data-synthesis.php --page=homepage` → `DATA_DRIVEN_SYNTHESIS.generated.md`.
7. Update `data/target-keywords.json` + `data/KEYWORD_DECISION.md` when changing strategy.

**Optional VIP (credits):** `collect-marketing-page-domain-kw-serp.php --page=homepage` — document spend in `KEYWORD_DECISION.md` per [VIP_MARKETING_SEO_DATA_TIERS.md](../marketing-pages/VIP_MARKETING_SEO_DATA_TIERS.md).

### Post-deploy monitoring

**4–8 weeks** after material homepage changes: compare GSC (or `performance-gsc.json` after refresh) for path `/` — clicks, impressions, average position for priority queries listed in `KEYWORD_DECISION.md` / `gsc-queries.json`.

### Content and technical checks

- FAQ copy: quarterly or when product/pricing changes.
- CTAs, modals, partner params: smoke test after header/footer changes.
- FAQ JSON-LD audits: `php v2/scripts/dev-helpers/audit-faq-jsonld-context.php`; parity tools as documented in `DATA_COLLECTION_STATIC_SITE.md`.

## URL Parameter Reference

### Partner Logos

Supported partners include: `kassenprofis`, `mconsultings`, `3POS`, `der-paritaetische-gesamtverband`, `hitzel-it-solutions`, `top-magazin`, `gastroberatung` (see source for full list).

**Usage:** `https://www.ordio.com/?partner=kassenprofis`

### Custom Content

`?title=`, `?typewriter=`, `?blueline=`, `?pinkline=`, `?subheadline=`, `?herotype=split` — see inline comments in `start-v2.php`.

## Variants and Legacy Files

### Active public homepage (`/`)

**`v2/start-v2.php`** — Canonical homepage for `https://www.ordio.com/`. Full URL-parameter support for hero experiments; FAQ accordion + data file as above.

### Alternate entry (not `/`)

**`v2/pages/landingpage.php`** — Used for `/v2/` routes and variants; may include the **card-grid** transparency FAQ partial; **not** the root homepage.

### Legacy

`landingpage_v3.php`, `landingpage_v4.php`, `landingpage_v2-alt.php`, `landingpageurlgenerator.php` — legacy or internal; confirm `.htaccess` before use.

## Related Documentation

- **[Homepage Inventory](HOMEPAGE_INVENTORY.md)** — files and registry
- **[KEYWORD_DECISION.md](data/KEYWORD_DECISION.md)** — keyword strategy and GSC themes
- **[DATA_COLLECTION_STATIC_SITE.md](../static-pages/DATA_COLLECTION_STATIC_SITE.md)** — pipelines
- **[Product Pages](../product-pages/)** / **[Industry Pages](../industry-pages/)** — internal linking targets

## Related Cursor Rules

- **[homepage.mdc](../../../../.cursor/rules/homepage.mdc)**
- **[shared-patterns.mdc](../../../../.cursor/rules/shared-patterns.mdc)**
- **[global.mdc](../../../../.cursor/rules/global.mdc)**
