docs: Search Console live, Schlüsseldateien ausgeschlossen, Kontingent erklärt

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-09-17 15:29:19 +00:00
parent b44fdedbdf
commit 10c91ac3f5
3 changed files with 22 additions and 5 deletions

3
.gitignore vendored
View file

@ -68,3 +68,6 @@ dev/newsletter/
# Rechtstext-Quellen des Users (untracked Arbeitsstand) # Rechtstext-Quellen des Users (untracked Arbeitsstand)
docs/legal/ docs/legal/
# Schlüsseldateien (Search-Console-Service-Konto), nie ins Repo
config/files/

View file

@ -30,7 +30,7 @@
| ~~1c.1~~ | Absenderansicht Stufe 1 — **umgebaut 17.09.2026**: Panel heißt „Auslieferung", Google-Suchlink entfernt, Sitemap-Datum bleibt; keine Feeds vorhanden, daher kein Feed-Eintrag | M | 0.1 | | ~~1c.1~~ | Absenderansicht Stufe 1 — **umgebaut 17.09.2026**: Panel heißt „Auslieferung", Google-Suchlink entfernt, Sitemap-Datum bleibt; keine Feeds vorhanden, daher kein Feed-Eintrag | M | 0.1 |
| 1c.2 | Zugang zur Ansicht über Magic Link, auch ohne Konto | S | 1b.2 | | 1c.2 | Zugang zur Ansicht über Magic Link, auch ohne Konto | S | 1b.2 |
| 1c.3 | Newsroom-Übersicht mit allen Meldungen der Firma und Summenwerten | M | 1a.3, 1c.1 | | 1c.3 | Newsroom-Übersicht mit allen Meldungen der Firma und Summenwerten | M | 1a.3, 1c.1 |
| ~~1c.4~~ | Indexierungsstatus — **gebaut 17.09.2026**: `press-releases:check-index-status` (täglich, Kontingent nach Alter gestaffelt), `press_release_index_checks` als Momentaufnahmen, Admin ▸ Reports ▸ Indexierung getrennt nach direkt/API; **läuft erst mit Service-Konto** (`GSC_*` in `.env`) | M | GSC-Property je Portal verifiziert | | ~~1c.4~~ | Indexierungsstatus — **gebaut 17.09.2026**: `press-releases:check-index-status` (täglich, Kontingent nach Alter gestaffelt), `press_release_index_checks` als Momentaufnahmen, Admin ▸ Reports ▸ Indexierung getrennt nach direkt/API; **live seit 17.09.2026** (Service-Konto eingerichtet, täglicher Lauf 05:10, Abfrage auf `en-US`) | M | GSC-Property je Portal verifiziert |
| 1c.5 | Entscheidung über die Kundenansicht des Indexierungsstatus, auf Basis der Verteilung aus 1c.4 — Schalter `GSC_CUSTOMER_VISIBLE` ist vorbereitet; Altbestand ohne Status-Log zählt in der Verteilung als „direkt" | S | 1c.4 | | 1c.5 | Entscheidung über die Kundenansicht des Indexierungsstatus, auf Basis der Verteilung aus 1c.4 — Schalter `GSC_CUSTOMER_VISIBLE` ist vorbereitet; Altbestand ohne Status-Log zählt in der Verteilung als „direkt" | S | 1c.4 |
| ~~1c.6~~ | Abrufe durch KI-Dienste — **gebaut 17.09.2026**: Block im Panel je Dienst mit letztem Abruf und Anzahl, Satz „Ein Abruf ist kein Zitat" | S | 1c.0, 1c.1 | | ~~1c.6~~ | Abrufe durch KI-Dienste — **gebaut 17.09.2026**: Block im Panel je Dienst mit letztem Abruf und Anzahl, Satz „Ein Abruf ist kein Zitat" | S | 1c.0, 1c.1 |

View file

@ -1815,10 +1815,24 @@ ab dem erfasst wird.
jüngsten Befund mit Datum und „zuletzt gecrawlt". Test erzwingt, dass jüngsten Befund mit Datum und „zuletzt gecrawlt". Test erzwingt, dass
der Block ohne Freigabe nicht ausgeliefert wird. der Block ohne Freigabe nicht ausgeliefert wird.
**Voraussetzung auf Betreiberseite:** Service-Konto in der Google Cloud **Live seit 17.09.2026.** Service-Konto angelegt, Schlüsseldatei unter
Console anlegen, Schlüsseldatei erzeugen, die Konto-E-Mail in beiden `config/files/` (per `.gitignore` ausgeschlossen, liegt nur auf dem
Search-Console-Properties als Nutzer (Lesen reicht) eintragen, Datei auf Server), `GSC_ENABLED=true`, Kontingent 300. Zugang gegen die
den Server, `.env` setzen. Erster Lauf von Hand mit `--dry-run`. Live-Property geprüft (`https://www.presseecho.de/` → „Page with
redirect", zuletzt gecrawlt 16.09.2026).
**Nachtrag (Commit b44fded):** Die API übersetzt `coverageState` in die
angefragte Sprache; mit `de-DE` kam „Seite mit Weiterleitung" zurück und
`IndexState::fromIndexStatus()` griff ins Leere. Abfrage jetzt immer
`en-US`; die Enum-Felder (`verdict`, `indexingState`, `robotsTxtState`,
`pageFetchState`) sind sprachunabhängig.
**Zum Kontingent:** `GSC_DAILY_BUDGET` = Abfragen je Lauf **und je
Portal** (300 → 600 Calls/Tag, Quote 2.000 je Property). Bei ~31.000
sichtbaren Meldungen ist der Bestand nach rund 100 Tagen einmal durch;
die jungen Meldungen, um die es bei 1c.5 geht, sind nach Tagen drin.
Schneller: vorübergehend 1.000, oder einmalig von Hand
`press-releases:check-index-status --budget=1500`.
### 1d Erstquelle gegen Kopie ### 1d Erstquelle gegen Kopie