Neue Spielstruktur, SEO-Feinschliff & Multi-Game-Sicherheit
Ein umfangreicher Umbau steht an: Die index.php ist jetzt eine reine öffentliche Landing Page, während das Ingame-Zuhause in die neue start.php wandert. Dazu gibt es drei Sicherheitsnetze, damit ein User nie zwei aktive Spiele gleichzeitig in der DB haben kann, einen kritischen Canonical-Fix für Google und 19 weitere Seiten im Nogame-Modus für die AdSense-Integration.
🏠 Neue Startseiten-Architektur
index.phpläuft jetzt ausschließlich als öffentliche Landing Page (SEO-Header, Spielauswahl, Neues-Spiel-Formular) — auch bei aktivergameidbleibt die Seite als Landing Page sichtbar, via$is_public_page = true- Die neue
start.phpist das zentrale Ingame-Zuhause und enthält alle bisherigen Ingame-Elemente der Startseite (Money-EOS, Expiring Contracts, Standings, Player Leaders …) - Menüpunkt "START", Klick auf den Teamnamen im Header und das Home-Icon im Icon-Menü verlinken jetzt auf
start.php - Buttons "Spielen" und "Starten" leiten nach Spielstart korrekt auf
start.phpweiter —startgame.phpund alle Ingame-Error-Redirects wurden entsprechend angepasst
🛡️ Multi-Active-Game Safeguards
- Drei Schutzschichten verhindern, dass ein User je zwei aktive Spiele gleichzeitig in der Datenbank hat:
- Continuegame-Handler: Deaktiviert jetzt in einem einzigen bulk-SQL-Statement alle Cookie-eigenen Spiele, bevor das Ziel-Spiel aktiviert wird — keine Race-Condition mehr möglich
- Newgame-Handler: Vor dem
INSERTwerden ebenfalls alle bisherigen Spiele des Users deaktiviert - Gameid-Resolution: Sollte trotzdem je mehr als ein aktives Spiel gefunden werden, werden die Extras automatisch deaktiviert und im
error_logalsMULTI-ACTIVE GUARDvermerkt
🔗 Canonical-URL-Fix
- Google Search Console meldete
/index.phpund/als zwei separate URLs mit unterschiedlichen Canonicals — beide zeigten aber denselben Inhalt header.phpnormalisiert jetzt/index.php→/für das<link rel="canonical">-Tag, sowohl auffootballfranchise.deals auch auffootball-franchise.com- Die
www-vs-non-www-Canonicalisierung war bereits korrekt — Besuche aufwww.footballfranchise.de/index.phpzeigen jetzt ein einheitlichescanonical → https://footballfranchise.de/
🕸️ AdSense-Ready: 19 weitere Seiten
- Der
$allow_nogame_ingame-Flag wurde auf alle zentralen Ingame-Seiten ausgerollt:franchise,tradingblock,trade,players,freeagents,draft,teams,table,conference,division,schedule,players_stats,player_stats_leaders,halloffame,powerranking,players_watchlist,tradehistory,achievements,coins - Alle Seiten rendern jetzt ohne aktive
gameidihre vollständige HTML-Struktur mit leeren Tabellen — perfekt für den AdSense-Crawler, um Block-IDs für Anzeigenplatzierungen zu referenzieren
🧹 Cronjob-Schutz
cron_cleanup_old_games.phpschützt jetzt Spiel-ID 1 (Seed-/Demo-Spiel) vor der automatischen Löschung nach 30 Tagen Inaktivität- Doppelte Sicherung:
WHERE id <> 1imSELECTund zusätzlich ein Hard-Guard in der Delete-Loop
Mit der sauberen Trennung zwischen öffentlicher Landing Page und Ingame-Home sowie den Multi-Active-Game-Schutzmechanismen ist die App deutlich robuster geworden. Parallel kann der Crawler jetzt alle wichtigen Seiten indexieren — ein riesiger Schritt Richtung produktiver SEO- und AdSense-Integration.