presseportale/config/search_console.php
Kevin Adametz df557e419b search-console: vorübergehende Google-Fehler einmal wiederholt und nur als Warnung protokolliert, Portal-Abbruch nach fünf Fehlern in Folge, Zeitbudget 40 Minuten (GlitchTip server-pressekonto 11–14)
Am 06.10.2026 hing die URL Inspection API zeitweise: 28 Zeitüberschreitungen
und 4 × 500, jede einzeln als Fehler gemeldet, der Lauf zog sich über 1¾
Stunden. Neu: SearchConsoleUnavailable für Timeout/5xx/429 (Warnung, Meldung
bleibt fällig), echte Fehler (401/403/400) weiter über report(); FAILURE —
und damit ein Betriebs-Alert — nur bei Abbruch oder ≥ 50 % Fehlern.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 13:12:29 +00:00

62 lines
2.5 KiB
PHP

<?php
/*
|--------------------------------------------------------------------------
| Google Search Console — Indexierungsstatus (Roadmap 1c.4)
|--------------------------------------------------------------------------
|
| Abgleich veröffentlichter Meldungen über die URL Inspection API. Läuft
| zunächst nur als Admin-Auswertung; die Anzeige beim Kunden ist per
| `customer_visible` geschlossen (Entscheidung E8, 17.09.2026), bis die
| Verteilung getrennt nach Direkteinreichung und Syndikation bekannt ist.
|
| Zugang über ein Service-Konto (JSON-Schlüsseldatei), das in der Search
| Console als Nutzer der jeweiligen Property eingetragen ist. Quote: 2.000
| Abfragen je Tag und Property — `daily_budget` bleibt bewusst weit darunter
| und wird nach Alter gestaffelt auf die jüngsten Meldungen verteilt.
|
*/
return [
'enabled' => (bool) env('GSC_ENABLED', false),
// Pfad zur JSON-Schlüsseldatei des Service-Kontos (außerhalb von public/).
'credentials' => env('GSC_SERVICE_ACCOUNT_FILE'),
// Property je Portal, wie in der Search Console angelegt
// (Domain-Property „sc-domain:…" oder URL-Präfix „https://…/").
'properties' => [
'presseecho' => env('GSC_PROPERTY_PRESSEECHO', 'sc-domain:presseecho.de'),
'businessportal24' => env('GSC_PROPERTY_BUSINESSPORTAL24', 'sc-domain:businessportal24.com'),
],
// Abfragen je Lauf und Portal.
'daily_budget' => (int) env('GSC_DAILY_BUDGET', 300),
// Robustheit des Laufs (06.10.2026: Google hing zeitweise 20 s je Abfrage,
// der Lauf zog sich über 1¾ Stunden). Vorübergehende Fehler (Timeout,
// 5xx, 429) werden einmal wiederholt; nach mehreren Fehlern in Folge
// bricht das Portal ab; der Lauf endet spätestens nach dem Zeitbudget
// (unter der Overlap-Sperre von 60 Minuten im Scheduler). Nicht
// geprüfte Meldungen bleiben fällig und kommen am nächsten Tag dran.
'timeout_seconds' => 20,
'retries' => 1,
'retry_sleep_ms' => 3000,
'max_consecutive_failures' => 5,
'max_runtime_minutes' => 40,
// Wie oft eine Meldung erneut geprüft wird, gestaffelt nach Alter seit
// Veröffentlichung: [maximales Alter in Tagen => Abstand in Tagen].
// Die letzte Stufe gilt für alles Ältere.
'recheck_days' => [
14 => 3,
90 => 14,
365 => 45,
PHP_INT_MAX => 180,
],
// Indexierungsstatus in der Absenderansicht zeigen (E8: zunächst zu).
'customer_visible' => (bool) env('GSC_CUSTOMER_VISIBLE', false),
];