せっかく書いた記事、いくら質が悪いと言われても削除したくない……

 

品質の悪い記事を削除することによってブログ全体における質の高い記事の割合を多くして、検索エンジンからの評価をアップさせる。ブログのアクセスアップについて考える中で、「記事の整理」も1つの方法です。

ただ、せっかく頑張って書いた記事を削除するのは嫌!そんな人(=僕)におすすめの方法が、検索エンジンのデータベースに登録されないようにする記事のnoindex化です。

今回は、自分が使っているWordPressテーマに「記事ごとにnoindexを設定する機能」が搭載されておらず、かつ「All In One SEO Packなどのプラグインを使いたくない」という人(=僕)向けに、既存の記事にnoindexを設定方法について調べてみました。

 

記事にnoindexを設定する方法

コピペで済むはずが上手く行かなかった件

参考にさせていただいたのは、StingerやAffingerなどの素晴らしいWordPressテーマを無料て提供してくださっているENJIさん(@ENJILOG)の下記の記事。

参考:自分のWordPressテーマの投稿に「index、noindex」の設定をサクっと追加する方法

というか、このコードをまるっとコピーでいけるはずだったんですが、僕の環境(マテリアル)ではうまく導入することが出来ず……

noplugin-noindex-01

なんとか修正出来ないか?とコードを触ってみたものの、構文チェックサイトではエラーも発見できず、テーマかプラグインのどこかが競合しているのでは無いか、という予想。自分で解決出来ないカスタマイズなら、やっぱり諦めてプラグイン入れようかな……と思ったところでふと気がついたのが、「今、公開されているテーマからコードをコピーすれば良いのでは?」ということ。

 

現行のAffingerのコードならばうまく導入できた

そこで早速、現在ENJIさんが公開してくださっているWordPressテーマ「Affinger」の公式サイトへ。

参考:アフィリエイトのはじめ方~無料テーマAFFINGER(アフィンガー)で作るアフィリエイトサイト

テーマをダウンロードした後、function.phpで該当の機能について記載されている箇所を探してみたところ、↓のコードを発見。(※今回の記事の作成のため、一部インデントの場所等、調整させていただいております)

//////////////////////////////////
// index操作
//////////////////////////////////
add_action( 'admin_menu', 'st_stmeta_robots_add_metaboxr' );
add_action( 'save_post', 'st_stmeta_robots_save_stmeta_robots' );
function st_stmeta_robots_add_metaboxr() {
  add_meta_box( 'stmeta', 'index変更', 'st_stmeta_robots_stmeta_robots_dropdown_box', 'page', 'side', 'low' );
  add_meta_box( 'stmeta', 'index変更', 'st_stmeta_robots_stmeta_robots_dropdown_box', 'post', 'side', 'low' );
}

// 挿入ページ
function st_stmeta_robots_stmeta_robots_dropdown_box() {
  global $post;
  wp_nonce_field( wp_create_nonce( __FILE__ ), 'st_stmeta_robots' );
  $stmeta_robots = $post->stmeta_robots;
?>
<label for="stmeta_robots"></label>
<select name="stmeta_robots" id="stmeta_robots">
  <option <?php if ( $stmeta_robots === "index, follow" ) {
    echo 'selected="selected"';
  } ?>>index, follow
  </option>
  <option <?php if ( $stmeta_robots === "index, nofollow" ) {
    echo 'selected="selected"';
  } ?>>index, nofollow
  </option>
  <option <?php if ( $stmeta_robots === "noindex, follow" ) {
    echo 'selected="selected"';
  } ?>>noindex, follow
  </option>
  <option <?php if ( $stmeta_robots === "noindex, nofollow" ) {
    echo 'selected="selected"';
  } ?>>noindex, nofollow
  </option>
</select>
<?php
}

