今回は小技です。
はてなブログの特定の記事で、カテゴリーにnoindexを追加するだけで、検索にひっかからなくする方法をまとめてみました。
この方法はぼくが新しくつくったわけではなく、検索して見つけましたが、参考記事の方法のままではうまく機能しなかったため、今回の記事のようにデバッグしました。
jQueryを機能させる方法
以下の記事を参考に、はてなブログの特定の記事にnoindexをつけようと試みました。
しかし、はてなブログの設定>詳細設定の「headに要素を追加」に追加する必要があるコードには「$(function(){・・・});」がないため、jQueryが機能しません。
jQueryを機能させるためには、以下のように記述する必要があります。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script type="text/javascript"> <!-- NOINDEX --> $(function(){ if($("body").hasClass("category-noindex")){ var doc = document; var head = doc.getElementsByTagName("head")[0]; var meta = doc.createElement("meta"); meta.setAttribute("name","robots"); meta.setAttribute("content","noindex"); head.appendChild(meta); } }); </script>
こちらのコードを設定した状態で、以下のようにnoindexという名称のカテゴリーを追加してください。
実際にnoindexの設定ができているか、Google Chromeの検証機能で確認しましょう。該当ページで右クリックして、検証をクリックします。すると以下のような画面が表示されます。
検証の画面で、コードがだららっと並んでいるところで、「ctrl」を押した状態で「F」を押すと検索できるウィンドウが現れます。そこで「noindex」と検索して、<head>タグの間に、以下のコードがあればOKです。
<meta name="robots" content="noindex">
カテゴリー「noindex」を表示しないようにする方法
以上の設定で、カテゴリー「noindex」を追加することで<meta>タグにnoindexを追加することができました(これでしばらくすると検索対象から除外されます)。
しかし、noindexのカテゴリーを放置したままだとカッコ悪いので、以下のCSSを追加しましょう。
CSSの設定
はてなブログのデザイン>カスタマイズ>{} デザインCSSに以下のコードを追加してください。
a.archive-category-link.category-noindex { display: none; } a.entry-category-link.category-noindex { display: none; }
これで、記事のページとnoindexのカテゴリーを選んだ際のカテゴリーページから、noindexのみ表示しないよう設定できました。ちなみに参考記事のままだと、カテゴリーの最後にnoindexを追加する必要があった(noindexを1番目のカテゴリーに設定すると、n番目(最後)のカテゴリーが表示されないようになっていた)のと、カテゴリーページにはnoindexが表示されたままでした。
カテゴリーの設定
さらに、サイドバーでカテゴリーを表示している場合、そちらにもnoindexが表示された状態になっています。こちらもカッコ悪いので消しておきましょう。
ちょっと強引な方法ですが、こちらのnoindexにはclassが設定されておらず、先ほどのようにCSSを設定することでは表示を消せません。
少し強引ですが、カテゴリーの並び替え順を「カスタム」に設定して、表示件数をnoindexを含まないカテゴリー数にしましょう。
そして、noindexを一番下の表示されないカテゴリーまでドラッグしていくと、noindexを表示させないように設定することができます。
以上。