Next.js
での多言語SEO対策の概要
Next.js
は、サーバーサイドレンダリング(SSR)や静的サイト生成(SSG)によってSEOに強いとされています。特に、グローバルに展開するウェブサイトにおいては、多言語対応が必要です。この記事では、Next.js
を使った効果的な多言語SEO対策のポイントを紹介します。
i18nによる多言語対応
Next.js
には、i18n
(Internationalization)の機能が標準で搭載されています。これを利用することで、簡単に多言語対応が可能です。next.config.js
ファイルに以下の設定を追加することで、複数のロケール(言語)をサポートするサイトを構築できます。
module.exports = {
i18n: {
locales: ['en', 'ja', 'fr'], // 対応する言語を指定
defaultLocale: 'en', // デフォルトの言語
},
};
この設定により、各言語に対応したルーティングが自動的に生成され、SEOにも効果的なロケールごとのページが作成されます。また、URLパスにも言語が含まれるため、ユーザーや検索エンジンがどの言語のページを表示しているかを容易に認識できます。
メタタグと構造化データの設定
SEOにおいて、各言語ページごとに適切なメタタグや構造化データを設定することが重要です。特に、メタディスクリプションやog:locale
(Open Graph)の設定が必要です。これにより、検索エンジンが各言語ページを正しく認識し、適切にインデックスします。
<Head>
<title>ページのタイトル</title>
<meta name="description" content="ページの説明" />
<meta property="og:locale" content="ja_JP" />
</Head>
また、構造化データ(JSON-LD形式)を使って、記事や製品ページの詳細を検索エンジンに提供することも効果的です。リッチスニペット表示に対応するために、schema.org
の形式で構造化データを設定します。
サイトマップとパンくずリスト
Next.js
では、静的サイト生成を利用してサイトマップを自動生成することができます。サイトマップは、検索エンジンにサイト全体の構造を伝えるために重要です。また、パンくずリストを導入することで、ユーザーのナビゲーションを改善し、SEO効果を高めることができます。
import { getArticles } from "./_libs/api/article";
const URL = process.env.BASE_URL;
export default async function sitemap() {
const articles = await getArticles();
const routes = articles.map(article => ({
url: `${URL}/articles/${article.id}`,
lastModified: new Date(),
}));
return routes;
}
リンクの管理とcanonicalタグ
多言語対応サイトでは、canonicalタグやalternateタグを適切に設定することが重要です。これにより、検索エンジンに対してどのURLが主要なページであり、異なる言語のバリエーションが存在することを示すことができます。
<link rel="canonical" href="https://example.com/en" />
<link rel="alternate" hreflang="ja" href="https://example.com/ja" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr" />
これにより、検索エンジンが重複コンテンツを正しく処理し、適切な地域のユーザーに最適なページを提供できるようになります。
パフォーマンスの最適化とSEO
Googleのコアウェブバイタル(LCP、FID、CLS)の最適化も、SEOの重要な要素です。Next.js
は、画像の最適化機能(next/image
)や動的インポートを活用することで、パフォーマンスを改善し、ページの読み込み速度を向上させます。これにより、ユーザー体験が向上し、検索エンジンでの評価も上がります。
まとめ
Next.js
での多言語SEO対策は、i18n機能や構造化データ、適切なメタタグ設定を活用することで効果的に実現できます。これらのベストプラクティスを実践することで、グローバルなオーディエンスに向けた強力なSEO戦略を構築できるでしょう。