意図せぬ形でWordPressのトップページにnoindexが入る
以前、WordPressサイトの「/page/」にnoindexを挿入する話をしましたが、それとは別に、今回noindexで少しハマったので記録として残しておきます。
普通に記事を書いて公開していた所、突然サイトのトップがnoindexになりました。Firefoxのnoindex確認アドオンを入れていて良かったです。
今作っているサイトで、特定の記事にはnoindexを入れています。サイト上必要なページですが、検索エンジンに評価してもらう必要はないので、noindexを入れています。
カテゴリー丸ごとnoindexにしているので、head内に以下の記述をしています。
<?php if (is_paged() || in_category('' )): ?>
<meta name="robots" content="noindex">
<?php endif; ?>
こんな感じで、カテゴリーのスラッグやIDを指定します。
以前設定した2ページ目以降と、特定のカテゴリをnoindexにすることができます。
この記述自体は特に間違っていないはずですが、やっかいなのが「noindexを入れた記事がトップに上がっている時」です。
noindexを入れたカテゴリーの記事がトップページの一番上にあると、サイトのトップがそのカテゴリーに属していると判断されてトップページにnoindexが入ってしまいます。
う~ん。言葉で説明すると難しいですね。
これは、All in One SEOで特定の記事にnoindexを入れた場合も同じです。その記事がトップページの一番上に上がっている時に、トップページにnoindexが挿入されます。
少し状況が違いますが、当サイトでも試しにやってみました。
これは、ブログのトップですが、noindexは挿入されていません。
これが、一番上にある記事にnoindexを挿入するとこうなります。
一番上の記事にnoindexを入れると、ブログのトップ自体がnoindexになります。
ソースを見ると、All in ONEの所でnoindexが挿入されているのがわかります。
トップにnoindexの記事が来ることがまずないと思いますので、多くの人にとってはスルー案件だと思いますが、ハマってしまい地蔵さんに助けてもらいました。
以前にも条件分岐で、特定のカテゴリーだけヘッダーに画像を表示している時に、そのカテゴリーの記事がトップに上がっている時にトップページに、ヘッダー画像が表示されたことがありました。
もうさすがに2回目なので、次に同じようなことがあったら憶えていると思いますが、noindexの問題は事が事だけにヤバイので、こうして記事にして長期記憶にしたいと思います。
トップページにnoindexを入れたくない場合は、homeにはnoindexを入れない為の記述「!is_home()」が必要ですが、プラグインで対応している場合には、そのプラグインがしっかり除外設定をしていないと対応が難しいと思います。
ちなみに賢威に元々備わっている個別記事ごとにnoindexが入れられる機能を使っても、トップにnoindexが入ることはありませんでした。この辺はさすがに考えられていますね。
条件分岐でカテゴリー丸ごとnoindexを入れていたり、プラグインで個別記事にnoindexを入れていて、その記事がトップの一番上に上がっている状態になったら要注意です。
難しくて良くわからない人は、「noindexを入れた記事は一番上に上げてはいけない」と憶えておきましょう。