@include('livewire.admin.seodashboards.tab')
{{-- Page title --}}
{{-- Flash Messages --}}
@if (session()->has('error'))
{{-- Fallback notice --}}
@if($isFallback)
{{-- ════════════════════════════════════════════════════════════════════ --}}
{{-- TOP CLICKS + TOP IMPRESSIONS STRIP --}}
{{-- ════════════════════════════════════════════════════════════════════ --}}
{{-- Pagination --}}
@if($paginator->hasPages())
@endif
GSC Keywords Dashboard
Keywords from Google Search Console — ranked by end-date clicks
{{ session('error') }}
@endif
{{-- Filter --}}
⚠ No date selected — showing last 30 days
({{ \Carbon\Carbon::parse($summary['date_from'])->format('d M Y') }}
→ {{ \Carbon\Carbon::parse($summary['date_to'])->format('d M Y') }})
@endif
{{-- Active range --}}
Range: {{ \Carbon\Carbon::parse($summary['date_from'])->format('d M Y') }} →
{{ \Carbon\Carbon::parse($summary['date_to'])->format('d M Y') }}
· End-day: {{ \Carbon\Carbon::parse($summary['date_1'])->format('d M Y') }}
· {{ number_format($summary['total_pairs']) }} keyword–page pairs
· {{ number_format($summary['total_queries']) }} unique queries
@if(!empty($search)) · search: "{{ $search }}" @endif
{{-- ════════════════════════════════════════════════════════════════════ --}}
{{-- SUMMARY CARDS --}}
{{-- ════════════════════════════════════════════════════════════════════ --}}
Unique queries
{{ number_format($summary['total_queries']) }}
{{ number_format($summary['total_pairs']) }} pairs
Clicks —
{{ \Carbon\Carbon::parse($summary['date_1'])->format('d M') }}
{{ number_format($summary['clicks_1d']) }}
end date · sort key
Clicks — range
{{ number_format($summary['grand_clicks']) }}
full period
Impressions — range
{{ number_format($summary['grand_impressions']) }}
full period
Avg position
{{ $summary['avg_position'] ?? '—' }}
across all queries
Avg CTR
{{ $summary['avg_ctr'] ? $summary['avg_ctr'] : '—' }}
across all queries
{{-- Top 5 by clicks --}}
{{-- Top 5 by impressions --}}
{{-- ════════════════════════════════════════════════════════════════════ --}}
{{-- MAIN TABLE --}}
{{-- ════════════════════════════════════════════════════════════════════ --}}
Top 5 by clicks (range)
@php $maxC = $topByClicks->max('total_clicks') ?: 1; @endphp
@foreach($topByClicks as $i => $kw)
@php $barW = round($kw->total_clicks / $maxC * 100); @endphp
{{ $i + 1 }}
{{ $kw->query }}
{{ number_format($kw->total_clicks) }}
@endforeach
Top 5 by impressions (range)
@php $maxI = $topByImpressions->max('total_impressions') ?: 1; @endphp
@foreach($topByImpressions as $i => $kw)
@php $barW = round($kw->total_impressions / $maxI * 100); @endphp
{{ $i + 1 }}
{{ $kw->query }}
{{ number_format($kw->total_impressions) }}
@endforeach
| # | Keyword & Page | 24H Traffic {{ \Carbon\Carbon::parse($summary['date_1'])->format('d M Y') }} | Traffic {{ \Carbon\Carbon::parse($summary['date_from'])->format('d M') }} – {{ \Carbon\Carbon::parse($summary['date_to'])->format('d M') }} | Impressions | Avg pos. | CTR |
|---|---|---|---|---|---|---|
| {{ $offset + $loop->iteration }} | {{-- Keyword + page --}}{{ $row->query }} | {{-- End-date clicks --}}
{{ number_format($row->clicks_1d) }}
{{ number_format($row->impressions_1d) }} impr.
|
{{-- Range clicks --}}
{{ number_format($row->clicks_range) }}
avg {{ number_format($row->avg_clicks_per_day) }}/day
|
{{-- Impressions range --}}
{{ number_format($row->impressions_range) }}
|
{{-- Avg position — color-coded --}}
@if($row->avg_position) {{ $row->avg_position }} @else — @endif | {{-- CTR --}}{{ $row->avg_ctr ? $row->avg_ctr . '%' : '—' }} |
| No keywords found for this period. | ||||||