- App\Support\StructuredData: Portal-Organization als Publisher mit @id
und Logo (ImageObject), Newsroom-@id; NewsArticle.author auf der
Meldung und Organization auf der Newsroom-Seite beschreiben jetzt
dieselbe Entitaet. Startseiten nutzen denselben Publisher.
- /sitemap-news.xml je Spoke (NewsSitemapController): im Archiv
sichtbare Meldungen der letzten 48 h, max. 1.000, news:publication
mit Portalname und Sprache; 15 min gecacht, mit den anderen Sitemaps
geleert; in robots.txt der Spokes. Hub liefert leere Liste.
- /llms.txt je Host (LlmsTxtController): sachliche Beschreibung,
URL-Aufbau, aktive Kategorien, Seiten fuer Unternehmen, Rechtliches;
Hub verweist auf beide Portale. Keine Aussagen ueber KI-Nennungen.
- Protokoll Teil 5 (Block 2) inkl. Betreiber-Schritten fuer das
Publisher Center und Befund zu 2.5/E5; Roadmap 2.1/2.7 abgehakt.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Ergänzt die bislang fehlenden strukturierten Daten auf den Presse-Seiten:
- PM-Detailseite: NewsArticle + BreadcrumbList als JSON-LD sowie
article:published_time/-section/-tag-Metas und og:image:alt — nur auf
der öffentlichen Seite, die noindex-Vorschau bleibt ohne Markup.
- Kategorie-Seiten: BreadcrumbList plus hreflang de/en über die
lokalisierten Slugs (CategoryPageData liefert dafür neu
categoryAlternateSlugs, mit View-Fallback für gecachte Alt-Daten).
- Newsroom: Organization-Markup (Logo, Website als sameAs, Boilerplate).
- Portal-Homepages: WebSite mit SearchAction (Sitelinks-Searchbox) und
Organization.
- Layout: og:locale und twitter:image ergänzt; neue Sections meta_extra
und structured_data.
Neue Komponente x-web.structured-data rendert JSON-LD mit JSON_HEX_TAG,
damit "</script>" in Titeln/Teasern das Script-Tag nicht aufbrechen kann.
JSON-LD-URLs werden wie der Canonical aus der Portal-Basis gebaut
(unabhängig von forceRootUrl), damit Host und Canonical übereinstimmen.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>