@php( $loc = $this->page?->locality ) @if(($this->page?->status ?? null) !== \App\Models\Page::STATUS_PUBLISHED)
Cette page n'est pas publiée. Le maillage interne ne cible que les pages publiées: aucun lien n'est généré pour cette page tant qu'elle reste en brouillon.
@endif @if(is_null($loc?->lat) || is_null($loc?->lng))
Coordonnées manquantes pour la localité (lat/lng). Cette page sera exclue du maillage tant que la localité n'a pas de position. Utilisez la commande php artisan localities:enrich ou complétez manuellement.
@endif

Liens sortants (maillage secteur)

{{ $this->page?->outgoingLinks()->where('scope','sector')->where('company_id',$this->page->company_id)->count() ?? 0 }} lien(s)
@php($__out_count = $this->page?->outgoingLinks()->where('scope','sector')->where('company_id',$this->page->company_id)->count() ?? 0) @if($__out_count === 0)
Aucun lien sortant pour cette page.
@else
    @foreach($this->page->outgoingLinks()->where('scope','sector')->where('company_id',$this->page->company_id)->with(['to.locality','to.sector'])->orderBy('rank')->get() as $L)
  • {{ $L->link_kind }} {{ $L->to?->title ?? ('Page #'.$L->to_page_id) }}
    Rang: {{ $L->rank ?? '—' }} · Score: {{ number_format((float) ($L->score ?? 0), 3, ',', ' ') }}
    éditer
  • @endforeach
@endif

Liens entrants (maillage secteur)

{{ $this->page?->incomingLinks()->where('scope','sector')->where('company_id',$this->page->company_id)->count() ?? 0 }} lien(s)
@php($__in_count = $this->page?->incomingLinks()->where('scope','sector')->where('company_id',$this->page->company_id)->count() ?? 0) @if($__in_count === 0)
Aucun lien entrant vers cette page.
@else
    @foreach($this->page->incomingLinks()->where('scope','sector')->where('company_id',$this->page->company_id)->with(['from.locality','from.sector'])->orderBy('rank')->get() as $L)
  • {{ $L->link_kind }} {{ $L->from?->title ?? ('Page #'.$L->from_page_id) }}
    Rang: {{ $L->rank ?? '—' }} · Score: {{ number_format((float) ($L->score ?? 0), 3, ',', ' ') }}
    éditer
  • @endforeach
@endif

Liens sortants (localité)

{{ $this->page?->outgoingLinks()->where('scope','locality')->where('company_id',$this->page->company_id)->count() ?? 0 }} lien(s)
@php($__out_loc_count = $this->page?->outgoingLinks()->where('scope','locality')->where('company_id',$this->page->company_id)->count() ?? 0) @if($__out_loc_count === 0)
Aucun lien sortant (localité) pour cette page.
@else
    @foreach($this->page->outgoingLinks()->where('scope','locality')->where('company_id',$this->page->company_id)->with(['to.locality','to.sector'])->orderBy('rank')->get() as $L)
  • {{ $L->link_kind }} {{ $L->to?->title ?? ('Page #'.$L->to_page_id) }}
    Rang: {{ $L->rank ?? '—' }}
    éditer
  • @endforeach
@endif

Liens entrants (localité)

{{ $this->page?->incomingLinks()->where('scope','locality')->where('company_id',$this->page->company_id)->count() ?? 0 }} lien(s)
@php($__in_loc_count = $this->page?->incomingLinks()->where('scope','locality')->where('company_id',$this->page->company_id)->count() ?? 0) @if($__in_loc_count === 0)
Aucun lien entrant (localité) vers cette page.
@else
    @foreach($this->page->incomingLinks()->where('scope','locality')->where('company_id',$this->page->company_id)->with(['from.locality','from.sector'])->orderBy('rank')->get() as $L)
  • {{ $L->link_kind }} {{ $L->from?->title ?? ('Page #'.$L->from_page_id) }}
    Rang: {{ $L->rank ?? '—' }}
    éditer
  • @endforeach
@endif
@if( (($this->page?->gsc_clicks_30d ?? 0) > 0) || (($this->page?->gsc_impressions_30d ?? 0) > 0) || (!is_null($this->page?->gsc_position_avg)) )

Performances SEO (Search Console)

Dernière synchro: {{ $this->page?->gsc_last_synced_at ? \Carbon\Carbon::parse($this->page->gsc_last_synced_at)->diffForHumans() : '—' }}
Position moyenne
{{ !is_null($this->page?->gsc_position_avg) ? number_format((float) $this->page->gsc_position_avg, 1, ',', ' ') : '—' }}
Clics (30j)
{{ number_format((int) ($this->page?->gsc_clicks_30d ?? 0), 0, ',', ' ') }}
Impressions (30j)
{{ number_format((int) ($this->page?->gsc_impressions_30d ?? 0), 0, ',', ' ') }}
CTR (30j)
{{ (($this->page?->gsc_impressions_30d ?? 0) > 0) ? ( number_format(((($this->page?->gsc_clicks_30d ?? 0) / max(1, (int) ($this->page?->gsc_impressions_30d ?? 0))) * 100), 2, ',', ' ') . '%') : '—' }}
@if(!empty($this->page?->gsc_top_queries ?? []))
Top requêtes (30j)
@foreach(($this->page?->gsc_top_queries ?? []) as $q) @endforeach
Requête Clics Impr. CTR Position moy.
{{ $q['query'] ?? '' }} {{ number_format((int) ($q['clicks'] ?? 0), 0, ',', ' ') }} {{ number_format((int) ($q['impressions'] ?? 0), 0, ',', ' ') }} {{ isset($q['ctr']) ? number_format((float) $q['ctr'], 2, ',', ' ') . '%' : '—' }} {{ isset($q['position_avg']) ? number_format((float) $q['position_avg'], 1, ',', ' ') : '—' }}
@endif
Astuces SEO local: - Optimisez le titre et H1 avec le service + ville/quartier. - Couvrez l’intention locale des principales requêtes listées. - Ajoutez des éléments de preuve locale (avis, chantiers, photos). - Vérifiez la cohérence NAP (Nom, Adresse, Téléphone) et maillage interne.
@endif
{{ $this->form }}
{{ __('dashboard.actions.update') }}