ブログのアーカイブやカテゴリページを検索サイトの検索結果に表示させないようにnoindexを付与するかどうかという問題があるようです。
仮にこれらのページが、本来表示させたい個別記事の代わりに検索結果に表示されてしまうとしたら問題です。
これはアーカイブまたはカテゴリページに、記事が本文ごと載っている場合に起こりえます。
私はブログにココログを使用していますが、アーカイブページが検索結果に表示され、個別記事ページが表示されていないということが散見されました。
そこで本記事では、検索結果に表示させたくないアーカイブまたはカテゴリページにnoindexを付与する方法を紹介します。こうすることで検索結果に表示されなくなります。これで本来表示させたい個別記事ページを検索結果に表示させることを狙います。
noindexは、HTMLのhead内に以下のmetaタグを書き込みます。<meta name="robots" content="noindex">
wordpressなどであればカテゴリページにこのタグを付与する設定ができますが、無料ブログの多くは出来ないと思います。その場合はJavaScriptを用います。
ここではココログを例にして説明します。
ココログの場合、ブログタイトル下のサブタイトル欄にJavaScriptを記述します。そうすればブログ内の全ページにJavaScriptを適用できます。JavaScriptでは、noindexを付与したいページの場合に付与する動作を記述します。
JavaScriptについては素人であるため参考程度にしてもらいたいのですが、以下のコードで正常にnoindexを付与できることを確認しています。以下はココログ用のJavaScriptコードです。
<script>
let pathName = location.pathname;
if(/^\/blog\/cat\d+\/index\.html$/.test(pathName)||/^\/blog\/blog_index\.html$/.test(pathName)){
let head = document.getElementsByTagName('head')[0];
let metaRobots = head.querySelector('meta[name="robots"]');
if (!metaRobots) {
metaRobots = document.createElement('meta');
metaRobots.setAttribute('name', 'robots');
head.appendChild(metaRobots);
}
metaRobots.setAttribute('content', 'noindex');
}
</script>
アーカイブまたはカテゴリページの判定に、正規表現を使用しています(3行目)。
ココログの場合、カテゴリページは「https://kenkyuu.air-nifty.com/blog/cat24052094/index.html」のようなURLになります。また、デフォルトのトップページである「https://kenkyuu.air-nifty.com/blog/blog_index.html」もアーカイブと同じように個別記事が本文ごと並んでいるため、これも検索結果に表示させないようにします。
これらのURLを正規表現で指定し、それが現在開かれているページのURLと一致する場合に、metaタグを埋め込む動作になります。
正規表現を記述する3行目は、ココログ以外のブログの場合は変える必要があります。正規表現.test(pathName)
でURLの判定を行っており、この条件が複数ある場合は「||」で条件を繋げます。
正常にmetaタグが埋め込まれたかを確認するには、ブラウザのデベロッパーツール(開発者ツール)を使用します。
Google Chromeの場合はCtrl+Shift+Iで起動します。headタグを開き、その中に上記metaタグが含まれているかどうか確認します。
ブログ内でnoindexの対象にするページを探す時、サイト構造を調べるツールを使用しても良いと思います。例えば私は「Website Explorer」というツールを使わせてもらいました。