コンテンツにスキップ

<Head>

ページの `head` に要素を追加するための組み込みコンポーネントを用意しています。

import Head from 'next/head'
 
function IndexPage() {
  return (
    <div>
      <Head>
        <title>My page title</title>
      </Head>
      <p>Hello world!</p>
    </div>
  )
}
 
export default IndexPage

重複タグの回避

`head` 内の重複タグを避けるためには、次の例のように `key` プロパティを使用することができます。これにより、タグが一度だけレンダリングされることが保証されます。

import Head from 'next/head'
 
function IndexPage() {
  return (
    <div>
      <Head>
        <title>My page title</title>
        <meta property="og:title" content="My page title" key="title" />
      </Head>
      <Head>
        <meta property="og:title" content="My new title" key="title" />
      </Head>
      <p>Hello world!</p>
    </div>
  )
}
 
export default IndexPage

この場合、2番目の `<meta property="og:title" />` のみがレンダリングされます。`key` 属性が重複している `meta` タグは自動的に処理されます。

**知っておくと良いこと**: `<title>` と `<base>` タグは Next.js によって自動的に重複チェックされるため、これらのタグに key を使用する必要はありません。

コンポーネントのアンマウント時に `head` の内容はクリアされるため、他のページが追加したものに依存せずに、各ページで `head` に必要なものを完全に定義するようにしてください。

最小限のネストを使用する

`title`、`meta`、またはその他の要素 (例: `script`) は、`Head` 要素の**直接の**子として含まれるか、最大1レベルの `<React.Fragment>` または配列にラップする必要があります。そうしないと、クライアントサイドナビゲーションでタグが正しく認識されません。

スクリプトには `next/script` を使用する

`next/head` で手動で `<script>` を作成する代わりに、コンポーネントで `next/script` を使用することをお勧めします。

`html` または `body` タグなし

`<html>` または `<body>` タグに属性を設定するために `<Head>` を使用することは**できません**。これは `next-head-count is missing` エラーになります。`next/head` は HTML `<head>` タグ内のタグのみを処理できます。