diff --git a/app/components/jsonld.php b/app/components/jsonld.php index 92503bc..86006d8 100644 --- a/app/components/jsonld.php +++ b/app/components/jsonld.php @@ -37,6 +37,10 @@ $clubNode = [ 'latitude' => $club['geo']['lat'], 'longitude' => $club['geo']['lng'], ], + 'areaServed' => [ + ['@type' => 'City', 'name' => $club['address']['city']], + ['@type' => 'AdministrativeArea', 'name' => 'Landkreis ' . $club['address']['city']], + ], ]; $graph = [ diff --git a/app/components/meta.php b/app/components/meta.php index 2312df2..f007cfb 100644 --- a/app/components/meta.php +++ b/app/components/meta.php @@ -34,6 +34,7 @@ $scripts = array_merge(['nav.js', 'back-to-top.js'], $meta['scripts'] ?? []); + diff --git a/app/helpers.php b/app/helpers.php index 96914bc..b5e0e2e 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -267,6 +267,24 @@ function page_schema(array $breadcrumb, array $faq = []): array return $nodes; } +/** + * WebSite-Knoten (für die Startseite): definiert die Site als Entität und + * verweist via publisher auf den Club (#club). Keine SearchAction — es gibt + * keine Site-Suche. + */ +function website_schema(): array +{ + $club = json_load('club'); + return [ + '@type' => 'WebSite', + '@id' => abs_url() . '#website', + 'url' => abs_url(), + 'name' => $club['name'], + 'inLanguage' => 'de-DE', + 'publisher' => ['@id' => abs_url() . '#club'], + ]; +} + /** * Schema-Knoten für eine Mannschafts-Seite: SportsTeam (verweist auf den Club * via #club) + Breadcrump (Start → Fußball → Team) + optional FAQPage. diff --git a/app/pages/home.php b/app/pages/home.php index 3b72f0f..c847d57 100644 --- a/app/pages/home.php +++ b/app/pages/home.php @@ -14,6 +14,7 @@ $meta = [ 'title_absolute' => true, 'description' => 'Dein Sportverein für Fußball und Turnen in Kulmbach: Jugend-, Herren- und Damenfußball, Turnen und Trampolin – seit 1908 im Katzbachtal. Jetzt Mitglied werden!', 'scripts' => ['form.js', 'carousel.js'], + 'schema' => [website_schema()], ]; component('hero', ['hero' => $home['hero']]); diff --git a/app/pages/team-damen.php b/app/pages/team-damen.php index ce68c04..8988df9 100644 --- a/app/pages/team-damen.php +++ b/app/pages/team-damen.php @@ -10,7 +10,7 @@ $team = json_load('teams')['damen']; $meta = [ 'title' => 'Damenmannschaft – Damenfußball Kulmbach', - 'description' => $team['hero']['text'], + 'description' => 'Frauen- und Mädchenfußball beim TSV 08 Kulmbach: Ob erfahren oder Wiedereinsteigerin – im Katzbachtal findest du dein Team. Komm zum Probetraining.', 'og_image' => $team['hero']['image']['base'] . '-1600.jpg', 'schema' => team_schema($team, $slug), ]; diff --git a/app/pages/team-erste.php b/app/pages/team-erste.php index b8cd5ed..12e92b6 100644 --- a/app/pages/team-erste.php +++ b/app/pages/team-erste.php @@ -10,7 +10,7 @@ $team = json_load('teams')['erste-mannschaft']; $meta = [ 'title' => '1. Mannschaft – Herrenfußball Kreisklasse Kulmbach', - 'description' => $team['hero']['text'], + 'description' => 'Die erste Herrenmannschaft des TSV 08 Kulmbach spielt auf Kreisklasse-Niveau – ambitioniert und mit echtem Vereinsgeist. Komm vorbei und spiel mit.', 'og_image' => $team['hero']['image']['base'] . '-1600.jpg', 'schema' => team_schema($team, $slug), ]; diff --git a/app/pages/team-zwei.php b/app/pages/team-zwei.php index d2d3240..019bf4f 100644 --- a/app/pages/team-zwei.php +++ b/app/pages/team-zwei.php @@ -10,7 +10,7 @@ $team = json_load('teams')['zweite-mannschaft']; $meta = [ 'title' => '2. Mannschaft – Herrenfußball Kulmbach', - 'description' => $team['hero']['text'], + 'description' => 'Die zweite Herrenmannschaft des TSV 08 Kulmbach spielt in Spielgemeinschaft mit dem TSV Melkendorf – Fußball mit Spaß für alle, die gern kicken.', 'og_image' => $team['hero']['image']['base'] . '-1600.jpg', 'scripts' => (count($team['contact_names'] ?? []) > 1) ? ['contact-slider.js'] : [], 'schema' => team_schema($team, $slug),