この記事のポイント
- 複数のカテゴリーを”noindex”に設定する方法を考えました!
- is_category() とin_category()を使った条件分岐をPHPにて行うことで実現しました。
- header.phpに貼付けるコードを紹介しています。コピべOKです。自己責任で使ってくださいね。
いくつかのカテゴリーはクロールしてほしく”ない”のです
覚醒する @CDiP @donpyさんから「複数のカテゴリーを”noindex”に設定する方法ってないですか?」と質問を投げてもらいました。
is_category() とin_category()を使えばいいはず、複数のカテゴリーを指定する方法を探しているですよ。「カンタンに!」にできる方法ってないですか?
こんな質問でした。「大量リンクを貼っているニュース記事ははっきりいって、Google にクロールされる必要がないんですよ」これが理由らしいです。あれ?最近、ものくろ もたくさんのリンクを貼っている記事を書き出しました。
これは自分自身にも勉強になる!ということで、早速調べました。
実現したいことってなに?
- 複数のカテゴリーにある記事とカテゴリー 一覧ページをクロールしないよう、mateタグに”noindex”を追加する。
- 手作業でなく、スクリプトで解決したい。投稿記事数が半端なく多いため。
- カテゴリーIDで複数のカテゴリーを指定できればオッケー。
こんなところが着地点です。幸いPHPはわかります。どちらかと言えば、”WordPress関数を理解すればいけるだろう”と思っていました。
こいつ(ものくろ)に聞けば、「まあーなんとかしよるだろう」と@donpyさんから信頼していただけているのが一番うれしくって、ヤル気につながりました。ここ結構重要なんです。
複数カテゴリーがクロールされない設定にするコード
出来上がったコードです。header.phpの真上に貼付けて使えます。作業前に必ずheader.phpのバックアップを行ってください。
このコードがどんな内容か?はこちらにて、まとめました。
[箱] 検索ロボット インデックスをカテゴリ一括で“noindex”にするPHPってどんなことしているのか?まとめてみた。
カテゴリー内の『各記事』とカテゴリーページの2つに対して、noindexを設定するために、同じカテゴリーが2回あります。ここを変数にすればよかったと、今気づきましたが、これで勘弁してください。次の課題にします。
[php]
<!– HERE: No_Index with category check –>
<!–?php if (<br ?–> is_category(array("カテゴリーID A","カテゴリーID B"))
|| ( in_category(array("カテゴリーID A","カテゴリーID B")) && is_single())
)
{
echo "<meta name="\"robots\"" content="\"noindex," />\n";
}
?>
<!– END: No_Index with category check –>
[/php]
カテゴリーIDを書き換えればそのまま使えます。
「どんなことになっても大丈夫、おおひがしには文句は言わないよ」と太平洋のような大きく穏やかな気持ちで接していただけるなら、まるまるコピペでご利用ください。ただし、クロールの制御をするので、きちんと確認して,この約束をお願いします。
カテゴリーID ”1000と2000” 2つを指定するなら、array(“カテゴリーID A”,”カテゴリーID B”))の部分をarray(“1000″,”2000”))と修正します。3つ目のカテゴリーID 2500 を追加する場合は、array(“1000″,”2000″,”2500”))とカンマで区切りながら追加します。
2箇所とも同じ作業をします。『array』と最後の二重カッコ『))』は大切ですので、そのままにしてください。
ブログが真っ白になっても慌てないで
真っ白になっても、ブログの内容は消えていませんので、慌てないでください。コードの追加や修正を間違うと、一瞬でブログが真っ白の表示になります。追加したPHPコードのエラーが起きたからです。
PHPエラーになると、WordPressは表示をやめるからです。
慌てないで、header.phpに追加したコードを消すか、バックアップしていた作業前のファイルで上書きします。これで元通りになりますから。
最後に確認作業!
設置できたら、5つのページのソースを確認します。
- クロールは要らない記事ページ
- クロールは要らないカテゴリーページ
- クロールしてほしい記事ページ
- クロールしてほしいカテゴリーページ
- トップページ
の真上付近に、クロールは要らない記事・カテゴリーに下の3行があるか?見てください。
[code]
<!– HERE: No_Index with category check –>
<meta name="robots" content="noindex, nofollow" />
<!– END: No_Index with category check –>
[/code]
クロールが必要な記事・カテゴリーでは、コメントの2行だけになっていますか?確認ください。
[code]
<!– HERE: No_Index with category check –>
<!– END: No_Index with category check –>
[/code]
最後に念のためにトップページも確認します。念には念を入れてです。確認して「変だ?おかしい?」場合はバックアップしたheader.phpで上書きすると元通りになるので、作業前に戻してください。
ものくろ はこう思った
当ブログ「ものくろぼっくす」では、この方法での noindex を設定済です。
設定したカテゴリーは「ものレポ」と「お知らせ」の2つです。
例えば下のページのソースの63〜65行目をご覧ください。
他のカテゴリー記事にはない、”noindex, nofollow”が表示されています。
[箱] 【ものレポ】チェキ instax mini 90 が凄くいい感じ、そして続けることの大切さを知りました。など
なお、All in one SEOプラグイン にてカテゴリーページは noindex 設定済みでしたので、個別記事ページにのみコードが追加する仕様に変更しています。この方法についても別記事で説明します。
今月から『ものレポ』として、RSS新着記事の中から ものくろ が「お!」と感じた一言コメントと一緒にして、発信を始めました。
どんな記事に興味を持ったのか?これを記録する”俺得”なエントリーです。
はじめてみたら..とても楽しい。一言のコメントを書くことがポイントなのかも。受け取った情報を自分の中で理解してアウトプットするのが楽しいのです。すごく。
一方、単純なリンクに対して、Googleさんがお怒りの様子です。ものくろぼっくすが叱られるのは、当事者だから、まあいいとして、リンクを貼らせていただいた方に迷惑になってはまずい。
相互リンクではないですけど、この記事の内容を気にしています。
Googleが相互リンクをスパムとする理由と、新たな時代の相互リンクとは?
また、明日からはリンクに「rel=”nofollow”」を含むように変更します。
今回の方法で、記事そのものに”noindex, nofollow”を設定したので、この問題は解決したと判断しています。
All in one SEO プラグインを使っている場合はこちらも合わせてご覧ください。
[箱] All in one SEO プラグインと指定カテゴリー(複数)”記事”のインデックスを”noindex”にするコードを同時に使うときに気にしておいた方がいいこと
『ものレポ』はインデックスされなくていいんです。もともとリンクを貼った皆さんの記事がインデックスされているので、情報を探すことには問題なしです。いやむしろ「ものレポ」は不要とも言えます。
でも、時系列で全体をまとめていることは意味があるはず、後から振り返ったときに”あっ”とつながることがあるはず。それはやってみないとわからない。なので、やってみます。
”やってみなはれ”精神で。
@donpyさんの投げかけで、がっつり勉強になりました。感謝です。