Introduction
laravel/head est le package officiel qui permet de gérer le<head> d’une application via une API fluent. Il prend en charge le title, les meta, Open Graph, l’URL canonique, les directives robots, les hints de performance et les données structurées, et fonctionne aussi bien avec Blade qu’avec Livewire ou Inertia. La version 0.1.0 est sortie le 28 juillet 2026.
Ordre de résolution
Les données du<head> d’une page sont résolues à partir de cinq couches, de la priorité la plus faible à la plus élevée :
- Valeurs par défaut de la page.
- Métadonnées d’un groupe de routes.
- Métadonnées d’une route.
- Métadonnées définies au runtime.
- Métadonnées des pages d’erreur.
title défini au runtime remplace celui de la route, mais ne remplace pas la description associée.
Enregistrer les valeurs par défaut
Enregistrez les valeurs par défaut du site dans un service provider.Acme s’affiche tel quel ; dès qu’une couche supérieure définit un titre, le suffixe hérité s’applique (Head::title('About') devient About - Acme).
Métadonnées de route
Sur les pages statiques, vous pouvez attacher les métadonnées directement à la définition de la route.withHead() stocke un simple tableau via l’API standard des métadonnées de route de Laravel (sous la clé head de ->metadata()), ce qui préserve la compatibilité avec les routes mises en cache.
Métadonnées runtime
Pour des valeurs qui ne sont connues qu’à la réception de la requête (comme le titre d’un billet), utilisez la façadeHead au moment de l’exécution.
when() / unless().
Pages d’erreur
Vous pouvez enregistrer des métadonnées par code de statut.Open Graph et Twitter Card
og() configure les propriétés Open Graph, tandis que des méthodes comme ogImage() permettent d’ajouter des images, des vidéos ou de l’audio.
title et la description du document alimentent automatiquement og:title / og:description s’ils ne sont pas définis explicitement.
Une fois Twitter Card enregistrée dans les valeurs par défaut, elle est rendue automatiquement à partir des mêmes title, description et image que Open Graph.
PWA, performance et icônes
Le helperpwa() regroupe les balises <head> nécessaires à une application web installable.
Theme color
La couleur de thème peut être définie globalement, par route ou au runtime. L’enumMedia permet même de spécifier des couleurs différentes selon le média.
Media inclut également Portrait et Landscape.
Métadonnées d’application et icônes
Laravel Head expose des helpers pour les métadonnées courantes de navigateur et d’application.favicon() est un alias de icon() qui accepte les mêmes arguments type, sizes et media.
Performance et découvrabilité
Laravel Head peut aussi générer des hints de performance, des liens de pagination, des variantes de locale et des balises de découverte de flux.preloadAsset() / prefetchAsset() résolvent l’URL via le helper asset() et déduisent automatiquement l’attribut as à partir de l’extension.
Balises personnalisées
Pour toute balise ne disposant pas d’une méthode dédiée, utilisezmeta() / link().
meta() utilise name= pour les balises meta classiques, mais bascule automatiquement sur property= pour les clés qui l’exigent (comme Open Graph og: ou les métadonnées d’article article:).
Données structurées (JSON-LD)
Le builder de schémas intégré couvre les principaux types JSON-LD.article, blogPosting, product, offer, brand, breadcrumbs, faq, organization, person, webPage et webSite. Les fabriques inconnues retombent sur un objet schéma générique, ce qui vous permet de représenter n’importe quel type schema.org personnalisé.
Les éléments d’un fil d’Ariane peuvent être ajoutés un par un ou en bloc. La position est attribuée automatiquement dans l’ordre d’ajout.
question() pour en ajouter une, questions() pour en ajouter plusieurs.
Conclusion
laravel/head permet de gérer de manière centralisée les métadonnées nécessaires au SEO et au partage social, aussi bien avec Blade qu’avec Livewire ou Inertia. Sa structure à cinq couches — défauts, groupe de routes, route, runtime et pages d’erreur — préserve la cohérence globale du site tout en permettant une personnalisation fine page par page.
Dépôt laravel/head
Le code source et les dernières informations.