SEO/GEO-Basics: Descriptions & Titles normalisiert, Outline-Fixes, CLS-Maße

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>
This commit is contained in:
2026-07-05 00:27:19 +02:00
parent 3d8ded28da
commit 819bdf6173
20 changed files with 57 additions and 17 deletions

View File

@@ -10,8 +10,8 @@ $page = json_load('sportheimbuchung');
$club = json_load('club');
$meta = [
'title' => 'Sportheim mieten TSV 08 Kulmbach',
'description' => 'Das Sportheim auf der Hans-Rausch-Sportanlage in Kulmbach für Feiern und Veranstaltungen mieten Küche, Außenbereich und Beamer optional. Jetzt unverbindlich anfragen.',
'title' => 'Sportheim mieten in Kulmbach',
'description' => 'Das Sportheim auf der Hans-Rausch-Sportanlage in Kulmbach für Feiern und Veranstaltungen mieten Küche, Außenbereich, Beamer optional. Jetzt anfragen.',
'og_image' => 'img/pages/sportheim-2.jpg',
'schema' => page_schema(
[
@@ -30,6 +30,7 @@ component('hero', ['hero' => $page['hero']]);
<?php /* === argumente === */ ?>
<section class="section sponsor-arguments" id="ausstattung">
<div class="container">
<h2 class="visually-hidden"><?= e($page['features']['title']) ?></h2>
<ul class="sponsor-arguments__grid" role="list">
<?php foreach ($page['features']['items'] as $item): ?>
<li class="sponsor-arguments__item">