Erweiterungsideen: Public Explorer (Audit 2026-02-22)
Nicht umgesetzte Erweiterungsideen für den Public Explorer.
| Item | Beschreibung | Priorität |
|---|---|---|
/ping Endpoint 2023 abgeschaltet (404). Code wurde am 2026-02-28 entfernt. | Erledigt | |
| Dynamische robots.txt (E3) | Route /robots.txt statt statische Datei — generiert Sitemap: Zeile automatisch aus config('app.url'). Pro: Kein manuelles Update bei Domain-Wechsel. Contra: Overhead bei jedem Request (minimal), Edge Cases bei CDN/Cache. Aktuell: Command aktualisiert robots.txt bei jeder Generation. | Niedrig |
| Image-Sitemap (E4) | <image:image> Extension für Profil-Thumbnails in Profile-Sitemaps. Verbessert Google Images Indexierung. | Niedrig |
| News-Sitemap (E5) | Separate sitemap-news.xml für Google News wenn Blog/News-Feature kommt. | Niedrig |
| Sitemap-Diff-Log (E6) | Vergleich mit vorheriger Generation — wie viele URLs hinzugefügt/entfernt. Nützlich für SEO-Monitoring. | Niedrig |
| hreflang-Support (E7) | Wenn Mehrsprachigkeit kommt, <xhtml:link> für Sprachvarianten in Sitemaps. | Niedrig |
| Sitemap-Kompression (E8) | .xml.gz komprimierte Sitemaps für schnellere Google-Verarbeitung bei großen Sitemaps (>10MB). | Niedrig |
| Suchfeld als sticky Header-Bar | Aktuell ist das Suchfeld nur im Index-Component eingebettet. Plan sah eine eigene <x-public-explorer-search /> Blade-Component vor, die auf allen /explorer* Routes als sticky Bar unterhalb der Navigation eingeblendet wird. | Mittel |
| Show-Seite Caching (1h) | Cache::remember('public-explorer:profile:{id}', 1h). Aktuell kein Caching auf der Show-Seite — Daten werden direkt aus DB-JSON-Feldern geladen. Bei hohem Traffic relevant. | Mittel |
| Search-Resultate Caching (15min) | Cache::remember('public-explorer:search:{hash}', 15min). Aktuell keine Suche-Ergebnis-Caches. Bei >50k published Profiles relevant. | Niedrig |
| Trending-Sektion auf Startseite | "Gerade im Trend" als eigene Sektion neben Random-Profilen. Service hat bereits getTrendingProfiles() mit 6h Cache, aber die Index-Seite zeigt nur Random oder Suchergebnisse. | Mittel |
| Country-Filter | Profile nach Land filtern auf Index/Browse-Seiten. country-Feld existiert bereits auf public_explorer_profiles. | Niedrig |
| Social-Share-Buttons auf Profilseite | "Dieses Profil teilen" (Twitter, WhatsApp, Link kopieren) auf der Show-Seite. | Niedrig |
| Open Graph Preview-Bilder | Dynamisch generierte OG-Images mit Profilbild + Score + Follower-Zahl. Erfordert Image-Generation. | Niedrig |
| Breadcrumbs (UI) | JSON-LD Breadcrumbs sind implementiert, aber sichtbare UI-Breadcrumbs auf der Show-Seite fehlen. | Niedrig |
| 410 Gone für SEO | Soft-deleted Profile könnten statt 302 Redirect ein 410 Gone zurückgeben, um Suchmaschinen zu signalisieren, dass die Seite dauerhaft entfernt wurde. Aktuell: 302 Temporary → Explorer-Startseite. Pro: besseres SEO-Signal. Contra: Profil könnte re-eligible werden. | Niedrig |
Location: app/Livewire/PublicExplorer/, app/Services/PublicExplorer/PublicExplorerService.php
Erledigt (Redirect-Logik, 2026-02-22)
Folgende Items wurden im Rahmen der Redirect-Logik umgesetzt:
Profil-Slug 301-Redirect— Implementiert inShow.php(301 auf canonical URL bei Slug-Mismatch)- Soft-Delete + Redirect: Profile werden soft-deleted statt hard-deleted, mit
?removed=1Notice und Category-Redirect (E5) - Auto url_redirects: Automatische Redirect-Einträge in
url_redirectsmit Filter in Admin Error-Monitor (E4) - Re-Eligibility-Tracking:
restored_atTimestamp + Admin-UI-Integration (E7) - Prune-Integration: Soft-deleted Einträge >90 Tage werden force-deleted, zugehörige Auto-Redirects deaktiviert
Erledigt (Tag Auto-Redirects, 2026-02-23)
- Tag Auto-Redirects: Automatische 302-Redirects für Tag-Seiten (
/explorer/tag/{slug}) die alle Profile verloren haben.PublicExplorerServicesammelt Tags vor/nach dem Refresh, erstellturl_redirectsfür entfernte Tags, deaktiviert Redirects für wiederhergestellte Tags.TagLandingzeigt Soft-Redirect statt hard 404. (app/Services/PublicExplorer/PublicExplorerService.php,app/Livewire/PublicExplorer/TagLanding.php)
Erledigt (XML-Sitemap, 2026-02-22)
Sitemap Command (— Vollständig implementiert: XMLWriter-basierte Generierung, Sitemap-Index mit Teil-Sitemaps (static, categories, tags, profiles), Partitionierung bei >10k Profilen, CMS noindex-Filtering, atomic file replacement, Forge-safe Storage, robots.txt-Update, Tages-Pipeline-Integration, Adminsitemap:generate)/admin/sitemap-management(E2)
Erledigt (Production-Bugfixes, 2026-02-22)
- Public Explorer Refresh Timeout:
cleanupOrphans()nutzteNOT IN (SELECT id FROM social_profiles)mit 400k+ Rows — lief 34 Minuten bis zum Timeout. Fix:LEFT JOIN WHERE NULL+ Logging. (app/Services/PublicExplorer/PublicExplorerService.php) - Sitemap Management Auto-Refresh: "Jetzt generieren" lief async ohne UI-Feedback. Fix: synchroner
Artisan::call()+ Computed-Property-Invalidierung. (app/Livewire/Admin/SitemapManagement/Index.php) - robots.txt Crawl-Schutz:
Disallowfür alle/explorer?*q=Suchquery-Pfade, verhindert endlose Crawl-Permutationen. (public/robots.txt,app/Services/Sitemap/SitemapGenerator.php)