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>
62 lines
2.5 KiB
PHP
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),
|
|
|
|
];
|