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
713024be37
commit
b74f881ac8
15 changed files with 521 additions and 23 deletions
|
|
@ -184,13 +184,13 @@ Verbreitert den Trichter oben. Sinnvoll erst, wenn Block 1 unten geschlossen ist
|
|||
|
||||
| Nr. | Arbeitspaket | Aufwand | Abhängigkeit |
|
||||
|---|---|---|---|
|
||||
| 2.1 | NewsArticle-Schema auf allen Meldungen, Organization-Schema auf Newsrooms | M | 1b.1 |
|
||||
| 2.2 | Aufnahme in Google News und Publisher Center prüfen und beantragen | M | 2.1 |
|
||||
| ~~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 | M | keine |
|
||||
| 2.4 | Transparenzseiten: Preisvergleich, ohne Abo veröffentlichen, ohne Mindestlaufzeit | 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` | M | 2.1 |
|
||||
| ~~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 |
|
||||
|
||||
**Formulierungsgrenze bei 2.7:** Die technischen Voraussetzungen zu beschreiben ist haltbar. Eine Nennung in KI-Antworten zu versprechen ist es nicht. Vor Veröffentlichung auf einer Preisseite sauber formulieren.
|
||||
|
||||
|
|
@ -235,7 +235,7 @@ Braucht Betreuungszeit und ist teilweise von Dritten abhängig.
|
|||
| ~~E2~~ | **Empfehlung 01.09.2026: Rohzahlen** — kein Bodensatz, Verteilung symmetrisch, Einordnung gegen den Schnitt wäre wegen der Wachstumskurve falsch (siehe `basiswerte-block0.md`). | 1c.1 |
|
||||
| ~~E3~~ | **Entschieden 16.09.2026: keine Credits.** Prüfung ist Teil der Freigabe, nicht ein Werkzeug; N automatische Läufe je Meldung (einstellbar, 3), danach Mensch, Automatik für die Meldung aus. Gelb geht weiter automatisch online, `yellow_to_manual_queue` bleibt als Schalter (Vorgabe aus). | 1d.4 |
|
||||
| ~~E4~~ | **Entschieden 15.09.2026: der Magic-Link-Hinweis, am Ende der Mail, als Hinweis, nicht als Angebot.** Umgesetzt in 1b.4. Der Link auf die Infoseite (1d.2) bekommt damit keinen Platz in der Veröffentlichungsmail — ein Element pro Mail. | 1b.4, 1d.2 |
|
||||
| E5 | Werden die bestehenden Ratgeberseiten konsolidiert oder ergänzt | 2.5 |
|
||||
| E5 | Werden die bestehenden Ratgeberseiten konsolidiert oder ergänzt — **Befund 17.09.2026:** `/de/presse/*` leitet seit R3.2 auf `/faq`; offen ist nur, ob Schreib-Slugs stattdessen auf `/gute-pressemitteilung` zeigen sollen (Protokoll Teil 5) | 2.5 |
|
||||
| E6 | Bleibt die Ablehnungsstrecke dauerhaft frei von kommerziellen Angeboten | 1d.1, 1d.6 |
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -1537,3 +1537,96 @@ Die 1.302 davon mit Meldungen haben nur `rejected` (bis 2019) und
|
|||
`archived` (bis 2022), nichts Öffentliches. Die 44 Besitzerkonten bleiben
|
||||
unangetastet — 24 führen auch saubere Firmen. Dry-Run Dev-DB: 4.391.
|
||||
Test: `RetireLinkSpamCompaniesTest`.
|
||||
|
||||
---
|
||||
|
||||
## Teil 5 — Block 2: Organische Sichtbarkeit (ab 17.09.2026)
|
||||
|
||||
Block 1 ist komplett und live (17.09.2026). Block 2 beginnt mit dem
|
||||
technischen Teil (2.1, 2.2, 2.7); die Inhalts- und Marketing-Pakete (2.3,
|
||||
2.4, 2.6) folgen, 2.5 hängt an E5.
|
||||
|
||||
### 2.1 — NewsArticle und Organization (17.09.2026)
|
||||
|
||||
**Stand vorher:** Das Grundgerüst gab es seit Juli (Commit 379688f):
|
||||
NewsArticle + BreadcrumbList auf jeder öffentlichen Meldung, Organization
|
||||
auf dem Newsroom, WebSite + Organization auf den Portal-Startseiten,
|
||||
BreadcrumbList auf Kategorien; Ausgabe über `x-web.structured-data`
|
||||
(JSON_HEX_TAG gegen `</script>`-Ausbruch). Die Vorschau bleibt ohne Markup.
|
||||
|
||||
**Was fehlte:** Die Entitäten hingen nicht zusammen. `NewsArticle.author`
|
||||
und die Organization der Newsroom-Seite waren zwei namensgleiche Objekte
|
||||
ohne gemeinsame `@id`; der Publisher hatte kein Logo (Google empfiehlt es
|
||||
für Article-Rich-Results) und ebenfalls keine `@id`.
|
||||
|
||||
**Umsetzung:** `App\Support\StructuredData` bündelt die Entitäten:
|
||||
- `publisher($portalBase)` — Organization des Portals mit
|
||||
`@id = {portal}/#organization`, Name aus `config/domains.php`, Logo als
|
||||
ImageObject (`/images/presseecho-logo.svg` bzw.
|
||||
`businessportal-logo.svg`, 600×200). Verwendet auf Meldung (publisher)
|
||||
und Startseite.
|
||||
- `newsroomUrl()` / `newsroomId()` — `@id = {newsroom-url}#organization`.
|
||||
Die Newsroom-Seite trägt sie, `NewsArticle.author` verweist darauf.
|
||||
- Bewusst nicht ins Organization-Markup: Adresse, E-Mail, Telefon. Die
|
||||
Newsroom-Seite zeigt sie nicht, und Markup ohne sichtbares Gegenstück
|
||||
ist gegen Googles Richtlinien.
|
||||
|
||||
Tests: `StructuredDataTest` erweitert (Publisher-`@id`, Logo,
|
||||
Author-`@id`, Newsroom-`@id`).
|
||||
|
||||
### 2.2 — Google News, technischer Teil (17.09.2026)
|
||||
|
||||
**Umsetzung:** News-Sitemap je Spoke: `/sitemap-news.xml`
|
||||
(`NewsSitemapController`) — nur im Archiv sichtbare Meldungen der letzten
|
||||
48 Stunden, höchstens 1.000, `news:publication` mit Portalname und
|
||||
Sprache (`language` der Meldung, Fallback `de`), `news:publication_date`,
|
||||
`news:title`. 15 Minuten gecacht je Host, wird mit den anderen Sitemaps
|
||||
über `WebCaches::forgetSitemaps()` geleert. `robots.txt` der Spokes nennt
|
||||
sie; der Hub liefert eine leere Liste und nennt sie nicht.
|
||||
|
||||
**Was jetzt beim Betreiber liegt (nicht im Code):**
|
||||
1. Search Console: beide Spokes als Property bestätigt haben.
|
||||
2. Publisher Center (publishercenter.google.com): je Portal eine
|
||||
Publikation anlegen — Name exakt wie in `news:name` („presseecho",
|
||||
„businessportal24"), Sprache Deutsch, Standort DE, Website-URL des
|
||||
Portals; Logo (quadratisch und rechteckig) hochladen.
|
||||
3. In der Publikation den Bereich „Google News" einrichten: Abschnitte
|
||||
(z. B. die Kategorien) als Feed oder Web-Bereich anlegen; die
|
||||
News-Sitemap wird nicht dort, sondern in der Search Console
|
||||
eingereicht (Sitemaps → `/sitemap-news.xml`).
|
||||
4. Erwartung ehrlich halten: Google News nimmt Presseportale nicht
|
||||
verlässlich auf („Pressemitteilungen" sind laut Inhaltsrichtlinien
|
||||
zulässig, aber kein bevorzugter Inhalt). Die Sitemap ist die
|
||||
Voraussetzung, keine Zusage. Ergebnis nach 4–6 Wochen in der Search
|
||||
Console unter „Leistung → Google News" ablesen.
|
||||
|
||||
Tests: `NewsSitemapTest` (3).
|
||||
|
||||
### 2.7 — Auffindbarkeit für KI-Systeme (17.09.2026)
|
||||
|
||||
**Umsetzung:** `/llms.txt` je Host (`LlmsTxtController`, 1 h gecacht):
|
||||
Titel, Kurzbeschreibung (Tagline aus `config/domains.php`), sachlicher
|
||||
Absatz zu Urheberschaft (Unternehmen = Urheber, Portal = Herausgeber) und
|
||||
zu den strukturierten Daten, URL-Aufbau (Meldung, Newsroom, Kategorie,
|
||||
Sitemaps), aktive Kategorien mit Links, Seiten für Unternehmen,
|
||||
Rechtliches. Der Hub verweist auf beide Portale und die OpenAPI-Datei.
|
||||
Formulierungsgrenze eingehalten: keine Aussage darüber, ob oder wie
|
||||
KI-Systeme die Inhalte verwenden. Die Entitätszuordnung aus 2.1 (`@id`
|
||||
zwischen Meldung und Newsroom) ist der zweite Teil von 2.7.
|
||||
|
||||
Tests: `LlmsTxtTest` (2).
|
||||
|
||||
### Befund zu 2.5 / E5
|
||||
|
||||
Die alte Ratgeber-Strecke `/de/presse/*.html` leitet seit dem Rückbau
|
||||
(R3.2) per 301 auf `/de/faq`. Es gibt also keine Ratgeberseiten mehr, die
|
||||
zu konsolidieren wären — die Frage E5 reduziert sich darauf, ob die
|
||||
Alt-URLs zum Schreiben von Pressemitteilungen künftig auf die Hilfeseite
|
||||
`/de/gute-pressemitteilung` (1d.1) statt auf die FAQ zeigen sollen.
|
||||
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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue