web: Entitaeten im JSON-LD verknuepft, News-Sitemap und llms.txt (Roadmap 2.1, 2.2, 2.7)
- 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>
This commit is contained in:
parent
8cd76df0bb
commit
b60a28dc9c
15 changed files with 521 additions and 23 deletions
|
|
@ -6,9 +6,11 @@ use App\Http\Controllers\Web\CategoryController;
|
|||
use App\Http\Controllers\Web\ContactController;
|
||||
use App\Http\Controllers\Web\HomeController;
|
||||
use App\Http\Controllers\Web\LegacyMediaRedirectController;
|
||||
use App\Http\Controllers\Web\LlmsTxtController;
|
||||
use App\Http\Controllers\Web\NewsroomClaimController;
|
||||
use App\Http\Controllers\Web\NewsroomDetailController;
|
||||
use App\Http\Controllers\Web\NewsroomsController;
|
||||
use App\Http\Controllers\Web\NewsSitemapController;
|
||||
use App\Http\Controllers\Web\PreiseController;
|
||||
use App\Http\Controllers\Web\PressReleaseAttachmentMediaController;
|
||||
use App\Http\Controllers\Web\PressReleaseImageMediaController;
|
||||
|
|
@ -307,9 +309,12 @@ Route::prefix('{edition}')->whereIn('edition', SetEdition::EDITIONS)->group(func
|
|||
// verschattet (Webserver liefert existierende Dateien direkt aus).
|
||||
// ---------------------------------------------------------------------------
|
||||
Route::get('/sitemap.xml', SitemapController::class)->name('sitemap');
|
||||
Route::get('/sitemap-news.xml', NewsSitemapController::class)->name('sitemap.news');
|
||||
Route::get('/llms.txt', LlmsTxtController::class)->name('llms');
|
||||
|
||||
Route::get('/robots.txt', function () {
|
||||
$base = rtrim(request()->getSchemeAndHttpHost(), '/');
|
||||
$isHub = str_contains(request()->getHost(), 'pressekonto');
|
||||
|
||||
$lines = [
|
||||
'User-agent: *',
|
||||
|
|
@ -320,6 +325,8 @@ Route::get('/robots.txt', function () {
|
|||
'Disallow: /en/suche',
|
||||
'',
|
||||
'Sitemap: '.$base.'/sitemap.xml',
|
||||
// News-Sitemap nur auf den Spokes — der Hub hat keine Meldungen.
|
||||
...($isHub ? [] : ['Sitemap: '.$base.'/sitemap-news.xml']),
|
||||
'',
|
||||
];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue