Changelog

Frische Releases. Kein aufgewärmtes Schnitzel.

1.3.5 — Footer & Übersetzungen Aktuell5. März 2026

Geändert
  • Admin-Footer — auf allen Plugin-Seiten aktualisiert zu „entwickelt von 🍺 noschmarrn.dev für Donau2Space.de" mit Links zu beiden Seiten.
Fix
  • Deutsche Übersetzungen für KI-Funktionen-Dashboard — Abschnittsüberschrift, Einleitungstext, Feature-Bezeichnungen und -Beschreibungen sowie der Speichern-Button wurden auf deutschen WordPress-Installationen auf Englisch angezeigt.

1.3.4 — GEO-Block-Themes 4. März 2026

Neu
  • Vier integrierte GEO-Block-Themes — Hell (Standard-Karte), Dunkel (für Dark-Mode-Seiten), Minimal (nur linker Rahmen, keine Box) und Bavarian (Bayerisch-blauer Header mit CSS-Rautenmuster). Auswahl über das neue Theme-Dropdown in den GEO-Block-Einstellungen.
Geändert
  • Styling-Steuerung vereinfacht — Farbschema (auto/hell/dunkel) und „Minimales CSS laden"-Checkbox durch die einzelne Theme-Auswahl ersetzt. CSS wird immer geladen, wenn der Block aktiviert ist.
Entfernt
  • Custom-CSS-Feld — gemäß WordPress.org-Plugin-Richtlinien entfernt. Zum Überschreiben von .bre-geo-Custom-Properties das Theme-Stylesheet oder den Customizer verwenden. Verfügbare CSS-Klassen und Theme-Overrides: How-to-Seite.

1.3.3 — CSS-Sicherheitshärtung 3. März 2026

Sicherheit
  • GEO-Block Custom-CSS — Eingabe wird jetzt durch einen dedizierten Parser bereinigt, der Kommentare entfernt, At-Regeln (@import, @media usw.) blockiert und expression(), javascript: sowie url() zurückweist, um CSS-Injection zu verhindern.
  • Inline-Style-Escaping — der GEO-Block verwendete zuvor esc_attr() auf rohem CSS-Inhalt, was Anführungszeichen und Ampersands in gültigen Deklarationen korrumpiert. Ersetzt durch den neuen CSS-sicheren Sanitizer.
Fix
  • Schema.org JSON-LD — Output übergibt JSON_UNESCAPED_SLASHES nicht mehr an wp_json_encode(), was </script>-Injection im JSON-LD-Block ermöglichen konnte.
  • Einheitliches Präfix — alle JS-lokalisierten Objekte, Test-Bootstrap-Konstanten und ein KeyVault-Doc-Kommentar verwenden jetzt einheitlich das brezngeo_-/brezngeo-Präfix.

1.3.2 — Schema-Fix & WordPress.org-Compliance 2. März 2026

Fix
  • Schema.org Meta-Beschreibung — strukturierte Daten (Article, BlogPosting, VideoObject) lesen jetzt korrekt die KI-generierte Meta-Beschreibung. Ein umbenannter Post-Meta-Key führte seit v1.3.1 bei allen Beiträgen zu einem stillen Fallback auf den Beitrags-Excerpt.
  • Dashboard-Stats-Transient — Tippfehler im Transient-Key der Nutzungsstatistik korrigiert. Sichtbarer Effekt: Der Zähler im Dashboard-Status-Widget wird einmalig nach dem Update zurückgesetzt.
Intern
  • WordPress.org-Compliance — alle Plugin-Bezeichner (Options-Keys, AJAX-Actions, Post-Meta, Transients, JS-Globals) von bre_ auf brezngeo_-Präfix umbenannt.

1.3.1 — Smarteres Link-Matching & KI-Feature-Schalter 1. März 2026

