Next.jsでのメタファイルの設定について
はじめに
以下の環境で、メタファイルの作り方・保存場所について調べました
-
Next.js 14.3
-
App Router
-
メタファイルの種類
favicon
icon
apple-icon
manifest.json
- OGP画像、Twitterカード用画像
robots.txt
sitemap.xml
この形式は、内容を簡潔に伝えるためのものです。必要に応じて調整してください。
メタファイル
アイコン系(favicon, icon, apple-icon)
faviconは、ブラウザのタブに表示される小さなアイコンです。
iconは主にAndroidのホーム画面やWindows、Linuxのデスクトップで表示され、apple-iconはAppleデバイスのホーム画面で表示されます。
ファイルの格納場所は以下の通りです。
ファイルの種類 | サポートされているファイル形式 | 格納場所 |
---|---|---|
favicon | .ico | app/ |
icon | .ico, .jpg, .jpeg, .png, .svg | app/**/* |
apple-icon | .jpg, .jpeg, .png | app/**/* |
iconやapple-iconは、画像ファイルを置く代わりに画像を生成するソースを置くこともできます。
設定は必要なく、ファイルを置くだけで<head>
タグ内に設定が追加されます。
マニュアルは以下にあります。
manifest.json
通常、PWAに対応するために配置するファイルです。
app/にmanifest.jsonを配置するか、jsonを作成するmanifest.jsかmanifest.tsを配置します。
マニュアルは以下にあります。
OGP画像やTwitterカードの画像
OGP画像やTwitterカードの画像を設定します。
OGP画像やTwitterカードの画像は、シェアされた場合に表示される画像です。
ファイルの格納場所は、app/です。
ファイルの種類 | サポートされているファイル形式 |
---|---|
opengraph-image | .jpg, .jpeg, .png, .gif |
twitter-image | .jpg, .jpeg, .png, .gif |
opengraph-image.alt | .txt |
twitter-image.alt | .txt |
opengraph-image.pngを配置してbuildしてみたところ、twitter用の設定も生成されていたので、共通でよければopengraph-imageを置くだけで良さそうです。
~.altは、画像が読み込めない場合などの代替テキストです。
アイコン系と同じように、ファイルを置く代わりに画像を生成するソースを置くこともできます。
ファイルを置くだけで<head>
タグ内に設定が追加されますが、環境変数VERCEL_URL
かmetadataBaseの設定が必要です。
metadataBaseは、layout.(js|ts|tsx)ファイルで以下のように設定します。
import { Metadata } from 'next'
export const metadata: Metadata = {
metadataBase: new URL('https://example.com'),
}
マニュアルは以下にあります。
Metadataに関するマニュアルは以下にあります。
robots.txt
検索エンジンのクローラーの設定ファイルです。
robots.txtを配置するか、robots.txtを作成するrobots.jsかrobots.tsをapp/に配置します。
robots.txtに関するマニュアルは以下にあります。
sitemap.xml
検索エンジンのクローラーが効率的にサイトをクロールできるようにするファイルです。
sitemap.xmlを配置するか、sitemap.xmlを作成するsitemap.jsかsitemap.tsを app/に配置します。
sitemap.xmlに関するマニュアルは以下にあります。
Discussion