web: Transparenzseiten — was kostet, ohne Abo, loeschen/aendern (Roadmap 2.4)

Drei Seiten mit unterschiedlicher Suchintention, DE/EN, Hub + Spokes:
- /was-kostet-eine-pressemitteilung: kurze Antwort im ersten Bildschirm,
  vier Abrechnungsmodelle ohne Anbieternamen und fremde Preise, sechs
  Prueffragen fuer Folgekosten, "Was bei uns gilt" (sieben Zusagen mit
  Einloesung), Rechenbeispiel Einzelabrechnung gegen Starter-Monate mit
  Zeilen fuer beide Seiten.
- /pressemitteilung-veroeffentlichen-ohne-abo: Ablauf, enthalten / nicht
  enthalten, nichts verfaellt, wann sich ein Tarif lohnt.
- /pressemitteilung-loeschen-oder-aendern-lassen: fuenf Wege als
  Tabelle (Korrektur, Aenderung, DSGVO, Depublikation, DSA), Antragsweg
  ueber /melden/pm, Korrektur statt Loeschung, Absatz fuer Meldungen auf
  fremden Portalen ohne Zusagen ueber Dritte.

PricingTransparencyData liefert alle Zahlen aus config/billing, credits,
legal und dem Starter-Tarif; TransparencyPageController leitet die Marke
aus dem Host ab. Tabellen-Typografie fuer .pm-body. Verlinkt aus
Preisuebersicht, Hilfe-Center, Sitemaps und llms.txt.

Test TransparencyPagesTest (9) erzwingt u. a., dass im Rechenbeispiel
beide Modelle Zeilen gewinnen. Protokoll Teil 5, Roadmap 2.4 abgehakt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-09-17 12:00:28 +00:00
parent 84ea617107
commit b6e4bc5dc0
18 changed files with 953 additions and 4 deletions

View file

@ -187,7 +187,7 @@ Verbreitert den Trichter oben. Sinnvoll erst, wenn Block 1 unten geschlossen ist
| ~~2.1~~ | NewsArticle-Schema auf allen Meldungen, Organization-Schema auf Newsrooms — **Grundgerüst seit Juli (379688f), 17.09.2026 ergänzt:** gemeinsame `@id` zwischen `NewsArticle.author` und Newsroom-Organization, Publisher mit `@id` und Logo (`App\Support\StructuredData`) | M | 1b.1 |
| 2.2 | Aufnahme in Google News und Publisher Center prüfen und beantragen — **technischer Teil 17.09.2026:** News-Sitemap `/sitemap-news.xml` je Spoke (48 h, ≤ 1.000), in `robots.txt`; Publisher-Center-Anmeldung liegt beim Betreiber (Protokoll Teil 5) | M | 2.1 |
| ~~2.3~~ | Branchen- und Kategorie-Landingpages aus dem Archivbestand — **17.09.2026:** Jahresarchiv je Branche `/category/{slug}/archiv/{jahr}` (34.600 Meldungen intern verlinkt, in der Sitemap), Jahresleiste auf der Branchenseite, Beschreibungen für alle 14 Kategorien (`categories:seed-descriptions`), Portalname im Titel | M | keine |
| 2.4 | Transparenzseiten: Preisvergleich, ohne Abo veröffentlichen, ohne Mindestlaufzeit | S | keine |
| ~~2.4~~ | Transparenzseiten — **17.09.2026 nach Briefing, drei Seiten:** `was-kostet-eine-pressemitteilung` (Modellvergleich ohne Namen, Prüfliste Folgekosten, eigene Zusagen, Rechenbeispiel mit gemischtem Ausgang), `pressemitteilung-veroeffentlichen-ohne-abo`, `pressemitteilung-loeschen-oder-aendern-lassen` (Meldeverfahren + Absatz für fremde Portale); keine fremden Zahlen | S | keine |
| 2.5 | Konsolidierung der bestehenden Ratgeberseiten unter `/de/presse/` gegen 1d.1 und 2.4 prüfen | S | 1d.1 |
| 2.6 | Outreach an Betreiber von Presseportal-Listen und Vergleichsartikeln | M | 2.4 |
| ~~2.7~~ | Auffindbarkeit für KI-Systeme: strukturierte Daten, klare Entitätszuordnung, `llms.txt` — **17.09.2026:** `/llms.txt` je Host (Hub verweist auf beide Portale), Entitätszuordnung über 2.1 | M | 2.1 |

View file

