
著作権侵害系の不正アクセス(コピーサイト、スパムサイトのコンテンツ水増し、etc)のために、有名サイトのRSSを悪用している馬鹿者共がいます。
そうした他人のコンテンツを流用することしかできない無能集団を排除するために、RSS配信を禁止してきましたが、当サイトを巡回してくださっているまっとうな利用者に不便を押し付けるのもどうかと思います。
そこで折衷案として「トップページのRSSはタイトルと短い概要のみにする、個別ページのRSS配信は禁止する」という対策を取りました。
RSSを短い概要のみにするのはWordPressの標準の機能で可能ですが、個別ページのRSSを止める方法は通常行えません。
そこでこの記事では「RSS配信自体を禁止する方法」及び、「個別ページのみのRSS配信を行わないようにする方法」を紹介します。
WordPressのRSSの仕様

まず、WordPressのRSSについて仕様を確認しておきます。
WordPressでは、RSSを以下のアドレスから利用できます。
- ~/feed/
- https://ganohr.net/feed/
また、RSSには種類があり、「RSS2 / RDF / ATOM」などのバリエーションもあります。
これらの事情から、以下の5つのURLでRSSが配信されます。
- ~/feed/
- ~/rss/
- ※~/feed/へリダイレクトされます
- ~/feed/rss/
- ※~/feed/へリダイレクトされます
- ~/rss2/
- ※~/feed/へリダイレクトされます
- ~/feed/rss2/
- ※~/feed/へリダイレクトされます
- ~/rdf/
- ※サイトのトップページへリダイレクトされ、.rdfというファイルがダウンロードされます
- ~/feed/rdf/
- ※サイトのトップページへリダイレクトされ、.rdfというファイルがダウンロードされます
- ~/atom/
- ※~/feed/atom/へリダイレクトされます
- ~/feed/atom/
また、このときに「RSSの内容に本文を全て埋め込むか」、「抜粋のみにするか」、はたまたそれらを「何件分掲載するか」を、「サイトのオプションから設定」できます。
基本的には、
本文全体を載せてしまうとサイトをアクセスする意味がなくなるため、抜粋のみを数件程度に限って掲示するのが一般的です。
問題は、WordPressは個別ページ(固定記事・個別記事・カテゴリ・タグ等)でも、そのページのRSS(コメントの一覧)を取得できる点です。
この個別ページのRSSには、設定で指定した件数分のコメントが取得できてしまいます。
たとえRSSの本文を抜粋にしていたとしても、1・2件でもコメントが取れれば著作権侵害系の不正アクセス用途には十分な文量になってしまうのです。
実際、以下に示すRSS等が不正利用されていることを確認しています。

※この他にも多数のスプログでRSSが無断盗用されていることを確認しています
やはり、
人気サイトほどRSS配信やREST APIはコピーサイト問題などの兼ね合いにより、基本的には無効化するほうが賢明といえるでしょう。
WordPressのRSS配信を概要のみにする方法、及びWordPressのRSS配信件数を変更する方法
まずはRSS配信を概要のみにする方法を解説します。
RSSは基本的にはサイトの更新を検出するための利用が主です。更新内容の全文が取れるのであれば、わざわざサイトにアクセスする必要がなくなります。
これはRSSを配信する意図(サイトにアクセスしてもらうこと)からすれば、目的とかけ離れてしまうことは明らかです。
WordPressのRSSを抜粋のみにする方法、及び、件数を変更するには以下の画像のとおり操作します。

WordPressのRSS配信自体を禁止する方法
人気サイトほどRSSを利用したいと思う利用者が多いため、禁止することはお勧めしていません。
されど、どうしても禁止したいという方のため方法を解説します。
.htaccess
を編集してRSS配信を禁止する方法
RewriteEngine On
RewriteCond %{REQUEST_URI} (feed|atom|rss2?|rdf)
RewriteRule (/|^)(feed|atom|rss2?|rdf) - [F,END]
このコードを利用することで、RSS出力機能自体を呼び出せなくします。
処理に対する負荷が最も少ないため、RSSを無効化したい方は基本的にはこちらを採用されることをお勧めします。
functions.php
を編集する方法
WordPressの親テーマ又は子テーマのfunctions.php
を編集できる場合、以下のコードを追加することでRSS配信を停止できます。
なお、編集には細心の注意を払ってください。誤った操作を行うとサイトが停止する恐れがあります。
remove_action( 'wp_head', 'feed_links' );
remove_action( 'wp_head', 'feed_links_extra' );
remove_action( 'do_feed_rdf', 'do_feed_rdf' );
remove_action( 'do_feed_rss', 'do_feed_rss' );
remove_action( 'do_feed_rss2', 'do_feed_rss2' );
remove_action( 'do_feed_atom', 'do_feed_atom' );
WordPressでトップページのRSSは有効にしつつ、個別ページのRSSだけ無効にする方法
※ 上記の「WordPressのRSS配信自体を禁止する方法」を採用されている場合、そちらの設定は除去した上で操作してください。
.htaccess
へ以下のコードを追加してください。
RewriteCond %{REQUEST_URI} (feed|atom|rss2?|rdf)
RewriteCond %{REQUEST_URI} !^/(feed|atom|rss2?|rdf)
RewriteRule /(feed|atom|rss2?|rdf) - [F,END]
最後に
他人の褌で相撲を取るしかできない馬鹿のせいで、まっとうな利用者の利便性を低下させてしまうのは考えものです。
しかし、まっとうな利用者は、殆どがサイト全体のRSSのみを利用して更新検出を行っています。
当サイトは以前よりアクセスログを精査して運用していますが、個別ページのRSSを呼び出しているアクセスの全てが著作権侵害系の不正アクセスと見られるなど、存在意義が皆無であり有害でした。
この記事がコピーサイト問題で頭を抱えているサイトオーナーの参考になれば幸いです。
関連記事

コメントを書く