Table of Contents
RSS・Atom:WordPress フィードの検出、検証、移行
現在のサイトでは、リーダーごとに別の購読ボタンを作る必要はありません。長期的に安定した有効な RSS または Atom URL を一つ公開し、ページの <head> で自動検出を宣言し、理解しやすい通常リンクを用意するほうが堅牢です。読者は同じ URL を任意の対応アプリへ渡せるため、サイトは一社に依存しません。
この版の最終確認日は 2026 年 9 月 1 日です。2011 年の原文は歴史資料として末尾に保存していますが、当時のサービスボタンを再利用してはいけません。
1. 旧サービスの現状
| 2011 年の入口 | 2026 年の根拠 | メンテナンス版での扱い |
|---|---|---|
| Google Reader | Google は 2013 年 7 月 1 日に Google Reader を終了すると公式発表した | 終了済み。購読ボタンを表示しない |
| 鮮果 | 旧ボタンのドメインは現在ドメイン売買ページへ転送される | 安定した購読先ではないためリンクしない |
| 抓虾 | 監査時に旧ホストを名前解決できず、現在の公式ボタン資料も確認できなかった | 現在は不適切とのみ判定し、正式終了日を創作しない |
| QQ メール購読入口 | 監査時に旧 HTTP ホストへ接続できず、現在の公式 RSS ボタン資料も確認できなかった | 現在の入口にせず、QQ ログインを求めない |
| 第三者の画像ダウンロード | 旧 URL は非 HTTPS で、アカウント形式のダウンロードパスだった | 公開アーカイブから限定的に削除 |
Google Reader の日付は Google 公式発表に基づきます。その他については、2026 年 9 月 1 日に観測したエンドポイント監査結果だけを記載し、第一者の告知がない正式終了日は創作していません。
2. 安定したフィード URL を選ぶ
WordPress は標準で複数のフィードを生成します。パーマリンク有効時の代表的な経路は次のとおりで、最後の行はクエリ形式の RSS 2.0 フォールバックです。
https://example.com/feed/
https://example.com/feed/atom/
https://example.com/comments/feed/
https://example.com/category/news/feed/
https://example.com/?feed=rss2
通常は /feed/ を規範となる HTTPS メインフィードに選びます。ページ、自動検出、サイト文書、設定には同じ絶対 URL を使います。カテゴリー、タグ、コメントのフィードは読者が必要とする場合だけ公開し、似た選択肢を増やして混乱させないでください。
3. 標準の自動検出を追加する
WHATWG はフィード自動検出に rel="alternate" を指定し、application/rss+xml と application/atom+xml を認識します。<head> へ次を追加します。
<link
rel="alternate"
type="application/rss+xml"
title="Example Site — RSS"
href="https://example.com/feed/"
>
<link
rel="alternate"
type="application/atom+xml"
title="Example Site — Atom"
href="https://example.com/feed/atom/"
>
各 title にはサイトと形式を示し、href は最終的な HTTPS 絶対 URL にします。一形式だけを維持するなら一つだけ宣言し、壊れたフィードや重複するフィードを広告しないでください。
WordPress のブロックテーマでは自動フィードリンクが標準で有効です。クラシックテーマでは functions.php のテーマ初期化時に有効化できます。
<?php
add_action( 'after_setup_theme', function () {
add_theme_support( 'automatic-feed-links' );
} );
生成後の HTML ソースを確認し、テーマ、SEO プラグイン、手書きコードが同じ検出リンクを重複出力していないことを確かめます。
4. ベンダー中立の購読入口を提供する
ページには「RSS で購読」または「選んだリーダーへフィード URL をコピー」と表示すれば十分です。「Google/鮮果/抓虾/QQ に追加」ボタンを復活させたり、第三者ログインページを自動で開いたりしないでください。
リーダーを選ぶ際は、RSS・Atom 対応、キーボードとスクリーンリーダー、ローカル保存か同期保存か、オフライン利用、プライバシーポリシー、費用、保守状況、OPML のインポート・エクスポートを比較できます。本稿は特定ベンダーを推奨しません。公開 URL と書き出せる購読一覧のほうがブランドボタンより長持ちします。
5. RSS とメールニュースレターは別の経路
フィードリーダーは公開 XML を定期取得し、発行者は通常、読者のメールアドレスを必要としません。ニュースレターはアドレスを収集してメッセージを送ります。フィード購読者を自動的にメール連絡先へ変換してはいけません。
ニュースレターを提供する場合:
- フォームのそばに、送信者、内容、頻度、データ用途、処理事業者、プライバシー通知を明記します。
- 適用法域が求める有効な同意または他の法的根拠を取得・記録します。事前選択欄、購入名簿、別目的で集めたアドレスを使わないでください。
- 利用可能で見つけやすく速やかに反映される配信停止を用意し、その実行に必要な抑止記録だけを保持します。
- アクセスと保存期間を制限し、必要なデータ処理条項を整え、アクセス・削除・苦情の要求へ対応します。
- 規則は送信者と受信者の所在地で異なります。英国 ICO の電子メールマーケティングガイドと米国 FTC の CAN-SPAM ガイドは二法域の公式な出発点であり、現地の法律助言を置き換えるものではありません。
6. HTTP、MIME、キャッシュ、転送を診断する
利用可能なフィードは次の境界を満たす必要があります。
- HTTPS を使用し、回数を制限した転送後に成功した XML を返します。ログインページ、CAPTCHA、WAF チャレンジ、HTML エラーを返してはいけません。
- RSS の自動検出には
application/rss+xmlを使い、Atom には RFC 4287 が定義するapplication/atom+xmlを使います。すべてをtext/htmlで返さないでください。 - XML は整形式でなければなりません。RSS 項目の
guidまたは Atomid、項目リンク、日付は安定し、解析可能である必要があります。 ETag、Last-Modified、妥当なCache-Controlは、リーダーの条件付きリクエストに役立ちます。新記事を長く隠すキャッシュや、毎回全文を再送させる設定を避けます。- 転送はループや長い連鎖にせず、移行後の最終 URL、自動検出、見えるリンクを一致させます。
次のコマンドは curl と Python 標準ライブラリだけを使い、応答チェーン、ヘッダー、XML 構造、ルート要素を確認します。第三者パッケージは不要です。
FEED_URL='https://example.com/feed/'
feed_xml="$(mktemp)"
feed_headers="$(mktemp)"
trap 'rm -f -- "$feed_xml" "$feed_headers"' EXIT
curl --fail --silent --show-error
--location --max-redirs 5
--dump-header "$feed_headers"
--output "$feed_xml"
"$FEED_URL"
sed -n '1,30p' "$feed_headers"
FEED_FILE="$feed_xml" python3 - <<'PY'
from pathlib import Path
import os
import xml.etree.ElementTree as ET
path = Path(os.environ["FEED_FILE"])
data = path.read_bytes()
root = ET.fromstring(data)
name = root.tag.rsplit("}", 1)[-1]
if name not in {"rss", "feed", "RDF"}:
raise SystemExit(f"unexpected root element: {root.tag}")
print(f"well-formed XML; root={root.tag}; bytes={len(data)}")
PY
続いて、最終応答の Content-Type、キャッシュヘッダー、本文を目視確認します。XML が解析できるだけでは十分ではありません。公開フィードは W3C Feed Validation Serviceで対話的に検証してください。利用規約は公開サービスを自動バッチ API として使うことを認めていないため、CI では承認済みのローカル検証器を使います。
7. アクセシブルな入口、アイコン、ブランド
- 「RSS で購読」のように理解できるリンク文字列を使い、名前のないオレンジ色アイコンだけを置かないでください。
- アイコンが隣の文字を繰り返す場合は装飾扱いにできます。アイコンだけなら、画像の代替テキストまたは SVG のアクセシブルな名前で「RSS feed」と伝えます。
- 見えるキーボードフォーカス、十分なコントラスト、適切な操作領域を保ちます。色やホバーツールチップがなくてもリンクを理解できるようにします。
- 一般的なフィード図形は認識を助けますが、終了したサービスのロゴを現在の機能として表示したり、ベンダーの推薦を暗示したりしないでください。ブランド資産の使用前に商標条件と最新ガイドを確認します。
- 購読を自動ポップアップ、強制ログイン、メールマーケティングへの同意の後ろに置かないでください。
8. Analytics とプライバシー
フィード要求は共有プロキシ、クラウドリーダー、キャッシュ、複数端末から届くため、要求数は人数ではありません。成功率、遅延、転送量、エラー種別など、運用に必要な粗い集計へ指標を限定し、架空の「購読者数」を宣伝しないでください。
サーバーログには IP、User-Agent、時刻が含まれる場合があります。適用される場合は用途を説明し、アクセスと保存期間を制限します。フィード URL、guid、Atom id、項目リンクにメールアドレス、ユーザー ID、一意の追跡パラメータ、広告転送を入れないでください。追加追跡技術を導入する前にプライバシー評価を行い、現地法が求める同意を取得します。
9. 購読者を失わずに移行する
- 新しい規範 HTTPS フィードを選び、内容、ID、日付、MIME を先に検証します。
- 旧 URL を到達可能なままにして、新 URL へサーバー側の恒久転送を返します。展開環境とクライアント互換性に応じて 301 または 308 を選び、JavaScript や meta refresh を使いません。
- 転送チェーンを避け、GET と条件付き要求を確認します。フィードをホームページへ転送しないでください。
<link rel="alternate">、見える購読リンク、文書、設定を更新します。- 項目の
guidまたは Atomidを変えないでください。変えるとリーダーが旧記事を新着と判断する場合があります。 - 旧経路を長期保持してエラーを監視します。読者の移行を確認できた後にだけ削除を検討します。
- メール事業者を変更する場合は、同意証拠、配信停止抑止記録、プライバシー通知を別に移行します。フィード要求ログをメール名簿へ取り込んではいけません。
恒久転送の意味は RFC 9110、キャッシュ動作は RFC 9111を参照してください。
10. 依存関係のない完全 HTML 例
次のページはスクリプト、外部アイコン、分析サービスを読み込まず、自動検出とアクセシブルな文字リンクを提供します。公開前にドメイン、タイトル、ニュースレターページを置き換えてください。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Example Site subscriptions</title>
<link
rel="alternate"
type="application/rss+xml"
title="Example Site — RSS"
href="https://example.com/feed/"
>
<link
rel="alternate"
type="application/atom+xml"
title="Example Site — Atom"
href="https://example.com/feed/atom/"
>
<style>
body {
max-width: 48rem;
margin: 2rem auto;
padding: 0 1rem;
font: 1rem/1.6 system-ui, sans-serif;
}
a:focus-visible {
outline: 0.2rem solid currentColor;
outline-offset: 0.2rem;
}
</style>
</head>
<body>
<header>
<h1>Example Site</h1>
</header>
<main>
<section aria-labelledby="subscribe-heading">
<h2 id="subscribe-heading">Subscribe</h2>
<p>Copy either feed URL into any standards-compatible feed reader.</p>
<ul>
<li><a href="https://example.com/feed/">Subscribe via RSS</a></li>
<li><a href="https://example.com/feed/atom/">Subscribe via Atom</a></li>
</ul>
<p>
Prefer email?
<a href="/newsletter/">Review the separate newsletter terms</a>.
</p>
</section>
</main>
</body>
</html>
11. 公開前の検証リスト
- [ ] 規範フィードは HTTPS で、Cookie、ログイン、JavaScript を必要としない。
- [ ] RSS/Atom の形式、MIME、
<link rel="alternate">宣言が一致する。 - [ ] XML 構造、タイトル、項目リンク、日付、安定 ID を検証した。
- [ ] ページに見えてフォーカス可能で、明確な名前の通常フィードリンクがある。
- [ ] 旧リーダーボタン、失効ロゴ、私的ダウンロード、ベンダーログイン入口がない。
- [ ] ヘッダー、回数制限付き転送、キャッシュ、条件付き要求を確認した。
- [ ] W3C Feed Validator は対話的に使用し、非公開・一括内容にはローカル工具を使う。
- [ ] フィード URL と項目 ID にメール、個人 ID、一意の追跡パラメータがない。
- [ ] ニュースレターに独立した通知、法的根拠、配信停止、保存、委託先管理がある。
- [ ] 移行で旧 URL の恒久転送と安定した
guidまたは Atomidを維持する。 - [ ] リーダー選択は中立で、キーボード、ズーム、支援技術をテストした。
12. 権威ある資料
- Google:Google Reader 終了発表
- WHATWG:フィード自動検出
- RSS Advisory Board:RSS 2.0 Specification
- IETF RFC 4287:Atom Syndication Format
- WordPress:Feeds
- WordPress:Theme Functions と automatic-feed-links
- W3C Feed Validation Service
- IETF RFC 9110:HTTP Semantics
- IETF RFC 9111:HTTP Caching
- 英国 ICO:電子メールマーケティング
- 米国 FTC:CAN-SPAM コンプライアンスガイド
13. 2011 年の原文アーカイブ
以下は、明示した値を除く source_export の可視本文全体です。各行末の空白だけを正規化し、抓虾リンクの過去の logId 追跡パラメータを削除し、第三者ダウンロード URL のアカウント形式の私的パスをプレースホルダーへ置換しました。未変更のエクスポートはリポジトリの source_export パスに残っています。
警告:以下のサービス、ボタン、ログイン入口、HTTP リンクは歴史資料であり、現在の購読先またはダウンロード先ではありません。
给博客增加RSS订阅到Google、鲜果、抓虾、QQ邮箱功能
一直想把水石居的订阅部分修改一下,直到现在才有时间处理,现在唯一提供的是QQ订阅的功能。今天终于有时间把抓虾、Google reader和鲜果都玩了一把。对水母这种平时很忙的人来说,RSS订阅还是比较有用的,可以及时查看自己关注的博客是否有更新,不用一个个的敲入网址访问了。
我们要做的就是获取RSS订阅按钮和代码,然后放到我们的网站上即可。目前Google Reader、抓虾、鲜果和QQ邮箱都提供自动生成订阅按钮和代码的功能,我们只需要访问相应的网址,输入我们的RSS源地址以及其他一些样式配置信息等即可生成订阅代码,一般wordpress博客的RSS源地址为:http://您的域名/feed
**RSS订阅到Google Reader**
生成订阅代码的网址是:
[http://www.google.com/intl/zh-cn/webmasters/add.html](http://www.google.com/intl/zh-cn/webmasters/add.html)
这个网页是全英文的,不懂英语也没有关系,总共就三个选项加一个填空,选项选第一个就可以,填空的地方填写自己的RSS源地址,然后点击【Generate HTML】按钮就可以生成代码了,另外还是生成一个测试按钮,点击可以查看订阅时的效果。
**RSS订阅到鲜果**
鲜果订阅按钮生成网址:
[http://xianguo.com/tools/sub_button](http://xianguo.com/tools/s ub_button)
鲜果的样式也比较丰富,随便选一个,输入博客地址即可生成相关代码。
**RSS订阅到抓虾**
抓虾订阅按钮生成网址:
[http://www.zhuaxia.com/help/help_sub_1.php](http://www.zhuaxia.com/help/help_sub_1.php)
相比较Google,抓虾的可选按钮样式要丰富的多,有卡通、星座、性感、清爽和经典五大类,在抓虾中直接输入博客地址即可实现订阅。
**RSS订阅到QQ邮箱**
这个要稍微麻烦一点,首先用QQ号登陆:
[http://list.qq.com](http://list.qq.com/)
在这里可以创建栏目,接下来一步步来就可以了,每步都比较简单,相信这点小事难不倒大家的。
我是校园网,无法显示图片,可以先下载了,再传到自己的博客空间里,附上下载地址:
[historical private download path redacted]
**使用方法**
在wordpress博客中有个小工具叫【文本】,其中可以输入任意的文本和HTML代码,剩下的不用多说了吧!
