Audit aller 23 indexierbaren Routen (lokaler Crawl) und Fixes: - Descriptions auf ~130-160 Zeichen; Turnen-Disziplinseiten hatten den kurzen Hero-Teaser als Description, jetzt eigene SERP-Texte - Titles: team-erste gekürzt, sportheimbuchung ohne doppelten Brand - h1->h3-Sprünge behoben: visually-hidden h2 aus JSON-Section-Titeln (sportheimbuchung, partner-werden), sichtbarer choice.title auf mitglied-werden; historie bekommt Breadcrumb-Schema - Neuer Helper img_intrinsic_attrs() liefert width/height aus der Bilddatei (PNG via getimagesize, SVG via viewBox) für Partner-Grid- und Banner-Slider-Logos — kein Layout-Shift mehr Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
29 lines
1.1 KiB
PHP
29 lines
1.1 KiB
PHP
<?php
|
||
|
||
declare(strict_types=1);
|
||
|
||
/**
|
||
* Turnen → Step Aerobic, Fitness & Pilates. Inhalt: data/turnen.json
|
||
* (disciplines.step-aerobic-fitness-pilates). Struktur: Hero → Kurse/Zeiten → CTA.
|
||
*/
|
||
$slug = 'turnen/step-aerobic-fitness-pilates';
|
||
$d = json_load('turnen')['disciplines']['step-aerobic-fitness-pilates'];
|
||
|
||
$meta = [
|
||
'title' => 'Step Aerobic, Fitness & Pilates in Kulmbach',
|
||
'description' => 'Ausdauer, Kräftigung und Beweglichkeit für Erwachsene – Step Aerobic, Fitness & Pilates beim TSV 08 Kulmbach in der Max-Hundt-Schule. Zeiten und Kontakt.',
|
||
'og_image' => 'img/hero/hero-1600.jpg',
|
||
'schema' => page_schema([
|
||
['name' => 'Startseite', 'slug' => ''],
|
||
['name' => 'Turnen', 'slug' => 'turnen'],
|
||
['name' => 'Step Aerobic, Fitness & Pilates', 'slug' => $slug],
|
||
]),
|
||
];
|
||
|
||
component('hero', ['hero' => $d['hero']]);
|
||
component('group-schedule', [
|
||
'groupsTitle' => 'Unsere Kurse',
|
||
'location' => $d['location'] ?? [],
|
||
'lead' => $d['lead'] ?? '',
|
||
'groups' => $d['groups'] ?? [],
|
||
]); |