Verbessert
  • Themenbasiertes Anker-Matching — Link-Vorschläge finden Anker-Phrasen jetzt über Titel, Tags, Kategorien und Excerpt des Zielartikels. Ein Donau-Artikel kann jetzt auf einen Deggendorf-Artikel verlinken, wenn „donau" als Tag vorhanden ist — auch wenn „Deggendorf" im Text gar nicht vorkommt.
  • Excerpt-Scoring — Kandidaten-Beiträge werden jetzt auch anhand ihrer Excerpt-Tokens bewertet (Gewicht ×1,5), was die Lücke zwischen kurzem Titel und vollem Inhalt überbrückt.
Neu
  • KI-Features-Karte im Dashboard — wenn ein KI-Anbieter verbunden ist, können einzelne Features per Opt-in für KI aktiviert werden: Meta-Beschreibungen, Interne Link-Vorschläge, GEO-Block. Standard: alle deaktiviert.
Fix
  • Post-Suche in Link-Vorschläge-Einstellungen — Ausschluss- und Boost-Suche war komplett defekt: falsche REST-API-URL und das Such-Script wurde auf der Einstellungsseite nie geladen.
  • Plugin Check — Translator-Kommentar-Position in bulk.php; NonPrefixedVariable-Warnungen in link-suggest-settings.php und txt.php.

1.3.0 — Interne Link-Vorschläge 1. März 2026

Neu
  • Interne Link-Vorschläge — neue Editor-Meta-Box schlägt beim Schreiben passende interne Links vor: „Phrase im Artikel" → Zielbeitrag. Multi-Select, Vorschau vor dem Anwenden, kein automatisches Einfügen.
  • Text-basiertes Matching — funktioniert ohne KI-Key. Bewertet Kandidaten nach Titel-, Tag- und Kategorie-Überschneidung. Optionales KI-Upgrade schickt Top-Kandidaten zur semantischen Verfeinerung an den verbundenen KI-Anbieter.
  • Konfigurierbarer Auslöser — Manueller Button (Standard), beim Speichern des Beitrags oder alle N Minuten. Im manuellen Modus kein Hintergrund-Load.
  • Ausschluss & Boost — neue Einstellungsseite (Link-Vorschläge) zum Ausschließen von Beiträgen (z.B. Impressum, Kontakt) und zum Priorisieren bestimmter Beiträge.
  • Gutenberg + Classic Editor — liest und fügt Inhalte in beiden Editoren über offizielle Editor-APIs ein.
  • Vollständige Lokalisierung — alle Strings auf Deutsch (de_DE) und Englisch (en_US) übersetzt.

1.2.4 — UX-Verbesserungen & i18n-Fixes 28. Feb. 2026

Fix
  • KI-Generierung ist standardmäßig deaktiviert — neue Installationen zeigen KI nicht mehr als aktiv an, bis der User sie explizit aktiviert und einen API-Key eingibt
  • Aktiver Provider im Dashboard zeigt jetzt korrekt „KI deaktiviert" oder „Nicht konfiguriert" an, wenn kein API-Key hinterlegt ist — kein irreführendes „OpenAI" mehr
  • Deutsche Strings aus der Schema.org-Adminseite, der Schema-Metabox im Post-Editor und dem SEO-Widget entfernt
Neu
  • KI-inaktiv-Hinweis auf den Seiten Meta Generator und GEO Block — erklärt klar, dass der Fallback aktiv ist, und verlinkt zu den KI-Provider-Einstellungen
  • Sprachabhängiger Standard-Prompt — deutsche WordPress-Installationen erhalten den deutschen Meta-Prompt, alle anderen Englisch
  • „Theme gibt Beitragstitel als H1 aus" in den Meta-Generator-Einstellungen — unterdrückt die falsch-positive „Keine H1"-Warnung für Themes, die den Titel außerhalb des Inhaltsbereichs als H1 rendern
  • SEO-Widget-Warnmeldungen sind jetzt vollständig via WordPress-i18n übersetzbar

1.2.3 — TXT-Dateien-Seite 28. Feb. 2026

Verbessert
  • TXT-Dateien — llms.txt und robots.txt sind jetzt in einer einzigen Admin-Seite mit nativer WordPress-Tab-Navigation zusammengeführt; Status-Punkt im llms.txt-Tab, Anzahl blockierter Bots als Badge im robots.txt-Tab

