Skip to main content

はじめに

laravel/head は、アプリケーションのドキュメント <head> を流暢なAPIで管理するLaravel公式パッケージです。title・meta タグ、Open Graph、canonical URL、robots ディレクティブ、パフォーマンスヒント、構造化データをサポートし、Blade・Livewire・Inertia のいずれでも動作します。2026年7月28日にv0.1.0がリリースされました。

解決の優先順位

ページの head データは、優先度の低い順から次の5つの層で解決されます。
  1. ページのデフォルト
  2. ルートグループのメタデータ
  3. ルートのメタデータ
  4. ランタイムのメタデータ
  5. エラーページのメタデータ
上位の層は下位の層をフィールド単位で上書きします。例えばランタイムで設定した title はルートの title を置き換えますが、description までは置き換えません。

デフォルトの登録

サービスプロバイダーでサイト全体のデフォルトを登録します。
デフォルト層は最も優先度が低いページ層です。上位の層で title が設定されない限り Acme がそのまま表示され、上位層が title を設定すると、継承された suffix が適用されます(Head::title('About')About - Acme になります)。

ルートメタデータ

静的なページはルート定義に直接メタデータを紐付けられます。
グループ全体に共通のメタデータを適用することもできます。
withHead() は Laravel 標準のルートメタデータAPI(->metadata()head キー配下)を通じてプレーンな配列を保存するため、キャッシュされたルートとの互換性も保たれます。

ランタイムメタデータ

投稿タイトルのようにリクエストが来るまで分からない値は、Head ファサードで実行時に設定します。
条件付きのメタデータは when() / unless() で流暢に記述できます。

エラーページ

ステータスコードごとのメタデータも登録できます。
登録済みのエラーステータスがレンダリングされる場合、このメタデータは他のどの層よりも優先されます。

Open Graph と Twitter Card

og() で Open Graph プロパティを設定し、ogImage() などのメソッドで画像・動画・音声を追加できます。
document の titledescription は、未設定の og:title / og:description を自動的に補完します。 Twitter Card はデフォルトに登録しておくだけで、Open Graph と同じ title・description・画像から自動的にレンダリングされます。
個別のページでTwitterの値を明示的に上書きすることもできます。

PWA・パフォーマンス・アイコン

pwa() ヘルパーはインストール可能な Web アプリに必要な <head> タグをまとめて設定します。

テーマカラー

テーマカラーはグローバル・ルート・ランタイムのいずれでも設定できます。Media enum を使えばメディア別のテーマカラーも指定できます。
Media には PortraitLandscape も含まれます。

アプリメタデータとアイコン

Laravel Head にはブラウザやアプリの一般的なメタデータ用ヘルパーが含まれています。
favicon()icon() のエイリアスで、同じ typesizesmedia 引数を受け付けます。

パフォーマンスと発見可能性

Laravel Head はパフォーマンスヒント、ページネーションリンク、ロケール代替表現、フィードの発見用タグもレンダリングできます。
preloadAsset() / prefetchAsset()asset() ヘルパーでURLを解決し、拡張子から as 属性を自動検出します。

カスタムタグ

専用メソッドがないタグは meta() / link() で追加できます。
meta() は通常のmetaタグには name= を使いますが、Open Graph(og:)や記事メタデータ(article:)のように本来 property= を使うキーの場合は自動的に切り替わります。

構造化データ(JSON-LD)

組み込みのスキーマビルダーは主要なJSON-LDタイプをカバーしています。
組み込みのファクトリーメソッドは articleblogPostingproductofferbrandbreadcrumbsfaqorganizationpersonwebPagewebSite です。未知のファクトリーメソッドは汎用のスキーマオブジェクトにフォールバックするため、カスタムのschema.orgタイプも表現できます。 パンくずリストの項目は1件ずつ、またはまとめて追加できます。位置は追加順に自動で割り当てられます。
FAQの質問も同様のパターンです。question() で1件ずつ、questions() でまとめて追加できます。
カスタムのスキーマタイプは明示的に登録できます。

まとめ

laravel/head は、Blade・Livewire・Inertia を横断してSEOやソーシャルシェアに必要なメタデータを一元管理できるパッケージです。デフォルト・ルート・ランタイム・エラーページの5層構造により、サイト全体の一貫性を保ちつつページ単位の柔軟なカスタマイズも可能になります。

laravel/head リポジトリ

ソースコードと最新情報はこちら。
最終更新日 2026年7月29日