@ -1660,6 +1660,67 @@ 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.
### 2.4 — Transparenzseiten (17.09.2026, nach Briefing)
**Zuschnitt aus dem Briefing:** kein Preisvergleich Anbieter gegen
Anbieter, sondern (a) Modellvergleich ohne Namen und fremde Preise und
(b) ein internes Rechenbeispiel mit den eigenen Optionen. Aus dem einen
Roadmap-Punkt wurden drei Seiten mit unterschiedlicher Suchintention,
alle auf Hub und Spokes, DE und EN:
| URL | Sucht danach |
|---|---|
| `/{edition}/was-kostet-eine-pressemitteilung` | Preis, Vergleich, Budget |
| `/{edition}/pressemitteilung-veroeffentlichen-ohne-abo` | Ablehnung eines Modells |
| `/{edition}/pressemitteilung-loeschen-oder-aendern-lassen` | akutes Problem, oft bei einem anderen Portal |
**Umsetzung:** `TransparencyPageController` + `PricingTransparencyData`
— alle Zahlen aus `config/billing`, `config/credits`, `config/legal` und
dem Starter-Tarif (19 € Einzel, 29 €/3 Meldungen Starter, 15 € Extra-PM,
10 € Änderung, 35 € Depublikation, USt.), damit die Seiten nie einen
anderen Preis nennen als die Preisübersicht. Texte in
`lang/{de,en}/static.php` (`cost`, `no_subscription`, `change_delete`).
Tabellen-Typografie für `.pm-body` ergänzt (Asset-Build nötig).
Seite 1, Aufbau wie im Briefing: kurze Antwort im ersten Bildschirm →
vier Abrechnungsmodelle und was sie bei seltener Nutzung kosten → sechs
Prüffragen für Folgekosten → „Was bei uns gilt" (dieselben sechs Fragen
beantwortet plus eine siebte: abgelehnte Meldungen kosten nichts) →
Rechenbeispiel Einzelabrechnung gegen bei Bedarf gebuchte Starter-Monate:
1 Meldung 19 vs. 29 (Einzel), 3 im selben Monat 57 vs. 29 (Starter),
3 verteilt 57 vs. 87 (Einzel), 12 monatlich 228 vs. 348 (Einzel), 12 in
4 Monaten 228 vs. 116 (Starter). Der Test `TransparencyPagesTest`
erzwingt, dass beide Modelle Zeilen gewinnen.
Seite 2: Ablauf in vier Schritten, was enthalten ist, **was nicht** (kein
Versand an Redaktionen, keine Platzierungsgarantie, keine Zusage über
Rankings oder KI-Nennungen — Formulierungsgrenze 2.7), nichts verfällt,
wann sich ein Tarif trotzdem lohnt.
Seite 3: fünf Wege als Tabelle (Anliegen / Wer / Kosten / Ergebnis),
Antragsweg über `/melden/pm` mit Bestätigungslink an die hinterlegte
Pressekontaktadresse, „Korrektur statt Löschung", und der Absatz für
fremde Portale: Impressum des Betreibers, DSA-Meldeweg und DSGVO-Anspruch
gelten überall und sind kostenlos, Dienstleister ist Ansprechpartner für
weitere Kopien — ohne Namen, ohne Zusagen über Dritte
(`docs/legal/Entscheidung.md`).
**Verlinkung:** Preisübersicht (Zeile unter dem USt-Hinweis), Hilfe-Center
(„Korrekturen nach Veröffentlichung" zeigt jetzt auf Seite 3 statt FAQ),
Sitemaps Hub + Spokes, `llms.txt`, untereinander.
**Bitte gegenlesen — drei Tatsachenbehauptungen, die ich aus Code und
Konzept abgeleitet habe:** (1) „Kein Versand an Redaktionen" (Seite 2),
(2) „Konto anlegen ohne Zahlungsdaten" (Seite 2), (3) „Kunden mit Konto
erledigen kleine Korrekturen direkt im Publisher-Bereich" (Seite 3,
Selbstbedienungskorrektur `legal.corrections_per_week`). Die „sieben
Zusagen" haben keine kanonische Liste in den Konzepten; die Fassung auf
Seite 1 ist aus Preisseite, AGB-Hinweisen und Decision-Update
Preisstruktur zusammengesetzt.
Tests: `TransparencyPagesTest` (9). Nicht gebaut: fremde Zahlen, auch
nicht als datierte Erhebung (Empfehlung im Briefing: lassen).
### Befund zu 2.5 / E5
Die alte Ratgeber-Strecke `/de/presse/*.html` leitet seit dem Rückbau
@ -1671,8 +1732,9 @@ 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 (2.1/2.2/2.3/2.7):** kein `migrate`, `view:cache`/`route:cache`
wie üblich, dann `categories:seed-descriptions`. Danach
**Deploy (2.1–2.4/2.7):** kein `migrate`, Asset-Build (`npm run build`,
neue Tabellen-Styles), `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.