Ping送信・RSSから「noindex」投稿を除外する方法【WordPress:AIOSEOあり/なし】
WordPress(ワードプレス)で作っているサイトには、いつも『最新:PING送信先リスト』の記事にあるping送信の設定をしてるのですが、先日「noindex」にしてるはずの投稿からのアクセスがあり、『noindexの投稿でも ping送信され、RSSに含まれてしまっていた』ということが判明しました。これはよろくないですよね。。
というわけで、今回はそれを防ぐための『Ping送信・RSSから「noindex」投稿を除外する方法』です。
目次
Ping送信・RSSから「noindex」投稿を除外する設定
設定方法は、以下の関数(記述)を、functions.phpに追加します。
noindexかどうかの判断は、『AIOSEO』の情報を利用するかしないかで変わりますので、2通り書いておきます。
1.『AIOSEO』の情報を利用する場合
『AIOSEO』の情報を利用して、noindex投稿をRSSから除外します。
コメントアウト部分は適宜変更してくださいね。
// https://blog.with2.net/ から、インデックスしてないはずの投稿からのアクセスがあったので、noindexの投稿はping送信しないように設定 // ① RSSから除外 function exclude_aioseo_noindex_from_feed($query) { if ($query->is_feed() && $query->is_main_query()) { $meta_query = array( array( 'key' => '_aioseo_robots_meta', 'value' => 'noindex', 'compare' => 'LIKE', ), ); $query->set('meta_query', $meta_query); } } add_action('pre_get_posts', 'exclude_aioseo_noindex_from_feed'); // ② ping送信の抑制 function disable_ping_for_aioseo_noindex($post_id) { if (get_post_status($post_id) !== 'publish') return; $robots = get_post_meta($post_id, '_aioseo_robots_meta', true); if (strpos($robots, 'noindex') !== false) { remove_action('do_pings', 'do_all_pings'); } } add_action('publish_post', 'disable_ping_for_aioseo_noindex', 1);
2.『AIOSEO』の情報を利用しない場合
『AIOSEO』などのSEOプラグインを使っていない場合でも、投稿に独自の「noindexフラグ」を設定して除外することができるので、『AIOSEO』を使わない場合はこの方法で『noindex投稿をRSSから除外』します。
以下のコードでは、カスタムフィールド『custom_noindex』に「1」が設定されている投稿を対象外にしています。
キー名や値、コメントアウト部分は、適宜変更してくださいね。
// https://blog.with2.net/ から、インデックスしてないはずの投稿からのアクセスがあったので、noindexの投稿はping送信しないように設定 // ① RSSから除外(独自カスタムフィールド 'custom_noindex' が '1' の投稿を除外) function exclude_custom_noindex_from_feed($query) { if ($query->is_feed() && $query->is_main_query()) { $meta_query = array( array( 'key' => 'custom_noindex', 'value' => '1', 'compare' => '=', ), ); $query->set('meta_query', $meta_query); } } add_action('pre_get_posts', 'exclude_custom_noindex_from_feed'); // ② ping送信の抑制 function disable_ping_for_custom_noindex($post_id) { if (get_post_status($post_id) !== 'publish') return; $flag = get_post_meta($post_id, 'custom_noindex', true); if ($flag === '1') { remove_action('do_pings', 'do_all_pings'); } } add_action('publish_post', 'disable_ping_for_custom_noindex', 1);
このどちらかの記述をfunctions.phpに追加すれば『あれ?noindexの投稿やのにPing送られてる?』なんてことにはならないので、PINGの送信設定をするときは、こちらの記述も忘れないように設定してくださいね!
Google AdS
関連記事
-
2020年版:PING送信先リスト10+2(WordPress Ping Optimizerへ登録するPingのURL)
管理しているサイトのPVがこの半年で1/3ほどに下がってしまい、色々試しているのですが全然回復せず、今年に入ってからさら…
-
2021:PING送信先リスト8+2(WordPress Ping Optimizerへ登録するPingのURL)
最新版の『PING送信先リスト』です!(2021年7月現在) 早速ですが、2021年の最新Ping送信先リストです…
-
2025最新:PING送信先リスト6+2(WordPress Ping Optimizerへ登録するPingのURL)
最新版の『PING送信先リスト』です!(2025年1月現在) 早速ですが、2025年の最新Ping送信先リ…
-
2017年版:PING送信先リスト18(WordPress Ping Optimizerへ登録するPingのURL)
久しぶりに新たなサイトのためにPingの送信先リストをチェックしてみたら、、、このようなよろしくない状態でした。。 …
-
2015年版:PING送信先リスト20(WordPress Ping Optimizerへ登録するPingのURL)
色々と設定の見直し中なのですが、PingはSEO対策では大切なんですよね?正直まだイマイチPingは把握しきれていません…