next-seoはNextJSで使うSEO対策用の便利なライブラリですが、なぜかFacebookのシェアデバッガーを使ってメタ情報を確認すると正常に認識しませんでした。
問題
子ページでベースのメタ情報を上書きするための記述をしたものの、シェアデバッガーで確認したところ全体のデフォルト設定のまま表示されてします。
原因
<NextSeo>のコンポーネントをdivタグで囲ってしまっていたことが原因でした。恐らく、ライブラリの仕様的にbody内のコンポーネントとして認識されてしまい、ビルド時にデフォルトのデータが残ってしまったのかと思います。
対策
divタグを外してReactフラグメント(空タグ)で囲ってあげればOKです。
NGコード
return (
<div>
  <NextSeo
    title={props.title}
    description={props.description}
  />
  <div>
    <p>page<p>
  </div>
</div>
)OKコード
return (
<>
  <NextSeo
    title={props.title}
    description={props.description}
  />
  <div>
    <p>page<p>
  </div>
</>
)まとめ
こういうのでもパッと情報が出てこないとprppsが正常に届いているかとか、一つ一つ確認して進めるしかないの嫌ですね。個人開発自体は少しずつ進んできてて良きです。
            					
この記事にコメントする
このサイトはreCAPTCHAとGoogleによって保護されています。プライバシーポリシーと利用規約が適用されます。