// データベース登録
function st_stmeta_robots_save_stmeta_robots( $post_id ) {
  $my_nonce = isset( $_POST['st_stmeta_robots'] ) ? $_POST['st_stmeta_robots'] : null;
  if ( !wp_verify_nonce( $my_nonce, wp_create_nonce( __FILE__ ) ) ) {
    return $post_id;
  }
  if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
    return $post_id;
  }
  if ( !current_user_can( 'edit_post', $post_id ) ) {
    return $post_id;
  }
  $data = $_POST['stmeta_robots'];
  if ( get_post_meta( $post_id, 'stmeta_robots' ) === "" ) {
    add_post_meta( $post_id, 'stmeta_robots', $data, true );
  } elseif ( $data !== get_post_meta( $post_id, 'stmeta_robots', true ) ) {
    update_post_meta( $post_id, 'stmeta_robots', $data );
  } elseif ( $data === "" ) {
    delete_post_meta( $post_id, 'stmeta_robots', get_post_meta( $post_id, 'stmeta_robots', true ) );
  }
}

// 表示
function st_stmeta_robots_add_stmeta_robots_tag() {
  global $post;
  if ( is_single() || is_page() ) {
    if ( ( $GLOBALS["stdata9"] ) !== '' &&  ( $GLOBALS["stdata9"] ) != $post->ID ) {
      $stmeta_robots = ( empty( $post->stmeta_robots ) ) ? 'index, follow' : $post->stmeta_robots;
      echo '<meta name="robots" content="' . $stmeta_robots . '" />' . "\n";
    }
  } elseif ( !is_category() && is_archive() ) {
    echo '<meta name="robots" content="noindex, follow" />' . "\n";
  } else {
  }
}
add_action( 'wp_head', 'st_stmeta_robots_add_stmeta_robots_tag' );

これで管理画面にindex変更の項目が出現しました。

noplugin-noindex-02

 

スポンサーリンク

すでに公開している記事をnoindex設定に変更したら?

「noindex設定」は検索エンジンがクローリングに来た際、indexしない=検索エンジンのデータベースに登録しないということですよね。ならば、すでに公開した記事(既にデータベース登録された記事)をnoindex設定に変更するにはどうすれば良いのでしょうか?

もちろん、しばらく放っておいて、検索エンジンのクローラーが該当ページを訪れた際、「あ、このページnoindexになったんだ」と知ってもらうのも1つの方法ではあります。ただ、せっかくnoindex設定に変更したのなら、とっとと反映して欲しいですよね。

そこで、検索流入が多いであろうGoogleとYahoo、正確に言うと、YahooはGoogleの検索エンジンを利用しているので、特にGoogleにおいて、すぐに反映して貰う方法をご紹介させて頂きます。
その方法とは、Google Search Console(旧:Webマスターツール)にて、再クロールを依頼する(Fetch as Google)というものです。

 

Fetch as Googleとは

Fetch as Googleとは、新しいページを公開したり、ページの内容を修正した時に、Googleにクロールを依頼する機能になります。

参考:ウェブサイト用 Fetch as Google を使用する – Search Console ヘルプ

Google Search Consoleにアクセスし、変更したいサイトを選択したら、サイドメニューの「クロール」→「Fetch as Google」をクリックしましょう。

noplugin-noindex-03

変更した記事のURLを入力して「取得」をクリック。
(以下の作業は、プルダウンで選択できる「PC」と「モバイル:スマートフォン」の両方で実施する必要があります)

noplugin-noindex-04

ステータスが「完了」になったのを確認したら、「インデックスに送信」をクリック

noplugin-noindex-05

「私はロボットではありません」にチェックを入れて「このURLのみをクロールする」を選択し「送信」をクリック

noplugin-noindex-06

完了!

noplugin-noindex-07

※Fetch as Googleの使い方はバズ部さんの下記の記事が分かりやすいので、合わせて御覧ください。

ウェブマスターツールの URL 削除ツールを無闇に使うと検索ランキングに悪い影響を及ぼすことがあります。ここではツールが必要かのチェックと、ツールの使い方を分かりやすくご紹介しています。

 

スポンサーリンク

TSUNJI(@tsunji1983)的まとめ

せっかく書いた記事は、いくら品質が悪いと判断されても、可愛い我が子のようなもの(我が子の方がもっと可愛いけどね!)。

ひと思いに削除してしまうより、noindex化してひっそりと保存しておき、内容を更新した時にビフォー・アフターとして使うなど、将来的に有効活用の方法を探していきたいですね。

 

以上、TSUNJI(@tsunji1983)でした。