web: Jahresarchiv je Branche, Kategoriebeschreibungen, Portalname im Titel (Roadmap 2.3)
- /de/category/{slug}/archiv/{jahr} (CategoryArchivePageData,
CategoryArchiveController, View kategorie-archiv): 30 Meldungen je
Seite, neueste zuerst, Jahresleiste mit Zahlen; ohne Jahr das juengste
Jahr mit Meldungen. Canonical mit ?page=N auf Folgeseiten, hreflang
nur auf Seite 1, CollectionPage + BreadcrumbList. Gecacht bis Seite 3.
Leere Jahre, unbekannte Kategorien, leere Folgeseiten: 404.
- Branchenseite: Jahresleiste unter dem Feed (archiveYears, eine
gruppierte Query); Sitemap listet alle Jahresarchive.
- categories:seed-descriptions {--dry-run} {--force}: fuellt leere DE/EN
Beschreibungen aus database/seeders/data/category-descriptions.php
(14 Kategorien, sachlich, ohne Werbeaussagen), leert den Seiten-Cache.
- Branchenseite: Titel trug config('app.name') ("– pressekonto") statt
des Portalnamens — jetzt presseecho/businessportal24.
- Protokoll Teil 5 (2.3 mit Befund: 0 von 14 Beschreibungen, Sonstiges =
28 % des Bestands), Roadmap 2.3 abgehakt.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
b60a28dc9c
commit
4616bb7aad
15 changed files with 793 additions and 13 deletions
|
|
@ -1616,6 +1616,50 @@ zwischen Meldung und Newsroom) ist der zweite Teil von 2.7.
|
|||
|
||||
Tests: `LlmsTxtTest` (2).
|
||||
|
||||
### 2.3 — Branchen-Landingpages aus dem Archivbestand (17.09.2026)
|
||||
|
||||
**Befund (Dev-DB = Live-Kopie):** 34.597 sichtbare Meldungen seit 2008
|
||||
(presseecho 12.587, businessportal24 22.010), 14 Hauptkategorien ohne
|
||||
Unterkategorien. Die Branchenseiten (`/de/category/{slug}`) existieren
|
||||
seit Juli mit Lead/Top/Feed, Statistik, Newsrooms — zeigen aber nur die
|
||||
jüngsten ~15 Meldungen. Der Bestand hing nur an der Sitemap, nicht an
|
||||
internen Links. Dazu: **0 von 14 Kategorien haben eine Beschreibung**,
|
||||
alle Branchenseiten zeigten denselben Standardsatz (14 gleich aussehende
|
||||
Seiten); und der Seitentitel hieß auf beiden Spokes „– pressekonto"
|
||||
(`config('app.name')` statt Portalname) — behoben.
|
||||
„Sonstiges" trägt 9.607 Meldungen (28 %), ist also keine Branche, sondern
|
||||
der Sammelposten; das ist ein Einlieferungs-Thema, kein Seitenthema.
|
||||
|
||||
**Umsetzung:**
|
||||
1. **Jahresarchiv je Branche** — `/de/category/{slug}/archiv/{jahr}`
|
||||
(`CategoryArchivePageData`, `CategoryArchiveController`, View
|
||||
`kategorie-archiv`): 30 Meldungen je Seite, neueste zuerst, Datum mit
|
||||
Jahr, Firma, Rubrik; Jahresleiste mit Zahlen; ohne Jahr das jüngste
|
||||
Jahr mit Meldungen. Jahr statt fortlaufender Seitennummer, weil eine
|
||||
Jahresseite ihren Inhalt behält, während `?page=2` bei jeder neuen
|
||||
Meldung verrutscht. Canonical mit `?page=N` auf Folgeseiten (der
|
||||
Layout-Default hätte auf Seite 1 kanonisiert), hreflang nur auf Seite 1,
|
||||
CollectionPage + BreadcrumbList als JSON-LD. Gecacht bis Seite 3 je
|
||||
Jahr (Schutz gegen Cache-Aufblähung wie bei den Newsrooms). Leere
|
||||
Jahre, unbekannte Kategorien und leere Folgeseiten sind 404.
|
||||
2. **Jahresleiste auf der Branchenseite** unter dem Feed
|
||||
(`archiveYears`, eine gruppierte Query), und alle Jahresarchive in der
|
||||
Sitemap (14 × ~18 Jahre ≈ 250 URLs).
|
||||
3. **Beschreibungen:** `categories:seed-descriptions {--dry-run}
|
||||
{--force}` füllt leere DE/EN-Beschreibungen aus
|
||||
`database/seeders/data/category-descriptions.php` (je 2–3 Sätze:
|
||||
Themenumfang und wer dort veröffentlicht, ohne Werbeaussagen). Nur
|
||||
leere Felder, danach in Admin ▸ Kategorien änderbar. Dry-Run auf der
|
||||
Dev-DB: alle 14 Kategorien gefunden.
|
||||
|
||||
Tests: `CategoryArchiveTest` (5), `SeedCategoryDescriptionsTest` (2);
|
||||
`tests/Feature/Web` komplett grün (305).
|
||||
|
||||
**Live:** `php artisan categories:seed-descriptions --dry-run`, dann ohne
|
||||
Flag. Bewusst nicht gebaut: Landingpages unterhalb der Kategorien
|
||||
(„Branchen" im engeren Sinn) — dafür gibt es keine Unterkategorien und
|
||||
keine Daten; die Meldungen tragen nur die 14 Hauptkategorien.
|
||||
|
||||
### Befund zu 2.5 / E5
|
||||
|
||||
Die alte Ratgeber-Strecke `/de/presse/*.html` leitet seit dem Rückbau
|
||||
|
|
@ -1627,6 +1671,8 @@ Empfehlung: ja für Slugs, die erkennbar das Schreiben betreffen, sonst
|
|||
FAQ. Braucht die Liste der Alt-Slugs aus dem Webserver-Log oder der
|
||||
Search Console; ohne die bleibt es bei FAQ.
|
||||
|
||||
**Deploy:** kein `migrate`, nur `view:cache`/`route:cache` wie üblich.
|
||||
Danach `/sitemap-news.xml`, `/llms.txt` und eine Meldung im
|
||||
Rich-Results-Test (search.google.com/test/rich-results) prüfen.
|
||||
**Deploy (2.1/2.2/2.3/2.7):** kein `migrate`, `view:cache`/`route:cache`
|
||||
wie üblich, dann `categories:seed-descriptions`. Danach
|
||||
`/sitemap-news.xml`, `/llms.txt`, `/de/category/handel/archiv/2019` und
|
||||
eine Meldung im Rich-Results-Test (search.google.com/test/rich-results)
|
||||
prüfen.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue