@yield('meta') @if (View::hasSection('canonical')) @php $canonicalUrl = trim(View::yieldContent('canonical')); // Liste des paramètres de tracking à supprimer $trackingParams = [ 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'utm_id', 'fbclid', 'gclid', 'dclid', 'msclkid', 'ref', 'referrer', '_ga', '_gid', ]; // Parser l'URL $urlParts = parse_url($canonicalUrl); $cleanUrl = $urlParts['scheme'] . '://' . $urlParts['host']; if (isset($urlParts['path'])) { $cleanUrl .= $urlParts['path']; } // Pour la plupart des pages, on supprime tous les paramètres // Sauf pour les pages de listing où on garde les paramètres de pagination/filtres $keepParams = false; if (isset($urlParts['path'])) { $keepParams = preg_match( '/\/(biens-a-vendre|biens-a-louer|for-sale|to-let|te-koop|te-huur)/', $urlParts['path'], ); } if ($keepParams && isset($urlParts['query'])) { parse_str($urlParts['query'], $params); $cleanParams = array_diff_key($params, array_flip($trackingParams)); if (!empty($cleanParams)) { $cleanUrl .= '?' . http_build_query($cleanParams); } } @endphp @endif @yield('styles') @stack('head') @if (isset($localizedUrls) && !empty($localizedUrls)) @foreach ($localizedUrls as $locale => $url) @endforeach @endif @if (app()->environment('production')) @endif @if ( (Route::currentRouteName() === 'home' || Route::currentRouteName() === 'contact') && (request()->is('fr') || request()->is('fr/*'))) @include('includes.schema-org') @endif