1.2.2 — Dashboard UX & KI-Steuerung 25. Feb. 2026

Neu
  • Ausblendbare Willkommens-Hinweis-Box — erscheint 24 Stunden nach der ersten Aktivierung, pro Nutzer ausblendbar, mit einem kleinen bayerischen Touch
  • KI-Aktivierungs-Schalter auf der KI-Anbieter-Seite — KI-Generierung deaktivieren ohne den API-Key zu löschen; zeigt Kostenwarnung bei der Ersteinrichtung
  • Token-Verbrauch und geschätzte Kosten im Status-Widget — verfolgt generierte Beschreibungen und verbrauchte Token über alle Bulk- und Einzelläufe
Verbessert
  • Dashboard-Meta-Coverage zeigt jetzt Fortschrittsbalken (grün / gelb / rot) statt einer einfachen Tabelle
  • Quick-Links-Panel mit Hover-Animation ersetzt die bisherige ungestylte Liste
  • KI-Crawler-Einträge zeigen jetzt einen grünen Punkt-Indikator in der Crawler-Tabelle
  • 5-Minuten-Transient-Caching für alle Dashboard-Datenbankabfragen (Meta-Statistiken, Crawler-Zusammenfassung)
Fix
  • Plugin Check / PHPCS: Variablen-Zuweisungen aus dem Dashboard-Template in den Controller verschoben — keine NonPrefixedVariableFound-Warnungen mehr
  • Fest kodierte deutsche Strings in admin.js durch ordnungsgemäß lokalisierte Entsprechungen via wp_localize_script ersetzt

1.2.1 — Schema-Admin-Seite 24. Feb. 2026

Admin UI
  • Neue BreznGEO → Schema.org-Admin-Seite — Schema-Einstellungen sind jetzt ein eigener Menüpunkt auf oberster Ebene statt unter Meta-Generator versteckt
  • Schema-Einstellungen werden in einem separaten Options-Key (bre_schema_settings) gespeichert; bestehende Installationen fallen automatisch auf die bisherigen Einstellungen zurück

1.2.0 — Schema Suite v2 24. Feb. 2026

Schema.org
  • FAQPage JSON-LD — automatisch aus GEO Quick Overview FAQ-Paaren generiert; keine zusätzliche Eingabe nötig
  • BlogPosting / Article JSON-LD mit eingebettetem Autor (Person) und Beitragsbild (ImageObject)
  • ImageObject JSON-LD aus dem Beitragsbild — beinhaltet contentUrl, width und height
  • VideoObject JSON-LD — erkennt automatisch das erste YouTube- oder Vimeo-Embed im Beitragsinhalt und gibt Embed-URL, Thumbnail und Upload-Datum aus
Beitragseditor Meta-Box
  • Neue BreznGEO Schema Meta-Box im Beitrags- und Seiten-Editor — Schema-Typ-Auswahl mit Feldgruppen pro Typ
  • HowTo — Titel + Schrittliste (ein Schritt pro Zeile), gibt HowTo mit HowToStep-Einträgen aus
  • Review — Produkt-/Dienstleistungsname und Sternbewertung (1–5), gibt Review mit Rating aus
  • Recipe — Name, Vorbereitungszeit, Kochzeit, Portionen, Zutaten und Anweisungen; gibt vollständiges Recipe-Schema mit ISO 8601 Zeitangaben aus
  • Event — Name, Startdatum, Enddatum (optional), Ort oder URL; Online/Offline-Umschalter gibt Place oder VirtualLocation aus
  • Meta-Box erscheint nur, wenn mindestens ein Meta-Box-Typ in den Einstellungen aktiviert ist

1.1.1 — Encoding & Styling-Fixes 22. Feb. 2026

