## 1. Hauptnavigation (rechts oben) | Seite | Link | Dahinter | Relaunch | | ------------- | ----------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------- | | Home | `/` | Startseite | **Portal** | | Registrierung | `/de/registration.html` | Account-Anlage | → **Hub** (pressekonto) | | Login | `/de/login.html` | Anmeldung | → **Hub** (Sanctum, kein eigener Login am Portal) | | Preisliste | `/de/pricelist.html` | Tarife | → **Hub** (neue Tarifstruktur Einzel/Starter/…/Agency) | | Service | `/de/service.html` | Leistungsübersicht / Verkaufsseite | wird zu veroeffentlichen | | Kontakt | `/de/contact.html` | Kontakt | **Portal** + Hub (auch hier muss deutlich werden, dass der Hub das ganze Backend System ist) | ## 2. Region/Sprache | Variante | Link | Relaunch | | ------------ | -------- | ---------- | | Deutsch | `/` | **Portal** | | Deutsch (CH) | `/de-ch` | raus | | Deutsch (AT) | `/de-at` | raus | | English | `/en` | Portal | ## 3. „Presse"-Dropdown — Ratgeber/SEO-Content (12 Seiten) Das ist editorial wertvollster Teil: statische Ratgeber-Seiten, die wahrscheinlich organischen Long-Tail-Traffic ziehen. |Seite|Link| |---|---| |Pressemitteilung schreiben|`/de/presse/pressemitteilung-schreiben.html`| |Aufbau Pressemitteilung|`/de/presse/pressemitteilung-aufbau.html`| |Pressemitteilung Nutzen & Einsatz|`/de/presse/pressemitteilung-nutzen.html`| |Pressemappe|`/de/presse/pressemappe.html`| |Redakteure & Journalisten|`/de/presse/redakteure-journalisten.html`| |Pressemitteilung Beispiel|`/de/presse/pressemitteilung-beispiel.html`| |Pressekonferenz|`/de/presse/pressekonferenz.html`| |Deutsche Presse Agentur|`/de/presse/deutsche-presseagentur.html`| |Redaktion|`/de/presse/redaktion.html`| |Pressestelle|`/de/presse/pressestelle.html`| |Pressesprecher|`/de/presse/pressesprecher.html`| |Presseausweis|`/de/presse/presseausweis.html`| **Relaunch:** Diese URLs unbedingt 1:1 erhalten oder sauber 301-redirecten — hier steckt der SEO-Wert. Editorial passen sie zu beiden Portalen, ggf. sogar besser zu presseecho (Kontexttiefe). Entscheidung offen, wo sie inhaltlich angesiedelt werden. Hier würde ich eine FAQ Seite machen, die alle Themen beinhaltet und sauber 301-redirectet ## 4. Kategorien (14 Stück) `/de/category/{slug}.html` — Listenseiten je Themenrubrik: Handel · IT · Finanzen · Reisen · Kultur · Politik · Medizin · Sport · Motor/Verkehr · Haus · Mode · Sonstiges · Wissenschaft/Forschung · Recht **Relaunch:** Diese Kategoriestruktur ist die Backbone für Migration + Boost-Logik (Kategorieseiten sind Teil deiner Boost-Platzierung). Beim Relaunch zu prüfen: Übernimmst du alle 14 unverändert, oder konsolidierst du? „Sonstiges" als Auffangbecken ist für deine Content-Score-/Trust-Logik suboptimal. ## 5. Content-/Detailseiten (die eigentlichen Templates) |Typ|URL-Muster|Funktion|Relaunch| |---|---|---|---| |PM-Detailseite|`/de/{slug}.html`|Einzelne Pressemitteilung|**Portal** — Kern-Template| |Kategorie-Liste|`/de/category/{slug}.html`|PMs je Rubrik, paginiert|**Portal**| |Pressemappe (Presskit)|`/de/presskit/{id}/{slug}.html`|Firmenprofil + alle PMs der Firma|**Portal** = deine „Firmen-Detailseite"| |Stream + Paginierung|`/de?page=N`|732 Seiten Archiv|**Portal** — aber Paginierungs-/Indexierungsstrategie überdenken| Die Presskit-Seite entspricht funktional exakt deiner geplanten **Firmen-Detailseite** (Header, Stammdaten, Boilerplate, Kontakt, gefilterte PM-Liste). Gutes Mapping — du baust das also nicht neu, sondern modernisierst ein bestehendes Konstrukt. ## 6. Footer / Legal | Seite | Link | Relaunch | | ----------- | ------------------------ | -------------------------------------------------- | | Impressum | `/de/imprint.html` | **Portal** + Hub (pflicht, pro Domain) | | AGB | `/de/terms.html` | **Hub** (Vertragsbeziehung läuft über pressekonto) | | Datenschutz | `/de/privacypolicy.html` | **Portal** + Hub | --- ## Einordnung für den Relaunch Wenn ich das gegen deine Hub-and-Spoke-Architektur lege, fällt die Seitenmenge in drei klare Eimer: **Bleibt am Portal (businessportal24.com & presseecho.de = öffentlicher Spoke):** Home/Stream, PM-Detail, Kategorie-Listen, Pressemappe/Firmen-Detail, Ratgeber-Seiten, Impressum, Datenschutz, Kontakt. **Wandert in den Hub (pressekonto):** Registrierung, Login, Preisliste/Tarife, AGB, und alles dahinter (PM erstellen, Pressemappe anlegen, Account). Das deckt sich mit deinem Prinzip „Portale haben keine eigenen Login-Systeme". --- ## Relaunch-Mapping der Bestands-URLs (IST 17.06.2026) Alle Alt-URLs werden per **301** auf die neue Struktur geleitet (Implementierung in `routes/web.php`, Closure `$htmlRedirect` + Regions-Routen; Test: `tests/Feature/Web/LegacyRedirectTest.php`). Die neue Struktur liegt unter dem Ausgaben-Präfix `/{de|en}/…`. | Alt-URL (Altsystem) | Ziel (301) | Status | | ------------------------------------ | ---------------------------------- | ------ | | `/` | `/de` (Default-Ausgabe) | ✅ | | `/de/{slug}.html` (PM) | `/de/press-release/{slug}` | ✅ | | `/de/category/{slug}.html` | `/de/category/{slug}` | ✅ | | `/de/presskit/{id}/{slug}.html` | `/de/newsroom/{slug}` *(Lookup über `companies.legacy_id`; Fallback `/newsrooms`)* | ✅ | | `/de/presse/*.html` (12 Ratgeber) | `/de/faq` (konsolidiert) | ✅ | | `/de/pricelist.html` | `/de/preise` | ✅ | | `/de/service.html` | `/de/veroeffentlichen` | ✅ | | `/de/contact.html` | `/de/kontakt` | ✅ | | `/de/imprint.html` | `/de/impressum` | ✅ | | `/de/terms.html` | `/de/agb` | ✅ | | `/de/privacypolicy.html` | `/de/datenschutz` | ✅ | | `/de/registration.html` | Hub `pressekonto/register` | ✅ | | `/de/login.html` | Hub `pressekonto/login` | ✅ | | `/de/kategorien.html` (Übersicht) | `/de` (Übersicht entfällt) | ✅ | | `/de-ch`, `/de-at` (+ Subpfade) | `/de` | ✅ | **Bewusst auf später verschoben (eigene Slice):** - **Regionen-Übersichten** `/region/{slug}` (Punkt 3 der öffentlichen Strecke) – aktuell leiten nur die entfallenen Sprachvarianten `de-ch`/`de-at` auf `/de`. - **Tarife/AGB im Hub**: `pricelist` zeigt vorerst auf die öffentliche SEO-Seite `/preise`; die buchbare Tarifstruktur (Checkout) lebt im Hub. **Erledigtes Feinmapping:** - **Presskit→Newsroom**: `presskit/{id}/{slug}` löst über den Unique-Index `companies.(legacy_portal, legacy_id)` den heutigen Newsroom auf und leitet 301 direkt auf `/newsroom/{slug}` (nur bei aktiver Firma mit ≥1 veröffentlichter Meldung; sonst Fallback `/newsrooms`). - **Preise datengetrieben & überall sichtbar**: Tarif-Teaser auf der Startseite aus `Plan::active()` (`x-web.pricing-teaser`); Preise-Link in Header-Utility-Bar und Footer. Test: `tests/Feature/Web/PricingTeaserTest.php`. - **Statische Seiten im Editorial-Design** (Rebuild abgeschlossen): Pflicht- seiten `impressum`, `datenschutz`, `agb`, `cookies` (Prosa über `.pm-body`) sowie `faq` (natives `
`-Akkordeon), `hilfe` (Support-Landing), `kontakt` (Kontaktwege; Formular wartet auf POST-Handler — als TODO markiert), `ueber-uns` (Kennzahlen/Mission/Werte/Team/Timeline) und `api` (Features/Code-Beispiel/Integrationen). Tote Doku-/Anker-Links durch echte Ziele bzw. Hinweise ersetzt. Gemeinsames Gerüst: `x-web.static-page`. - **Header/Footer-Linkpflege**: `site-header`/`site-footer` ohne tote `#`-Links — FAQ/Hilfe/Cookies verlinkt, „Anmelden" führt in den Hub (`{domain_portal_url}/login`), nicht verlinkte Platzhalter entfernt. Test: `tests/Feature/Web/NavigationLinksTest.php`. Gemeinsames Gerüst: wiederverwendbare Komponente `x-web.static-page` (site-header, Breadcrumb, Masthead, site-footer). Altes Theme (`livewire:web.header`, `gradient-hero`) entfernt. Rechtstexte sind weiterhin Platzhalter (vor Go-Live ersetzen). Test: `tests/Feature/Web/StaticPagesTest.php`. - **`/preise`-Seite im Editorial-Design** (Rebuild abgeschlossen): Reihenfolge Abo-Tarife → Einzel-PM → Add-ons. Datengetrieben über `Plan::active()`, `config('billing.single_pm_price_cents')` und `config('credits.*')`; Route `$preisePage`-Closure. Texte ausgelagert in `lang/{de,en}/pricing.php` (Schlüssel `pricing.*`), damit Portal/Hub einheitlich ziehen können. Add-on- Lineup (Magic-Link-Pfade) ist mit TODO-Kommentaren als „noch im Rework" markiert. Test: `tests/Feature/Web/PreisePageTest.php`.