トラックバックとは、自分の記事で他人のブログ記事に言及したとき、相手のブログへ「記事のタイトル・抜粋・URL」を送って知らせる通知機能です。2002年にブログツールのMovable Typeが実装して広まりましたが、送信元を確かめない作りがスパムの温床になり、国内の主要ブログサービスは2011年から2019年にかけて相次いで機能を終えました。この記事では、送受信されるデータの中身、ピンバックとの違い、廃止の経緯、WordPress 7.1での止め方までを、仕様書とソースコードを根拠に整理します。
まとめ:トラックバックは送信元を検証しない旧式の通知機能
- 定義:相手記事のトラックバックURLへ、タイトル・抜粋・URL・ブログ名をHTTP POSTで送る通知。受信側が受理し承認すると、コメント欄にリンク付きで表示される。
- ピンバックとの違い:トラックバックは抜粋を含み、WordPressでは送信先を手で指定する。ピンバックは双方が有効ならリンクを張るだけで自動送信され、WordPressは受信時に送信元ページのリンクの実在を確かめる。
- 現状:忍者ブログ(2011年)、Amebaブログ(2012年)、ライブドアブログ(2017年)、JUGEM(2019年)などが機能を終了。WordPressには残っており、受信は今も既定で有効。
- SEO:WordPressはトラックバックのリンクに
ugcとnofollowを付ける。順位目的で送ればGoogleのリンクスパムに当たる。 - 判断:新しく使う理由はない。WordPressを運用しているなら受信を止め、7.1以降はフィルタ1行でサイト全体を止められる。
トラックバックの意味と生まれた経緯
トラックバックは、引用・言及した側から引用された側へ「あなたの記事について書きました」と伝える仕組みです。普通にリンクを張っただけでは、張られた側は気づけません。そこで言及した側が、相手記事ごとに用意された専用のURL(トラックバックURL、またはトラックバックping URL)へ自分の記事の情報を送り、相手のコメント欄に「この記事へのトラックバック」として表示してもらいます。
最初の実装は、Six Apartが開発したMovable Typeの2.2です。Movable Typeの公式解説は「Movable Type 2.2, which contained the first implementation of TrackBack」と書いており、リリース一覧では2.2の公開日は2002年6月26日です。ブログ同士が話題を横につなぐ手段として、2000年代半ばの国内ブログで定着しました。
なお、映像制作の用語にも同じ「トラックバック」があります。CGWORLDの用語集では、カメラを被写体から遠ざけていく撮影方法(ドリーアウト)を指します。この記事で扱うのはブログの通知機能のほうです。
トラックバックpingの中身:送るデータと返る応答
トラックバックで相手に送る1回の通知を「トラックバックping」と呼びます。中身はWebフォームの送信と同じHTTP POSTで、特別なプロトコルは使いません。WordPressの場合、トラックバックURLは記事URLの末尾に trackback/ を付けた形(パーマリンク未設定なら wp-trackback.php?p=投稿ID)です。
送信側が送る4項目
WordPress 7.1.4の送信処理(trackback() 関数)は、次の4項目をPOSTの本文に入れて送ります。受信側の wp-trackback.php は、タイトルを250文字、抜粋を252文字で切り詰めて保存します。
| 項目名 | 中身 | 受信側での扱い(WordPress) |
|---|---|---|
| url | 送信元の記事URL | 必須。コメント作成者のURLになる |
| title | 送信元の記事タイトル | 必須。250文字で切り詰め |
| excerpt | 送信元の記事の抜粋 | 任意。252文字で切り詰め |
| blog_name | 送信元のブログ名 | 任意。コメント作成者名になる |
受信側は、このほかに文字コードを示す charset も読みます。指定が無いとWordPressはASCII・UTF-8・JIS・EUC-JP・SJISなどを順に推定するため、EUC-JPのブログからUTF-8のブログへ送ったときの文字化けは、この推定が外れたときに起きます。
手元から送るなら、curlで次のように再現できます(送信先は相手記事のトラックバックURL)。
curl -X POST https://example.com/2026/10/28/hello-world/trackback/ \
-d "url=https://my-blog.example/post-1/" \
--data-urlencode "title=記事タイトル" \
--data-urlencode "excerpt=記事の抜粋" \
--data-urlencode "blog_name=ブログ名"
受信側が返すXML
受信側は短いXMLで結果を返します。error が0なら受理、1なら拒否で、拒否のときは message に理由が入ります。WordPress 7.1をPlayground(ブラウザやNode.jsで動く公式の実行環境)で起動し、上と同じ形式のcurlで既定の投稿「Hello world!」へ送った結果が次の2つです(2026年10月29日に確認)。
<?xml version="1.0" encoding="utf-8"?>
<response>
<error>0</error>
</response>
<?xml version="1.0" encoding="utf-8"?>
<response>
<error>1</error>
<message>There is already a ping from that URL for this post.</message>
</response>
1つ目が初回の送信、2つ目は同じURLからもう一度送ったときの応答です。WordPressは同じ記事に同じ送信元URLから届いたトラックバックを重複として拒否します。記事側で受信を閉じていれば「Sorry, trackbacks are closed for this item.」が返ります。
見落とされやすいのは、1つ目で送信元に指定したURLは存在しないページで、相手記事へのリンクもどこにも無いのに受理された点です。これが次の章で扱うピンバックとの決定的な違いです。
トラックバックとピンバックの違い
ピンバックは、Stuart LangridgeとIan Hicksonが2002年9月に公開したPingback 1.0仕様による通知です。記事内のリンク先へXML-RPCの pingback.ping メソッドで「送信元URL」と「リンク先URL」の2つだけを送ります。
| 項目 | トラックバック | ピンバック |
|---|---|---|
| 送り方(WordPress標準) | 相手のトラックバックURLを手で指定 | 本文にリンクを張ると自動で送信 |
| 送る内容 | URL・タイトル・抜粋・ブログ名 | 送信元URLとリンク先URLだけ |
| 方式 | HTTP POST | XML-RPC(pingback.ping) |
| 送信元の検証(WordPress) | しない | する(リンクが無ければエラー17) |
| 最初の実装・仕様 | Movable Type 2.2(2002年6月) | Pingback 1.0(2002年9月) |
送り方の手動・自動は実装しだいです。Movable Typeには、記事内のリンク先がトラックバックに対応していれば自動でpingを送る「auto-discovery」の設定がありました。WordPressで比べたときの違いの核心は検証です。ピンバックの仕様自体は検証を「MAY(してもよい)」としていますが、WordPressは受け取ると送信元ページを取得し、リンクが見つからなければ「The source URL does not contain a link to the target URL」としてエラー17を返します。一方トラックバックは、届いたタイトル・抜粋・URLをそのまま保存します。WordPress 7.1.4のコメント判定処理(check_comment())には、「A trackback carries no such proof. Its source URL, title, and excerpt are unverified request data」という注記まであります。
ピンバックは検証があるぶん安全というわけでもありません。送信元ページを取りにいく動作が、他サイトへの攻撃の踏み台に使われてきました。この点はxmlrpc.phpとは?無効化で止まる範囲と止まらない範囲をWordPress 7.1で実測で詳しく扱っています。
トラックバックが使われなくなった理由と廃止の時期
理由はスパムです。誰でも、どの記事にも、リンクの裏付けなしに宣伝文を送り込めるため、アダルトサイトやアフィリエイトへの誘導が大量に届きました。2011年9月に機能を廃止した忍者ブログの告知は、廃止理由に「トラックバック機能利用者の減少」と「トラックバックスパムによるユーザー様の対応負荷を無くすため」を挙げています。交流の場がSNSへ移ったことで、スパム対策の手間に見合う利用もなくなりました。
主要ブログサービスの終了時期
各社の公式告知で確かめた終了時期は次のとおりです。
| サービス | 終了時期 |
|---|---|
| 忍者ブログ | 2011年9月30日 |
| Amebaブログ | 2012年5月(マイページ刷新に合わせて終了) |
| ライブドアブログ | 2017年6月29日(送受信とも終了) |
| Seesaaブログ | 2017年7月中をめどに終了(完了を追記で報告) |
| ココログ | 2019年3月19日の全面リニューアルで終了 |
| JUGEM | 2019年12月22日 |
出典はAmebaスタッフブログ、ライブドアブログの告知(2017年6月29日の追記で「トラックバックの送受信、みんなのデザインの提供を終了しました」)、Seesaaの告知、ココログの告知(「すでに受けた情報は保持します」)、JUGEMの告知です。ココログのように、終了後も過去に受けたトラックバックの表示だけ残しているサービスがあります。こうした無料ブログからWordPressへ移る場合の手順は他サービスからWordPressへの移行|Wix・Jimdo・アメブロ・HTML別の手順と注意点にまとめています。
WordPressでは今も受信が既定で有効
WordPressは機能を残しており、7.1.4のインストール時の既定値は default_ping_status が open、つまり新しい投稿はトラックバックとピンバックを受け付けます。ただし、受け付けたトラックバックがすぐ表示されるわけではありません。既定で有効な「すでに承認されたコメントの投稿者のコメントを許可し、それ以外のコメントを承認待ちにする」設定のもとでは、トラックバックは必ず承認待ちに回ります。検証できない以上、自動承認の対象にしない設計です。
WordPress 7.1.0では、本番以外の環境(local・development・staging)でピンバック・トラックバック・更新通知の送受信を既定で止める処理が加わりました。ステージング環境から本番記事の言及先へ通知が飛ぶ事故を防ぐためのものです。
WordPressでトラックバックを止める・送る手順
受信を止める方法は、影響範囲の狭い順に3つあります。新規投稿だけなら管理画面、既存投稿まで含めるならWP-CLI、サイト全体を確実に止めるならフィルタです。
新規投稿の受信停止設定(設定 > ディスカッション)
管理画面の「設定」>「ディスカッション」で、「デフォルトの投稿設定」にある次の2項目のチェックを外して保存します。
- 「新しい投稿に対し他のブログからの通知 (ピンバック・トラックバック) を受け付ける」:受信の既定値。外すと以後の新規投稿は受け付けない。
- 「投稿中からリンクしたすべてのブログへの通知を試みる」:自分から送るピンバックの設定。
1つ目の受信設定は、名前のとおり新しい投稿の既定値にだけ効きます。公開済みの投稿は、投稿ごとの受信設定(ping_status)が残ったままです。2つ目の送信設定は、投稿を公開する時点で参照されます。
既存投稿のトラックバック受信の一括停止(WP-CLI)
ブロックエディターでは投稿ごとに「ピンバックとトラックバックを有効化」をオフにできますが、記事数が多いならWP-CLIでまとめて受信を止めます。次のコマンドは、投稿と固定ページの ping_status を closed にします。
wp post update $(wp post list --post_type=post,page --format=ids) --ping_status=closed
Playground上で wp post update 1 --ping_status=closed を実行し、REST APIで ping_status が closed に変わることを確認しました。すでに届いているトラックバックは、管理画面の「コメント」で種類を「トラックバック/ピンバック」に絞り込めば一括で削除できます。
サイト全体の通知送受信停止(7.1以降のフィルタ)
WordPress 7.1以降なら、上の7.1.0の仕組みを本番でも有効にするのが最も手堅い方法です。wp_should_disable_pings_for_environment フィルタに true を返すと、送信(ピンバック・トラックバック・更新通知)と受信(トラックバック・ピンバック)がまとめて止まります。wp-content/mu-plugins/ フォルダ(無ければ作成)に、次の内容を disable-pings.php などの名前で保存します。mu-pluginsに置いたPHPファイルは有効化の操作なしで読み込まれます。
<?php
add_filter( 'wp_should_disable_pings_for_environment', '__return_true' );
Playgroundでこのフィルタを入れると、トラックバックは <error>1</error> とともに「Trackbacks are disabled in non-production environments.」で拒否され、XML-RPCのメソッド一覧から pingback.ping が消えました。本番環境でもこの文言が返るので、ログを見て「環境判定がおかしい」と誤解しないよう注意してください。7.0以前にはこのフィルタが無いため、その場合は上の2つの方法を組み合わせます。
トラックバック以外の攻撃面(ログイン・XML-RPC・プラグインの更新)はWordPressセキュリティ対策:攻撃面ごとの設定とWP-CLIでの確認手順【2026年10月・7.1.3対応】で、設定と確認コマンドを攻撃面ごとに整理しています。社内に手が無く、こうした設定の棚卸しから任せたい場合はWordPress保守・メンテナンスで対応しています。
クラシックエディターでのトラックバック送信手順
現行のブロックエディターには、トラックバックの送信先を入力する欄がありません。WordPress公式ドキュメントも送信手順の見出しを「How do I send a Trackback (Classic Editor Only)」としており、7.1.4のソースでも「トラックバック送信」ボックスは後方互換用(__back_compat_meta_box)としてだけ登録されています。送るにはClassic Editorプラグインを入れ、投稿画面の「トラックバック送信」欄の「トラックバック送信先:」に相手のトラックバックURL(記事URLではない)を入れて公開します。相手がWordPressで、双方のピンバック送受信が有効なら、本文にリンクを張るだけでピンバックが届くので、トラックバックを使う場面はほぼありません。
トラックバックとSEOの関係
WordPressはトラックバックを「コメント」として保存し、送信元URLをコメント作成者のリンクとして表示します。このリンクには rel="ugc" が付き、外部サイトなら external nofollow も加わります(WordPress 5.3から)。ugc は、Googleがリンクの属性の説明で「コメントやフォーラムの投稿などユーザー生成コンテンツのリンク」に付けるよう勧めている値です。
Googleは2019年9月の発表以降、nofollow・ugc・sponsored を「評価から外す命令」ではなく「ヒント」として扱うと説明しています。つまり評価がゼロと決まっているわけではありませんが、評価するかはGoogleの判断で、送る側が当てにできるものではありません。順位を目的に大量のトラックバックを送る行為は、Googleのスパムポリシーが定義する「検索順位を操作する目的でのリンクの作成」そのものです。被リンクの考え方はSEO外部対策(オフページSEO)とは?被リンク・サイテーションの獲得方法とNG施策【2026年版】、属性の書き分けはnofollowとは?noindex・noopenerとの違いと正しい書き方【2026年時点】を参照してください。
よくある質問
トラックバックとは何ですか?
他人のブログ記事に言及したとき、相手のトラックバックURLへ自分の記事のタイトル・抜粋・URLを送り、相手のコメント欄にリンクを表示してもらう通知機能です。2002年にMovable Type 2.2が最初に実装しました。
トラックバックpingとは何ですか?
トラックバックで送る1回分の通知のことです。中身はurl・title・excerpt・blog_nameを入れたHTTP POSTで、受信側は error が0(受理)か1(拒否)のXMLを返します。
ピンバックとは何ですか?
本文にリンクを張るだけで、リンク先へ自動で送られる通知です。送るのは送信元URLとリンク先URLだけで、WordPressは受け取ると送信元ページにリンクが実在するかを確かめます。
トラックバックは今も使えますか?
主要な国内ブログサービスの多くは2011年から2019年に機能を終えています。WordPressでは受信は既定で有効ですが、管理画面から送信できるのはクラシックエディターだけで(curlなどで直接POSTすることは可能)、受け取ったものも既定では承認待ちになります。
トラックバックにSEO効果はありますか?
期待できません。WordPressはリンクに ugc と nofollow を付け、Googleはそれを評価の参考程度に扱います。順位目的で送ればリンクスパムに当たります。