Fehlerbehebungen
  • Behoben: Umlaute und Sonderzeichen (ä, ö, ü, schmale Leerzeichen) wurden als rohe Escape-Sequenzen (z. B. u00e4) im GEO Quick Overview Block im Frontend angezeigt
  • Behoben: Die Einstellung für dunkles / helles Farbschema hatte im Frontend-Block keinen sichtbaren Effekt aufgrund des Browser-CSS-Cache von v1.1.0
  • GEO-Block-JSON-Speicherung nutzt jetzt JSON_UNESCAPED_UNICODE — echte UTF-8-Bytes werden gespeichert statt \uXXXX-Escape-Sequenzen, was jegliche Encoding-Unklarheit im Datenbankrundtrip beseitigt

1.1.0 — GEO Quick Overview 22. Feb. 2026

GEO-Block
  • GEO Quick Overview — KI-generierter Pro-Beitrag-Zusammenfassungsblock mit kurzer Zusammenfassung, Kern-Bullet-Points und optionalem FAQ
  • Gerendert als natives <details>-Element: aufklappbar (Standard), immer offen oder nur-speichern (kein Frontend-Output)
  • Konfigurierbare Einfügeposition: nach dem ersten Absatz (Standard), oben oder unten im Inhalt
  • Auto-Generierung beim Veröffentlichen via transition_post_status-Hook; optionale Neu-Generierung bei jedem Update
  • Drei Modi: automatisch beim Veröffentlichen, hybrid (nur automatisch wenn Felder leer sind) oder nur manuell
  • Quality Gate: Wortzahl-Schwellenwert unterdrückt FAQ bei kurzen Beiträgen (Standard: 350 Wörter)
  • JSON-Response-Parsing mit Markdown-Fence-Stripping und harten Grenzen für Zusammenfassungslänge und Bullet/FAQ-Anzahl
  • Füllphrasen-Erkennung verhindert Füllsprache in der KI-Ausgabe
Editor-Integration
  • Beitragseditor-Meta-Box mit Live-Generieren- und Löschen-Buttons, Pro-Beitrag-Aktivierungs-/Deaktivierungs-Schalter und Sperr-Checkbox
  • Auto-Lock: Manuelle Bearbeitungen von Zusammenfassung, Bullets oder FAQ aktivieren automatisch die Sperre, um KI-Überschreibung zu verhindern
  • Optionales Pro-Beitrag-Prompt-Erweiterungsfeld für Anpassungen auf Autorenebene
  • AJAX-Generierung füllt Felder sofort ohne Seitenneuladen; zuletzt generierter Zeitstempel wird in der Meta-Box angezeigt
Einstellungen & Styling
  • Eigene Admin-Seite unter BreznGEO → GEO-Block mit vollständigem Einstellungsformular
  • Konfigurierbare Labels (Block-Titel, Zusammenfassung, Bullets, FAQ) und Ausgabestil pro Website
  • Mitgeliefertes minimales CSS, auf .bre-geo beschränkt — optional, kann deaktiviert werden
  • Benutzerdefiniertes CSS-Feld für Theme-Level-Overrides; Ausgabe automatisch auf .bre-geo{…} beschränkt
  • Vollständig anpassbarer KI-Prompt mit {title}, {content} und {language} Platzhaltern

1.0.0 — Erstveröffentlichung 21. Feb. 2026

KI & Meta-Generierung
  • KI-Meta-Generator — generiert automatisch eine 150–160-Zeichen-SEO-optimierte Metabeschreibung beim Veröffentlichen eines Beitrags
  • Anpassbarer Prompt mit {title}, {content}, {excerpt} und {language} Platzhaltern
  • Automatische Spracherkennung via Polylang, WPML oder WordPress-Website-Locale
  • Fallback-Meta-Extraktion (satzgrenzbasiert, 150–160 Zeichen) — funktioniert ohne API-Key oder bei API-Fehler
  • Multi-Provider-Unterstützung: OpenAI (GPT-4.1, GPT-4o, GPT-4o mini), Anthropic Claude (3.5 Sonnet, 3 Haiku), Google Gemini (2.0 Flash, 1.5 Pro), xAI Grok (3, 3 mini)
