最終確認日
Next.jsのブログサイトにcanonicalを設定する
概要
Next.jsのブログ記事がインデックスされないための対応策の1つとしてcanonicalを実装する。
参考
実装
- 日本語はエンコードされている状態にする
- aliternates: { canonical: url }に設定
- canonicalは絶対パスで指定する
export async function generateMetadata({ params }: Props): Promise<Metadata> {
    const { slug } = await params;
    const decodedSlug = decodeURIComponent(slug);
    const post = await getPost(decodedSlug);
    if (!post) return {};
    // 日本語パスはencodeされた状態する
    const url = `${process.env.NEXT_PUBLIC_SITE_URL}/${post.category}/${slug}`
    return {
        post.title,
        post.description,
        alternates: {
          canonical: url,
        },
    };
}
公開日
更新日