Canonical と noindex
ページで、検索エンジンにインデックス登録するよう指示すると同時に、無視するよう指示してはいけません。Silktide は、このような矛盾した指示を送信するページを検出します。通常は、テンプレートの設定ミスが原因です。
このチェックは、ページに ディレクティブと、自身を参照する (ターゲットが同じページである canonical)の両方が存在するときに実行されます。canonical は「インデックス登録する正式な URL はこれ」と示す一方、noindex は「このページをインデックス登録しないでください」と示します。
<!-- 矛盾した設定: noindex と、このページを指す canonical -->
<meta name="robots" content="noindex">
<link rel="canonical" href="https:\/\/www.example.com\/thank-you">
重要な理由
この2つのシグナルは正反対の方向に働くため、検索エンジンは予測できない形で矛盾を解決します。どちらか一方だけが尊重される場合もあります。実際には、この組み合わせはほとんどの場合、 テンプレートがすべてのページにデフォルトの canonical を適用する一方で、別のルールが非公開にしておくべきページ(サンクスページ、プレビュー、内部ツール)に noindex を追加していることを意味します。逆の場合もあります。
この矛盾を解消すると、インデックス登録に関する意図が明確になります。その結果、検索結果に表示したいページはインデックス登録され、非表示にしたいページは非表示のままになります。
修正方法
そのページをどうしたいのかを決めてから、2つのシグナルのうち1つを削除します。
- ページを検索結果に表示する場合は、noindex ディレクティブを削除します(robots メタタグと
X-Robots-Tagレスポンスヘッダーの両方を確認してください)。 - ページを検索結果に表示しない場合は、そのページから canonical タグを削除するか、noindex ページに自身を参照する canonical を追加しないようテンプレートを変更します。
Silktide によるテスト方法
- ページの robots メタタグまたは
X-Robots-Tagレスポンスヘッダーから noindex ディレクティブを検出します(noneディレクティブは noindex を暗黙に意味するため、対象に含まれます)。 - ターゲットがそのページ自身である
<link rel="canonical">を探します。URL はホストとパスで比較されます。www、スキーム、末尾のスラッシュ、クエリ文字列は無視されます。 - 両方が存在する場合、ページにフラグを付けます。
- ほとんどの SEO チェックとは異なり、このチェックはインデックス登録できないページに対しても意図的に実行されます。noindex ページこそ、この矛盾が現れる場所だからです。