canonicalタグの設定方法と確認手順|重複コンテンツ対策の基本
同じ内容のページが複数のURLで存在すると、検索エンジンはどのURLを検索結果に表示すべきか判断できなくなります。
これが「重複コンテンツ問題」です。canonicalタグは、複数のURLの中から「正規のURL」を検索エンジンに伝えるためのHTML要素です。Google公式ドキュメントでは、重複ページのシグナルを正規URLに統合する手段として推奨されています。
この記事では、canonicalタグの正しい設定方法、プラットフォーム別の実装手順、よくある間違いと確認方法を解説します。
canonicalタグの設定が正しいか確認したい方は、無料診断ツールで自動チェックできます。
canonicalタグが必要な理由
canonicalタグを設定しないと、以下の問題が発生します。
検索エンジンへの影響:
- 評価の分散 — 同じコンテンツに対するリンク評価が複数URLに分散し、どのURLも上位表示されにくくなる
- クロールバジェットの浪費 — Googlebotが重複ページを何度もクロールし、新しいページの発見が遅れる
- 意図しないURLの表示 — パラメータ付きURLやwwwなしのURLが検索結果に表示される
AI検索への影響(可能性):
公式には未確認。重複解消はSEOの基本であり、結果的にAI検索でも評価が集中する可能性はあるが断定はできない。
重複コンテンツが発生する典型的なケース:
| ケース | 例 |
|---|---|
| URLパラメータ | /products?sort=price と /products |
| www有無 | www.example.com と example.com |
| HTTP/HTTPS | http://example.com と https://example.com |
| 末尾スラッシュ | /about/ と /about |
| モバイル別URL | m.example.com と example.com |
| 印刷用ページ | /article と /article?print=true |
| セッションID | /page?sid=abc123 |
canonicalタグの3つの設定方法
Googleが公式に認めているcanonical指定の方法は3つあります。シグナルの強さが異なるため、状況に応じて使い分けます。
| 方法 | シグナルの強さ | 用途 |
|---|---|---|
rel="canonical" linkタグ |
強い | HTMLページ全般 |
rel="canonical" HTTPヘッダー |
強い | PDF等の非HTMLファイル |
| サイトマップ | 弱い | 大規模サイトの補助的指定 |
方法1: HTML linkタグ(最も一般的)
重複ページの<head>セクションに、正規URLを指すlinkタグを追加します。
<!-- 重複ページ(例: /products?sort=price)に設置 -->
<head>
<link rel="canonical" href="https://example.com/products" />
</head>
設定のポイント:
- 絶対URLを使う — 相対パス(
/products)ではなく、プロトコルとドメインを含む完全なURL <head>セクション内に配置 —<body>内に書いても無視される- 自己参照canonicalも設定する — 正規ページ自身にも自分のURLをcanonicalとして指定する
<!-- 正規ページ自身(/products)にも設置 -->
<head>
<link rel="canonical" href="https://example.com/products" />
</head>
自己参照canonicalを設定する理由は、パラメータが付与された場合やURLの表記ゆれが発生した場合に、正規URLを明確にするためです。
方法2: HTTPレスポンスヘッダー
PDFやWord文書など、HTMLの<head>を持たないファイルにはHTTPヘッダーで指定します。
HTTP/1.1 200 OK
Link: <https://example.com/downloads/whitepaper.pdf>; rel="canonical"
Nginxでの設定例:
# PDFファイルにcanonicalヘッダーを付与
location ~* \.pdf$ {
add_header Link '<https://example.com$request_uri>; rel="canonical"';
}
Apacheでの設定例:
# .htaccessでPDFにcanonicalヘッダーを付与
<FilesMatch "\.pdf$">
Header set Link '<https://example.com%{REQUEST_URI}e>; rel="canonical"'
</FilesMatch>
方法3: サイトマップでの指定
サイトマップに記載したURLは、Googleに対して「このURLが正規です」という弱いシグナルになります。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/products</loc>
<lastmod>2026-05-01</lastmod>
</url>
<!-- パラメータ付きURL(/products?sort=price)は含めない -->
</urlset>
サイトマップだけでは正規化のシグナルとして弱いため、linkタグと併用するのが効果的です。
方法の組み合わせ
Google公式ドキュメントでは、複数の方法を組み合わせることでシグナルが強化されると説明されています。ただし、異なる方法で異なるURLを指定しないことが重要です。
✅ linkタグ → /products、サイトマップ → /products(一致)
❌ linkタグ → /products、サイトマップ → /products?sort=price(矛盾)
ここまで読んで、自社サイトが気になった方へ
URLを入力するだけ。会員登録は一切不要で、30秒後に以下がわかります。
100点満点スコア
改善点Top3
改善レポート
URLを入力するだけ / 会員登録不要 / データ保存なし
プラットフォーム別の設定方法
WordPress
WordPressでは、多くのSEOプラグインがcanonicalタグを自動出力します。
Yoast SEOの場合:
- 投稿・固定ページの編集画面を開く
- 「Yoast SEO」メタボックスの「詳細設定」タブを開く
- 「正規URL」フィールドに正規URLを入力
空欄の場合、Yoast SEOが自動的に自己参照canonicalを出力します。
All in One SEOの場合:
- 投稿編集画面下部の「AIOSEO設定」を開く
- 「詳細設定」タブの「Canonical URL」に入力
プラグインなしで設定する場合(functions.php):
// テーマのfunctions.phpに追加
function custom_canonical_tag() {
if (is_singular()) {
echo '<link rel="canonical" href="' . esc_url(get_permalink()) . '" />' . "\n";
}
}
add_action('wp_head', 'custom_canonical_tag');
注意: SEOプラグインを使用している場合、上記のコードを追加するとcanonicalタグが重複します。プラグインの機能を使うか、自前で実装するか、どちらか一方にしてください。
Shopify
Shopifyはデフォルトで自己参照canonicalタグを出力します。テーマのtheme.liquidに以下が含まれています。
<!-- Shopifyのデフォルト出力 -->
<link rel="canonical" href="{{ canonical_url }}" />
カスタムcanonicalを設定する場合:
Shopifyの管理画面からは直接変更できないため、テーマのLiquidテンプレートを編集します。
<!-- theme.liquid の <head> 内 -->
{% if template == 'product' %}
<link rel="canonical" href="{{ shop.url }}{{ product.url }}" />
{% else %}
<link rel="canonical" href="{{ canonical_url }}" />
{% endif %}
コレクションページの重複対策:
Shopifyでは商品が複数のコレクションに属する場合、/collections/shoes/products/sneaker と /products/sneaker の両方でアクセスできます。デフォルトのcanonical設定で /products/sneaker が正規URLとして指定されるため、通常は追加設定不要です。
Next.js
Next.jsではApp RouterとPages Routerで設定方法が異なります。
App Router(推奨):
// app/products/page.tsx
import { Metadata } from 'next';
export const metadata: Metadata = {
alternates: {
canonical: 'https://example.com/products',
},
};
export default function ProductsPage() {
return <main>...</main>;
}
動的ルートの場合:
// app/products/[slug]/page.tsx
import { Metadata } from 'next';
type Props = {
params: { slug: string };
};
export async function generateMetadata({ params }: Props): Promise<Metadata> {
return {
alternates: {
canonical: `https://example.com/products/${params.slug}`,
},
};
}
export default function ProductPage({ params }: Props) {
return <main>...</main>;
}
Pages Router:
// pages/products/index.tsx
import Head from 'next/head';
export default function ProductsPage() {
return (
<>
<Head>
<link rel="canonical" href="https://example.com/products" />
</Head>
<main>...</main>
</>
);
}
静的エクスポート(output: 'export')の場合:
静的サイトでは、ビルド時にcanonicalタグが確定します。環境変数でドメインを管理すると、開発環境と本番環境で切り替えやすくなります。
// app/layout.tsx または各ページ
const SITE_URL = process.env.NEXT_PUBLIC_SITE_URL || 'https://example.com';
export const metadata: Metadata = {
alternates: {
canonical: `${SITE_URL}/products`,
},
};
よくある間違い7パターン
間違い1: 相対URLで指定している
<!-- ❌ 相対URL -->
<link rel="canonical" href="/products" />
<!-- ✅ 絶対URL -->
<link rel="canonical" href="https://example.com/products" />
Google公式ドキュメントでは、相対パスもサポートされていると記載されていますが、「長期的に問題を引き起こす可能性がある」として絶対URLを推奨しています。テスト環境のURLが正規URLとして認識されるリスクがあります。
間違い2: canonicalタグが<body>内にある
<!-- ❌ body内に配置(無視される) -->
<body>
<link rel="canonical" href="https://example.com/products" />
</body>
<!-- ✅ head内に配置 -->
<head>
<link rel="canonical" href="https://example.com/products" />
</head>
JavaScriptで動的にcanonicalタグを挿入する場合も、<head>セクションに正しく追加されているか確認が必要です。
間違い3: 複数のcanonicalタグが存在する
<!-- ❌ 2つのcanonicalタグ(どちらが正しいか判断できない) -->
<head>
<link rel="canonical" href="https://example.com/products" />
<link rel="canonical" href="https://www.example.com/products" />
</head>
SEOプラグインとテーマの両方がcanonicalタグを出力しているケースが多いです。ページのソースコードを確認し、1つだけ出力されていることを確認してください。
間違い4: canonicalとnoindexを同時に指定している
<!-- ❌ 矛盾するシグナル -->
<head>
<meta name="robots" content="noindex" />
<link rel="canonical" href="https://example.com/products" />
</head>
noindexはページをインデックスから除外する指示、canonicalは「このURLが正規です」という指示です。同じページに両方を設定すると、Googleは矛盾するシグナルとして処理に困ります。noindexの詳しい使い方は別記事で解説しています。
間違い5: 存在しないURLを指定している
<!-- ❌ 404を返すURLをcanonicalに指定 -->
<link rel="canonical" href="https://example.com/old-products" />
canonicalで指定したURLが404やリダイレクトを返す場合、Googleはそのcanonical指定を無視します。指定先のURLが200を返すことを確認してください。
間違い6: ページネーションで全ページが1ページ目を指している
<!-- ❌ 2ページ目以降も1ページ目をcanonicalに指定 -->
<!-- /products?page=2 のhead内 -->
<link rel="canonical" href="https://example.com/products" />
ページネーションの各ページは異なるコンテンツを持つため、各ページが自分自身をcanonicalとして指定するのが正しい設定です。
<!-- ✅ 各ページが自己参照canonical -->
<!-- /products?page=2 のhead内 -->
<link rel="canonical" href="https://example.com/products?page=2" />
間違い7: HTTPとHTTPSで異なるcanonicalを指定している
<!-- http://example.com/products のhead内 -->
<!-- ❌ HTTP版を正規URLに指定 -->
<link rel="canonical" href="http://example.com/products" />
Googleは同等のHTTPページとHTTPSページがある場合、HTTPSを正規URLとして優先します。canonicalタグでもHTTPSのURLを指定してください。
<!-- ✅ HTTPS版を正規URLに指定 -->
<link rel="canonical" href="https://example.com/products" />
ECサイト特有のcanonical問題
ECサイトはURL構造が複雑になりやすく、canonical設定の難易度が高いカテゴリです。商品数が多いほど問題が顕在化します。
パラメータ付きURL(絞り込み・並び替え)
ECサイトでは、フィルタリングや並び替えでURLパラメータが大量に生成されます。
/shoes ← 正規URL
/shoes?color=red ← 色フィルタ
/shoes?color=red&size=27 ← 色+サイズ
/shoes?sort=price_asc ← 並び替え
/shoes?color=red&sort=price_asc ← 組み合わせ
対処方法:
- 並び替えパラメータ → 表示順が変わるだけでコンテンツは同じ。パラメータなしURLをcanonicalに指定
- フィルタパラメータ → 表示される商品が変わる場合は、各フィルタページが自己参照canonical。ただし組み合わせが膨大になる場合は、主要フィルタのみ自己参照にし、細かい組み合わせはcanonicalで親カテゴリを指定
<!-- /shoes?sort=price_asc のhead内 -->
<link rel="canonical" href="https://example.com/shoes" />
<!-- /shoes?color=red のhead内(独自コンテンツがある場合) -->
<link rel="canonical" href="https://example.com/shoes?color=red" />
色違い・サイズ違い商品
同じ商品の色違い・サイズ違いをどう扱うかは、ECサイトのcanonical設計で最も判断が分かれるポイントです。
| パターン | canonical設定 | 適するケース |
|---|---|---|
| 1URL方式 | 全バリエーションが1つのURLに集約。自己参照canonical | 色・サイズはページ内で切り替え(JavaScript) |
| 個別URL方式 | 各バリエーションが自己参照canonical | 色ごとに写真・説明文が大きく異なる |
| 代表URL方式 | 全バリエーションが代表色のURLをcanonicalに指定 | バリエーション間の差が小さい |
判断基準: ページのコンテンツ(テキスト・画像)が実質的に異なるなら個別URL方式。ほぼ同じなら代表URL方式か1URL方式を選びます。
ページネーション
商品一覧のページネーションでは、各ページが自己参照canonicalを持つのが正しい設定です(前述の「間違い6」参照)。
ただし、「すべて表示」ページ(view-all)がある場合は例外です。
<!-- /products?page=1〜10 の各ページ -->
<!-- view-allページが存在し、Googleがクロール可能な場合 -->
<link rel="canonical" href="https://example.com/products/all" />
注意: view-allページの読み込み速度が極端に遅い場合(数百商品を1ページに表示)、Googleはcanonical指定を無視してページネーション版を正規URLに選ぶことがあります。
canonicalが原因でインデックスされないケースの切り分け
「ページがインデックスされない」原因はcanonical以外にも多数あります。canonical起因かどうかを切り分ける手順を解説します。
Step 1: Search Consoleの「URL検査」で状態を確認
URL検査ツールで対象URLを入力し、以下を確認します。
| 表示 | 意味 | canonical起因か |
|---|---|---|
| 「重複しています。ユーザーにより、正規ページとして選択されていません」 | canonicalが別URLを指している | Yes — canonical設定を確認 |
| 「重複しています。Googleにより、ユーザーがマークしたページとは異なるページが正規ページとして選択されました」 | canonical指定をGoogleが上書き | 部分的 — Googleが別URLを優先している |
| 「クロール済み - インデックス未登録」 | クロールされたがインデックスする価値がないと判断 | No — コンテンツ品質の問題 |
| 「検出 - インデックス未登録」 | まだクロールされていない | No — クロールバジェットの問題 |
| 「noindexタグによって除外されました」 | noindexが設定されている | No — noindex設定を確認 |
Step 2: canonical先URLの状態を確認
canonical起因の場合、指定先のURLが正しく機能しているか確認します。
# canonical先URLのステータスコードを確認
curl -sI https://example.com/canonical-target | head -1
# リダイレクトチェーン確認
curl -sIL https://example.com/canonical-target | grep -E "^(HTTP|Location)"
よくある原因:
- canonical先が404を返している → canonical先URLを修正
- canonical先が別URLにリダイレクトしている → リダイレクト先をcanonicalに指定
- canonical先にnoindexが設定されている → noindexを削除するかcanonical先を変更
- canonical先のコンテンツが現在のページと大きく異なる → Googleがcanonicalを無視する原因
Step 3: 内部リンクとサイトマップの整合性確認
Googleはcanonicalタグだけでなく、内部リンクやサイトマップも正規URL選択の判断材料にします。
- 内部リンク: サイト内のリンクがcanonical先URLを指しているか確認。別のURLバリエーションを多くリンクしていると、Googleがcanonical指定を無視する原因になる
- サイトマップ: canonical先URLがサイトマップに含まれているか確認。含まれていない場合、シグナルが矛盾する
canonical vs noindex vs 301 vs robots.txt Disallow
重複・不要ページへの対処方法は4つあります。それぞれ目的と効果が異なるため、正しく使い分ける必要があります。
| canonical | noindex | 301リダイレクト | robots.txt Disallow | |
|---|---|---|---|---|
| 目的 | 評価を正規URLに統合 | インデックスから除外 | URLを恒久的に移転 | クロール自体をブロック |
| ページへのアクセス | 可能 | 可能 | 転送される | 可能(ブラウザから) |
| リンク評価の移行 | 正規URLに統合 | 徐々に消失 | 転送先に移行 | 移行しない |
| クロール | される | される | リダイレクト元はされなくなる | されない |
| Googleの扱い | ヒント(無視される場合あり) | 指示(ほぼ確実に従う) | 指示(ほぼ確実に従う) | 指示(従う) |
| 適するケース | パラメータ違い、印刷用ページ | 管理画面、検索結果ページ | ドメイン移転、URL変更 | 大量の低品質URL、API |
使い分けの判断基準:
- ユーザーが両方のURLにアクセスする必要がある → canonical
- 古いURLを完全に廃止する → 301リダイレクト
- ページは残すが検索結果には出したくない → noindex
- クロールバジェットを節約したい(大量のURLがある) → robots.txt Disallow
robots.txt Disallowの注意点:
robots.txt Disallowはクロールをブロックするだけで、インデックスからの除外を保証しません。外部リンクがある場合、URLだけがインデックスに残ることがあります。確実にインデックスから除外したい場合はnoindexを使ってください。
canonicalタグの確認方法
DevToolsで確認する
ブラウザの開発者ツールで、ページのcanonicalタグを即座に確認できます。
手順:
- 確認したいページを開く
Ctrl+U(Mac:Cmd+U)でページソースを表示Ctrl+Fで「canonical」を検索<link rel="canonical" href="...">が1つだけ存在することを確認
Consoleで確認する方法:
// DevToolsのConsoleで実行
document.querySelector('link[rel="canonical"]')?.href
このコマンドで、現在のページに設定されているcanonical URLが表示されます。undefinedが返る場合、canonicalタグが設定されていません。
複数のcanonicalタグがないか確認:
// canonicalタグの数を確認(2以上なら問題あり)
const canonicals = document.querySelectorAll('link[rel="canonical"]');
console.log(`canonical tags found: ${canonicals.length}`);
canonicals.forEach(el => console.log(el.href));
全ページのcanonicalを一括確認するスクリプト:
// DevToolsのConsoleで実行(各内部リンク先のcanonicalを取得)
(async () => {
const urls = [...new Set(
[...document.querySelectorAll('a[href]')]
.map(a => a.href)
.filter(href => href.startsWith(location.origin))
)].slice(0, 20);
for (const url of urls) {
const res = await fetch(url);
const html = await res.text();
const match = html.match(/<link[^>]+rel=["']canonical["'][^>]+href=["']([^"']+)["']/i);
console.log(url, '→', match ? match[1] : '(none)');
}
})();
Search Consoleで確認する
Google Search Consoleの「URL検査」ツールで、Googleが認識しているcanonical URLを確認できます。
手順:
- Search Consoleにログイン
- 上部の検索バーに確認したいURLを入力
- URL検査で「ユーザーが指定した正規URL」と「Googleが選択した正規URL」を確認
確認ポイント:
| 項目 | 意味 |
|---|---|
| ユーザーが指定した正規URL | canonicalタグで指定したURL |
| Googleが選択した正規URL | Googleが実際に正規と判断したURL |
この2つが一致していれば、canonical設定が正しく機能しています。一致していない場合、Googleがcanonical指定を無視している可能性があります。
一致しない主な原因:
- canonicalで指定したURLのコンテンツが薄い
- 内部リンクが別のURLを多く指している
- サイトマップに別のURLが記載されている
- リダイレクトチェーンが存在する
外部ツールで確認する
Screaming Frog SEO Spider(無料版: 500URLまで):
- サイトのURLを入力してクロール開始
- 「Canonicals」タブで全ページのcanonical設定を一覧表示
- 「Canonical Mismatch」フィルターで問題のあるページを抽出
Ahrefs Site Audit:
サイト全体をクロールし、canonical関連の問題を自動検出します。「Canonical issues」レポートで以下を確認できます。
- canonicalタグが設定されていないページ
- 自己参照canonicalがないページ
- canonicalとnoindexの競合
- 壊れたcanonical(404を指すもの)
curlコマンドで確認:
# HTMLのcanonicalタグを確認
curl -s https://example.com/products | grep -i "canonical"
# HTTPヘッダーのcanonicalを確認
curl -sI https://example.com/document.pdf | grep -i "link.*canonical"
canonical・noindex・301リダイレクトの使い分け
重複コンテンツへの対処方法は3つあります。状況に応じて適切な方法を選びます。
| 状況 | 推奨方法 | 理由 |
|---|---|---|
| 同じ内容のページが複数URLで存在する | canonical | 評価を統合しつつ、全URLにアクセス可能 |
| 古いURLを新しいURLに完全移行する | 301リダイレクト | ユーザーもbotも新URLに転送される |
| ページを検索結果から完全に除外したい | noindex | インデックスから削除される |
| パラメータ違いの重複(並び替え等) | canonical | パラメータなしURLを正規に指定 |
| サイト移転(ドメイン変更) | 301リダイレクト | 旧ドメインの評価を新ドメインに移行 |
| テスト環境・ステージング環境 | noindex + Basic認証 | 検索結果に表示させない |
| 印刷用ページ | canonical | 通常ページを正規URLに指定 |
| A/Bテストのバリエーション | canonical | オリジナルページを正規に指定 |
判断フローチャート:
- そのURLにユーザーがアクセスする必要があるか?
- No → 移転先がある場合は301リダイレクトで正規URLに転送。移転先がなく完全に廃止するなら404/410を返す
- Yes → 次へ
- そのページを検索結果に表示したいか?
- No → noindexを設定(ページは残すが検索に出さない)
- Yes → canonicalで正規URLを指定
noindexの設定方法と注意点、robots.txtとの使い分けも合わせて確認してください。
Google公式の注意点:
Googleは「canonicalization目的でnoindexを使うことは推奨しない」と公式ドキュメントで明記しています。noindexはページを検索から完全にブロックするため、評価の統合には使えません。
AI検索とcanonicalタグの関係
公式には未確認。重複解消はSEOの基本であり、結果的にAI検索でも評価が集中する可能性はあるが断定はできない。
構造化データの設定方法と組み合わせることで、検索エンジンとAIの両方にサイト構造を正確に伝えられます。
実装チェックリスト
canonicalタグを設定する際に確認すべき項目をまとめます。
設定時のチェック:
- 全ページに自己参照canonicalが設定されている
- URLは絶対パス(プロトコル+ドメイン+パス)で記述されている
-
<head>セクション内に配置されている - 1ページにcanonicalタグは1つだけ
- HTTPS版のURLを指定している
- canonical先のURLが200を返す(404やリダイレクトではない)
- サイトマップのURLとcanonicalのURLが一致している
確認時のチェック:
- Search Consoleの「Googleが選択した正規URL」が意図通り
- ページネーションの各ページが自己参照canonicalを持つ
- パラメータ付きURLが正しいcanonicalを指している
- SEOプラグインとテーマでcanonicalが重複していない
まとめ
canonicalタグの設定で押さえるべきポイントを整理します。
- canonicalタグは重複URLの評価を正規URLに統合するための仕組み
- 設定方法は3つ: HTML linkタグ(最も一般的)、HTTPヘッダー(非HTMLファイル用)、サイトマップ(補助的)
- 絶対URLで指定し、
<head>内に1つだけ配置する - 自己参照canonicalも設定する(正規ページ自身にも設定)
- **Search Consoleの「URL検査」**で、Googleが認識しているcanonical URLを確認できる
- noindex・301リダイレクトとは目的が異なる — 状況に応じて使い分ける
canonicalの設定が正しいか確認したい方は、無料診断ツールでサイト全体を自動チェックできます。重複コンテンツの検出、canonical設定の確認、その他のテクニカルSEO項目をまとめて診断します。
よくある質問
canonicalタグは必須ですか?
必須ではありません。Googleは公式ドキュメントで「canonicalを指定しなくても、サイトはおそらく問題なく機能する」と述べています。ただし、URLパラメータやwww有無などで重複が発生しているサイトでは、設定することで評価の分散を防げます。
canonicalタグを設定したのにGoogleが無視するのはなぜですか?
Googleはcanonicalタグを「ヒント」として扱い、最終的な正規URL選択は独自のアルゴリズムで行います。無視される主な原因は、canonical先のコンテンツが薄い、内部リンクが別URLを多く指している、サイトマップとcanonicalが矛盾している、などです。Search Consoleの「URL検査」で「Googleが選択した正規URL」を確認してください。
自己参照canonicalは本当に必要ですか?
Google公式は「必須ではない」としていますが、設定を推奨しています。理由は、URLにパラメータが付与された場合(トラッキングパラメータ等)に、正規URLを明確にできるためです。設定のコストが低いため、全ページに自己参照canonicalを設定するのがベストプラクティスです。
canonicalタグとhreflangタグは併用できますか?
はい、併用できます。多言語サイトでは、各言語版のページが自分自身をcanonicalとして指定し、hreflangで他の言語版を示すのが正しい設定です。canonicalで別の言語のページを指定しないでください。Googleは「canonicalページは同じ言語で指定する」ことを推奨しています。
JavaScriptで動的にcanonicalタグを設定しても大丈夫ですか?
Googleはレンダリング後のHTMLを解析するため、JavaScriptで設定したcanonicalタグも認識されます。ただし、Google公式は「HTMLソースコードで指定するのが最善」としています。JavaScriptで設定する場合は、既存のcanonicalタグを変更するのではなく、HTMLソースにcanonicalがない状態でJavaScriptのみで追加する形にしてください。
この記事の内容、自社サイトではどこまでできていますか?
URLを入力するだけ。会員登録は一切不要です。
AI検索対応度の総合スコア
7カテゴリ100点満点で評価
優先度つき改善ポイントTop3
具体的な修正手順つき
PDF / Markdownレポート
AIに渡して改善提案をもらうことも可能
URLを入力するだけ / 会員登録不要 / 30秒で結果表示
改善ポイント例:
関連記事
著者情報・更新日の設定方法|SEOとAI検索に効く信頼性の高め方
著者情報と更新日の正しい書き方・構造化データ設定を解説。ProfilePage・Article構造化データのコード例、WordPress・Next.js別の実装...
meta descriptionの書き方と最適な文字数|クリック率を上げる実践ルール
meta descriptionの書き方を7つのルールで解説。PC・モバイル別の最適文字数、ページ種別ごとのテンプレート、Googleに書き換えられる原因と対策...
sitemap.xmlの作り方と送信方法|クロール促進の基本設定
sitemap.xmlの書き方からSearch Consoleへの送信方法まで、コピペで使えるコード例付きで解説。WordPress・Next.js・静的サイト...