press-releases:check-index-status fragt täglich je Portal ein Kontingent veröffentlichter Meldungen über die URL Inspection API ab, nach Alter gestaffelt, nie geprüfte zuerst. Jede Antwort wird als Momentaufnahme in press_release_index_checks gespeichert; der reduzierte Befund (IndexState) trennt „noch nicht gecrawlt" von „gecrawlt, nicht indexiert". Client authentifiziert sich als Service-Konto über ein selbst signiertes JWT — kein Google-SDK. Admin ▸ Reports ▸ Indexierung zeigt die Verteilung je Portal getrennt nach Direkteinreichung und Syndikation (Status-Log source=api; Altbestand ohne Log zählt als direkt). Das Kundenpanel heißt jetzt „Auslieferung", zeigt Sitemap-Datum und die Abrufe durch Such- und KI-Dienste mit dem Satz „Ein Abruf ist kein Zitat"; der Google-Index-Block hängt an GSC_CUSTOMER_VISIBLE (false). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
50 lines
1.9 KiB
PHP
50 lines
1.9 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.de'),
|
|
],
|
|
|
|
// Abfragen je Lauf und Portal.
|
|
'daily_budget' => (int) env('GSC_DAILY_BUDGET', 300),
|
|
|
|
// 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),
|
|
|
|
];
|