diff --git a/app/Http/Controllers/GameController.php b/app/Http/Controllers/GameController.php index 6e60866..cac3d37 100644 --- a/app/Http/Controllers/GameController.php +++ b/app/Http/Controllers/GameController.php @@ -39,7 +39,10 @@ class GameController extends Controller $genres = Genre::orderBy('name')->get(); $platforms = Platform::orderBy('name')->get(); - return view('games.index', compact('games', 'genres', 'platforms')); + $shouldNoindex = ($request->get('page', 1) > 1) || + (collect(['genre', 'platform', 'year', 'sort', 'q'])->filter(fn($k) => $request->filled($k))->count() >= 2); + + return view('games.index', compact('games', 'genres', 'platforms', 'shouldNoindex')); } public function show(Game $game) @@ -61,7 +64,18 @@ class GameController extends Controller ->limit(20) ->get(); - $response = view('games.show', compact('game', 'userGame', 'userReview', 'userLists', 'comments')); + $similarGames = collect(); + if ($game->genres->isNotEmpty()) { + $similarGames = Game::published() + ->whereHas('genres', fn($q) => $q->whereIn('genres.id', $game->genres->pluck('id'))) + ->where('id', '!=', $game->id) + ->where('rating_count', '>=', 1) + ->orderByDesc('rating_avg') + ->limit(6) + ->get(); + } + + $response = view('games.show', compact('game', 'userGame', 'userReview', 'userLists', 'comments', 'similarGames')); return auth()->check() ? $response : response($response)->header('Cache-Control', 'public, max-age=300'); diff --git a/public/robots.txt b/public/robots.txt index 12aa2e9..56c794e 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,6 +1,18 @@ User-agent: * Allow: / -Disallow: /profile + Disallow: /dashboard +Disallow: /profile +Disallow: /library +Disallow: /notifications +Disallow: /activity +Disallow: /login +Disallow: /register +Disallow: /forgot-password +Disallow: /reset-password +Disallow: /verify-email +Disallow: /games/search +Disallow: /lists +Disallow: /*?*page=* Sitemap: https://gamelog.ro/sitemap.xml diff --git a/resources/views/games/index.blade.php b/resources/views/games/index.blade.php index 0237f4d..94419d1 100644 --- a/resources/views/games/index.blade.php +++ b/resources/views/games/index.blade.php @@ -1,6 +1,11 @@ @extends('layouts.app') @section('title', 'Browse Games — LoreKeepers') +@section('description', 'Browse and discover video games. Filter by genre, platform, and year. Find your next favorite game on LoreKeepers.') +@section('canonical', route('games.index')) +@if($shouldNoindex ?? false) +@section('robots', 'noindex,follow') +@endif @section('content')
diff --git a/resources/views/games/new-releases.blade.php b/resources/views/games/new-releases.blade.php index 61be8fe..c1d9430 100644 --- a/resources/views/games/new-releases.blade.php +++ b/resources/views/games/new-releases.blade.php @@ -1,6 +1,8 @@ @extends('layouts.app') @section('title', 'New Releases — LoreKeepers') +@section('description', 'Browse the latest video game releases. Stay up to date with new games across all platforms.') +@section('canonical', route('games.new-releases')) @section('content')
diff --git a/resources/views/games/search.blade.php b/resources/views/games/search.blade.php index 65605d3..0390c5f 100644 --- a/resources/views/games/search.blade.php +++ b/resources/views/games/search.blade.php @@ -1,6 +1,7 @@ @extends('layouts.app') @section('title', $q ? "Search: {$q} — LoreKeepers" : 'Search Games — LoreKeepers') +@section('robots', 'noindex,follow') @section('content')
diff --git a/resources/views/games/show.blade.php b/resources/views/games/show.blade.php index fc0e7ae..24dfbbf 100644 --- a/resources/views/games/show.blade.php +++ b/resources/views/games/show.blade.php @@ -6,9 +6,19 @@ @section('og_title', $game->title . ' — LoreKeepers') @section('og_description', $game->summary ? Str::limit($game->summary, 155) : 'Track ' . $game->title . ' on LoreKeepers.') @section('og_image', $game->cover_url ?? asset('images/og-default.jpg')) -@section('og_type', 'game') +@section('og_type', 'website') +@section('canonical', route('games.show', $game)) @section('content') +
{{-- Main Info --}} @@ -269,7 +279,7 @@
@foreach($game->screenshots as $i => $shot) @endforeach
@@ -304,7 +314,7 @@ {{-- Full-size image --}} - Screenshot + {{-- Next --}}
+ @if($similarGames->isNotEmpty()) +
+

You Might Also Like

+
+ @foreach($similarGames as $similar) + + @endforeach +
+
+ @endif +
@push('scripts') +