Skip to content

RSSフィードの出力や取得方法などについて

SNSやサイトでのRSSフィードの出力や取得方法などについて解説しています。

RSSとは

RSSとは、ニュースやブログ、個人サイトなど各種ウェブサイトの更新情報を配信するための文書フォーマットのことです。RSSの正式名称はバージョンによって異なりますが、本記事でで主に解説しているRSS2.0は「Really Simple Syndication」という名称で呼ばれています。

RSSはRSSリーダーと呼ばれるツールを使用してフィードを購読することで、自動で情報を取得できます。
RSSはWordPress(以下WP)や各種ブログサービスなどで自動的に生成されるものもありますが、HTMLのように自分でテキストエディタを使用して作成することも可能です。

RSSには主に以下の種類・派生があり、とくにRSS1.0とRSS2.0は一見互換性があるようにみえますが、これらは開発者(企業)も仕様もまったく別の文書フォーマットです。以下は、それぞれのかなりざっくりとした特徴です。

種類特徴
RSS1.0テキストのみの配信
RSS2.0文字の装飾やリンク設置などが可能
AtomRSS2.0ベース / 配信と編集の2フォーマットが用意されている

いろいろありRSSを配信しているサイトはかなり減っていましたが、現在また少しずつ増えているようです。
この記事では、現在主に利用されているRSS2.0を前提として以下掲載しています。

RSSの配信・取得方法

ソースコードの<head></head>内に<link rel="alternate" type="application/rss+xml" ~>と記述があれば、だいたいRSSフィードがが配信されています。
サイトによってはサイト内にRSSフィードへのリンクを貼ってくれているところもあります。

SNSでのRSS配信・取得方法

BlueskyやMisskey/Mastodonでは、以下でRSSを配信・取得できます。

Bluesky

アカウントのプロフィールページ末尾に/rssをつける。
以下は当サイトのBlueskyアカウントのRSSフィードです。

txt
https://bsky.app/profile/parts-tips.bsky.social/rss

ただしRSSを取得したいアカウントが「ログインしてないとpostを見れないようにする」に設定していると、RSSを取得できません(RSSフィードのURLにアクセスすると、エラーメッセージが表示されます)

Misskey/Mastodon

アカウントのプロフィールページ末尾に.rssをつける。

てがろぐでのRSS配信・取得方法

にししふぁくとりーさまで配布している「てがろぐ」にもRSS機能が備わっています(スキンによって、以下titlehrefの表示が違います)

html
<link rel="alternate" type="application/rss+xml" title="[サイト名] RSS Feed" href="https://[ドメインURL]/?mode=rss">

てがろぐでRSS機能を配信する場合は、管理画面の「設定」>「補助出力」のタブ「RSSフィードの出力」項目で設定します。
詳しくは公式ドキュメントをご確認ください。

WPでのRSS配信・取得方法

WPも通常は初期状態でRSSフィードが配信されています。

html
<link rel="alternate" type="application/rss+xml" title="[サイト名] &raquo; フィード" href="https://[ドメインURL]/feed/"/>
<link rel="alternate" type="application/rss+xml" title="[サイト名] &raquo; コメントフィード" href="https://[ドメインURL]/comments/feed/"/>

WPの場合はコメントのRSSフィードも配信されます(投稿のカテゴリページの場合はカテゴリのフィードも)
サイト全体のフィードのみでよければ、以下の方法でコメントとカテゴリフィードを削除することが可能です。

注意事項

この方法はテーマファイル内の設定に関するファイルであるfunctions.phpを編集します。編集する際は事前に必ずバックアップをとってください。
また、既存のテーマをカスタマイズする場合は、動作に十分ご注意ください。

以下、必要箇所のみ記載しています。

php
<?php
  /* ==================== */
  /* RSSフィード調整      */
  /* ==================== */
  //いったんすべてのRSSフィードを<head>から削除する
  remove_action('wp_head','feed_links', 2);
  remove_action('wp_head','feed_links_extra', 3);
  remove_action('wp_head','rsd_link');

  //サイト全体のフィードのみ追加する
  function meta_feed() {
    echo '<link rel="alternate" type="application/rss+xml" title="' .get_bloginfo('name'). ' RSSフィード" href="' .get_bloginfo('rss2_url'). '"/>';
  }
  add_action('wp_head', 'meta_feed', 2);
?>

その他ブログサービス等でのRSS配信・取得方法

はてなブログやnote、しずかなインターネットなど、各種ブログサービスなどでは、RSSフィードが配信されています。

html
<link rel="alternate" type="application/rss+xml" title="[RSSフィードタイトル]" href="[RSSフィードのURL]">

クローラーによるRSSフィードへのアクセスを拒否する

自サイトの場合、クローラー(検索bot等)によるRSSフィードへのアクセスおよび検索エンジンでの表示を拒否するには、.htaccessファイルとrobots.txtを利用します。クローラーの種類によっては万全でない可能性もありますが、Googleなど主要な検索エンジンクローラーに対しては有効かと思います。

.htaccessファイルおよびrobots.txtファイルは、サイトのトップページと同じ階層に作成・アップロードしてください。

.htaccess

RSSフィードがファイルとして配信されている場合(rss.xmlなど)は、この方法が利用できます。この記述をすることにより、検索エンジンでの検索結果表示を拒否できます。
以下を.htaccessファイルに記載します。

注意事項

サーバーの.htaccessファイルを編集する際は、.htaccessファイルがすでに存在している場合は必ずバックアップを取ってください。

apache
<Files "rss.xml">
  Header set X-Robots-Tag "noindex, nofollow"
</Files>

rss.xmlのファイル名は適宜修正してください。
サイト内のすべての.xmlファイルを対象にする場合は、以下のように記述します。

apache
<Files ~ "\.xml$">
  Header set X-Robots-Tag "noindex, nofollow"
</Files>

余談ですが、.xml以外の拡張子も対象にする場合は、以下のように記述します。
以下の例では、XMLファイルの他にMP4、各種画像類を対象にしています。

apache
<Files ~ "\.(xml|mp4|jpe?g|gif|png|webp)$">
  Header set X-Robots-Tag "noindex, nofollow"
</Files>

robots.txt

robots.txtファイルでは、クローラーに対してアクセスを制御します。robots.txtファイルはテキストエディタなどで作成できます(普通のtxtファイルです)

以下はRSSファイルの記述例です。上記の.htaccessの方法とあわせて利用します。ファイル名は適宜変更してください。
/(スラッシュ)はじまりなので、サイトのトップページのある階層になります。

txt
User-agent: *
Disallow: /rss.xml

以下はWPの記述例です。

txt
User-agent: *
Disallow: /feed/

以下はてがろぐでの記述例です。

txt
User-agent: *
Disallow: /[てがろぐのディレクトリ名]/?mode=rss

以上です。