Bulk-Operationen
  • Bulk-Generator — Stapelverarbeitung von Beiträgen ohne Metabeschreibung
  • Batch-basierte AJAX-Verarbeitung mit 6-Sekunden-Rate-Limiting-Verzögerung zwischen Batches
  • Transient-basierte Sperre verhindert gleichzeitige Läufe; läuft automatisch nach 15 Minuten ab
  • Bis zu 3 Versuche pro Beitrag mit 1-Sekunden-Verzögerung zwischen Versuchen
  • Live-Fortschrittslog, Pro-Batch-Kostenschätzung und Fehlerbeitrag-Zusammenfassung
Schema.org & GEO
  • Schema.org Enhancer — fügt JSON-LD strukturierte Daten für Organization, Article, Author, Speakable und BreadcrumbList Typen ein
  • KI-Indexierungs-Meta-Tags: max-snippet:-1, max-image-preview:large, max-video-preview:-1
  • BreadcrumbList-Ausgabe automatisch unterdrückt, wenn Rank Math oder Yoast SEO aktiv ist
  • Organization sameAs Social-Links aus dem Admin konfigurierbar
Inhalts-Discovery
  • llms.txt — stellt einen maschinenlesbaren Inhaltsindex unter /llms.txt für KI-Retrieval-Systeme bereit
  • Unterstützt benutzerdefinierten Titel, Beschreibungsabschnitte, Featured-Resource-Links und Post-Type-Auswahl
  • Paginierung für große Websites; HTTP ETag / Last-Modified-Caching; manueller Cache-Leer-Button
Bot & Crawler-Verwaltung
  • robots.txt-Manager — 13 bekannte KI-Crawler und Daten-Harvesting-Bots aus dem WordPress-Admin blockieren: GPTBot, ClaudeBot, Google-Extended, PerplexityBot, CCBot, Applebot-Extended, Bytespider, DataForSeoBot, ImagesiftBot, Omgili, Diffbot, FacebookBot, Amazonbot
  • Crawler-Log — zeichnet KI-Bot-Besuche auf (Bot-Name, gehashte IP, URL) in einer privaten Datenbanktabelle
  • 30-Tage-Zusammenfassung im Plugin-Dashboard angezeigt; Einträge automatisch nach 90 Tagen gelöscht
Editor & Dashboard
  • Metabeschreibungs-Meta-Box — zeigt aktuelle Beschreibung, ihre Quelle (KI / Fallback / Manuell), einen Live-Zeichenzähler und Ein-Klick-KI-Neu-Generierung
  • SEO-Analyse-Sidebar-Widget — Wortzahl, Lesezeit, Überschriftenstruktur, Link-Anzahlen, Live-Warnungen
  • Link-Analyse-Dashboard-Panel — Beiträge ohne interne Links, externe-Link-Ausreißer, Top-Pillar-Pages nach eingehender Link-Anzahl
  • Plugin-Dashboard mit Provider-Status, Meta-Coverage pro Beitragstyp und Crawler-Aktivitäts-Zusammenfassung
Plugin-Integrationen
  • Natives Meta-Feld Write-through für Rank Math, Yoast SEO, AIOSEO und SEOPress
  • Bestehende Beschreibungen, die von diesen Plugins gesetzt wurden, werden immer respektiert und nie überschrieben
  • Eigenständige Meta-Ausgabe automatisch unterdrückt, wenn ein unterstütztes SEO-Plugin aktiv ist
  • Spracherkennung aus Polylang und WPML für korrekte Metabeschreibungsgenerierung pro Sprache
Sicherheit
  • KeyVault API-Key-Verschleierung — Keys werden mit XOR verschlüsselt, abgeleitet aus WordPress-Auth-Salts vor der Datenbankspeicherung; nie im Klartext gespeichert
  • Keine OpenSSL-Extension erforderlich
  • SHA-256 IP-Hashing im Crawler-Log — originale IP-Adressen werden nie gespeichert
Entwickler
  • bre_prompt Filter — KI-Prompt zur Laufzeit anpassen
  • bre_meta_saved Action — in Metabeschreibungs-Speicherungen für benutzerdefinierte Workflows einhaken
  • Erweiterbare Provider-Architektur — ProviderInterface implementieren, um eigene KI-Provider hinzuzufügen