ろぼいんブログ

【2025年版】Xのおすすめアルゴリズムを徹底解剖!ポストをバズらせる方法とは

【2025年版】Xのおすすめアルゴリズムを徹底解剖!ポストをバズらせる方法とは

X(旧Twitter)は2025年9月9日、おすすめアルゴリズムの最新バージョンを公開しました。

この記事では、最新アルゴリズムを3日かけて徹底解析した結果明らかになった、「バズる投稿の条件」「絶対にやってはいけないNG行動」「投稿前チェックリスト」をまとめました。

広告

さらに、Xのアルゴリズムの知見を組み込んで、ポストをバズりやすいように添削するGPTも公開しているので、ぜひ最後まで読んでください。

目次

はじめに

X(旧Twitter)のタイムラインに並ぶ投稿は、すべてユーザーの好みに応じて自動的に選ばれています。

「おすすめ」に表示される投稿は、単なる人気順ではなく、数多くのシグナルやフィルターを経て選定されています。

つまり、アルゴリズムの仕組みを理解しているかどうかで、投稿の届き方は大きく変わります。

近年、Xはアルゴリズムの一部をオープンソース化し、透明性を高める取り組みを進めています。

広告

この記事では、Xが公開した最新アルゴリズムの内容を整理し、投稿をより多くの人に届けるための方法を解説します。

おすすめアルゴリズムの仕組み

Xのおすすめタイムラインに表示される投稿は、単純に人気だから選ばれているわけではありません。

内部では複数の工程を経て膨大な候補がふるいにかけられ、スコアリングや調整を通じてようやく表示されます。

このセクションでは、投稿がユーザーの目に届くまでの流れを「フィルタリング」「収集」「スコアリング」「安全ポリシーと広告挿入」という4つのステップに分けて解説します。

投稿のフィルタリング

まずは、不適切なコンテンツをフィルタリングで除外します。投稿のフィルタリングは、おもに次の2つによって構成されます。

  • 可視性ポリシー
  • コンテンツ分類フィルター
  • 疲労フィルター

可視性ポリシーでは、ポストとアカウント単位で、センシティブなメディア、アダルト・NSFW(Not Safe for Work。職場での閲覧に適さないコンテンツ)コンテンツ、残虐・暴力的なコンテンツに対して、事前に定義されたルールを適用します。

広告

閲覧者の設定とルールのトグル、ラベルの深刻度に応じて、これらの投稿を許可するか警告を表示するかおすすめから除外するかを決定します。

つまり、センシティブなコンテンツはおすすめに表示されにくくなるということです。

可視性ポリシーの詳細は後述しますが、ポスト単位のセンシティブ判定は、筆者が開発しているShadowban Scannerを使うと確認できます。

コンテンツ分類フィルターでは、Grokによりスパム、NSFW(isNsfwフラグ)、ソフトNSFW(isSoftNsfwフラグ)、暴力的、ゴア(isGoreフラグ)とラベル付けされた投稿を除外します。

具体的にどのラベルが付与された投稿を除外するかは、内部設定で変更できるようになっています。

広告

疲労フィルターでは、過去14日間(内部設定で最大100日間までに変更可能)で次のいずれかの条件に当てはまる投稿を除外します。

  • 候補のオリジナル投稿者が閲覧者に[このポストに興味がない]指定されている
  • 候補のすべてのいいねユーザーが閲覧者の[このポストに興味がない]対象である
  • 候補に表示される[フォローされています]の全アカウントが[このポストに興味がない]対象で、かついいねが存在しない
  • 候補がリポストであり、そのリポストしたユーザーが[このポストに興味がない]指定されている

また、この段階で自分自身の投稿や最近エンゲージメントした投稿、以前配信した投稿を除外します。

そのほか、同一アカウントの投稿やリポスト、引用、似たメディアの重複を除外したり、不自然なシグナルがみられるメディア・動画を除外したりします。

ユーザー言語、エンゲージ言語、端末言語、許容コード、ユーザーの国・地域に合わない投稿も除外しますが、ネットワーク内ではフィルタリングが緩和されます。

投稿の収集

投稿をフィルタリングしたら、おすすめタイムラインに表示する候補となる多くの投稿を集めます。

内部では、誰をフォローしているか、コンテンツ類似性、検索の新規性、そして各投稿にあなたがどれだけ反応しそうかを予測する学習済みモデルを組み合わせて使用しています。

では、候補となる投稿をどのように集めているのでしょうか?

候補となる投稿は、次の3か所から収集します。

まずは、フォローしているアカウント(ネットワーク内)からの新しい投稿を収集します。

また、フォローしていないアカウント(ネットワーク外)の投稿のうち、グラフ、埋め込み(ベクトル化)、検索でおよそ24時間の新規性ウィンドウを用いてあなたに似た投稿(例:「あなたの好みを好むユーザーはこれも好んだ」)も収集します。

投稿が足りない場合は、直前に見た投稿以外からバックフィルを収集します。

ネットワーク外の投稿の収集では、24時間のエンゲージメントウィンドウが用いられており、24時間を過ぎるとおすすめタイムラインに載りにくくなります。

投稿のスコアリング

おすすめに表示する投稿の候補を収集したら、それぞれの候補に対してスコアを決定します。

投稿ごとに次の擬似コードに示すような静的な観点にもとづいてスコアリングします。

この静的スコアはおもに検索で用いられますが、Earlybirdの特徴量としておすすめアルゴリズムにも渡され、学習済みモデルや各種ロジックがほかの多くのシグナルと併せて利用します。

offensive_term_damping = 0.2
offensive_name_damping = 0.2
length_weight = 0.5
readability_weight = 0.1
shout_weight = 0.1
entropy_weight = 0.25
link_weight = 0.05
length_alpha = 0.03
readability_alpha = 0.05
entropy_alpha = 0.5
normalize(x, alpha) = 2 * (1 / (1 + exp(-alpha * x)) - 0.5)
length_score = normalize(length, length_alpha=0.03)
readability = (全トークン長の合計) * log(単語数) / 単語数
readability_score = normalize(readability, readability_alpha=0.05)
shout = caps / max(length, 1)
shout_score = 1.0 - shout
entropy = トークン頻度分布のエントロピー
entropy_score = normalize(entropy, entropy_alpha=0.5)
link_weight =0.05
score = (isOffensiveText ? offensive_term_damping : 1.0)
* (isOffensiveUser ? offensive_name_damping : 1.0)
* ( length_weight * length_score
+ readability_weight * readability_score
+ shout_weight * shout_score
+ entropy_weight * entropy_score
+ link_weight * has_link )

たとえば、攻撃的な名前のユーザーによる攻撃的なテキストを含む投稿は、スコアが0.2x0.2=0.04倍(96%減)されます。大文字が0文字の投稿は+0.1、大文字が50%の場合は+0.05されます。

また、長く、語彙の多様性が高く、読みやすい投稿ほどスコアが上昇します。

興味深いことに、リンクを1つでも含む投稿は+0.05されるようです。

この部分だけ見ると、イーロン・マスク氏による、リンクを含む投稿は優先順位が下げられるためリプライにリンクを貼った方がいいという主張と矛盾するようにみえます。

ただし、後述しますが、リンク関連のスコアはここ以外でも定義されており、それらによってリンクが最終的にスコアを上げるのか下げるのかは不明です。

静的スコアのほかに、次のようなシグナルも利用します。なお、どのアクションによってどれだけスコアが変化するかという正確な重みは公開されていません。

  • いいね
    • 10いいね以上(過去90日間/540日間)
  • 返信
    • 過去90日間/過去540日間
  • リツイート(リポスト)
    • 10いいね以上(過去90日間/過去540日間)
  • 投稿をタップして滞在
    • 2秒/5秒/10秒/30秒以上
  • 投稿者のプロフィールの訪問
    • 10秒/20秒/30秒以上(ミュート・ブロックなどのフィルターあり)
    • 過去14日間で2回/過去90日間で6回/過去180日間で6回(NSFWやフォロー関係、ミュート・ブロックなどのフィルターあり)
  • ブックマーク
  • 共有
    • 過去14日間
  • 動画の意味のある総視聴時間
    • 広告でない10秒以上の動画で10秒以上または95%以上視聴(過去90日間)
    • 広告でない10秒以上の動画で50%以上視聴(過去90日間)
  • リンクのクリック
  • オリジナルのポスト
    • 過去90日間/過去540日間
  • フォローしているアカウント
  • ポジティブなイベントのもとづく通知のクリック
    • 過去90日間
  • 認証済みアカウント(青いチェックマークのあるアカウント)
  • 投稿者が閲覧者のアドレス帳に登録されている

これらを単一のスコアに統合したあと、決められたルールにもとづいてスコアが調整されます。

  • 返信はオリジナル投稿に比べてやや下げられる
  • ネットワーク外(フォロー外)の投稿のスコアはやや下げられる(ネットワーク外の投稿が表示されるにはネットワーク内よりも高いスコアが必要)
  • 同一アカウントからの繰り返し投稿は減らされる
  • 最近[このポストに興味がない]された投稿者やパターンは割り引かれる
  • [報告]したり、過去にあなたが離脱した原因となったパターンを含む投稿のスコアは下げられる
  • 近似重複メディアは重複排除または割り引かれることがある
  • Grokにより低品質とみなされたポストはスコアが下げられる

[このポストに興味がない]ベースの疲労スコアリングでは、[このポストに興味がない]を押してから140日間にわたって、次のいずれかの条件に当てはまる投稿のスコアを0.2 + 0.2 × (d / 35.0)(ただしdは経過日数)倍します。

  • 投稿者が[このポストに興味がない]指定されている
  • 投稿をいいねしたすべてのユーザーが閲覧者の[このポストに興味がない]集合に含まれている。適用可能な乗数のうち最大(最も厳しい)を使用。
  • すべての[フォローされています]ユーザーが[このポストに興味がない]集合に含まれており、かついいねがない。場合にのみ適用。最大乗数を使用。
  • リポストの場合はリポストしたユーザーが[このポストに興味がない]集合に含まれている

たとえば、対象の投稿がリポストで、オリジナルの投稿者を[このポストに興味がない]してから70日後、リポストしたユーザーを[このポストに興味がない]してから105日後の場合は0.6x0.8=0.48倍されます。

これらのシグナルやスコアを、ユーザーのエンゲージメントを予測するモデルに入力します。

高品質な行動が見込まれる投稿はおすすめに掲載されやすくなり、否定的なフィードバックが見込まれる場合は掲載されにくくなります。

いいねでもスコアが上がりますが、より深い相互作用の方がよりスコアが向上します。

多くの人があなたのコンテンツに[このポストに興味がない]を押すと、パターンを変えるまで引きずられます。

返信は本物の会話を反映するなら強力ですが、返信チェーンがフィードを支配しないようにもなっています。

次のような一部のパラメーターは公開されていますが、内部設定で変更できるようになっているため実際の数値は不明です。

  • ネットワーク外(フォロー外)の投稿はデフォルトで0.75倍
  • 返信はデフォルトで0.75倍(返信されると元の投稿のスコアが下がるという意味ではなく、返信そのもののスコア)
  • 連続するネットワーク外の投稿は2連続まで
  • ネットワーク外のアカウントによる返信は、あなたがフォローしているアカウントへの返信でない限り除外
  • おすすめに載るには最小限のソーシャルプルーフが必要で、概ね約24時間の活動を考慮
  • 一部の動画品質シグナルは、動画が10秒以上の場合にのみカウント

安全ポリシーの適用と広告の挿入

スコアの調整が完了したら、システムはフィードをレイアウトし、ネットワーク外の投稿の連続が上限を超えないように抑え、モジュール(広告、フォロー/サブスクライブのおすすめ、プレビュー)を挿入し、安全ポリシーを適用します。

この安全ポリシーを適用する段階では、ミュートやブロックしたアカウントが除外されます。

また、広告の挿入もこの段階で実行します。

広告主ごとのブランドセーフティの設定を尊重し、望ましくないコンテキストで広告が表示されることを防ぎます。

通常のポストのスコアには影響しませんが、安全でないコンテンツや許可されないコンテキストの隣に広告が表示されることを防ぎます。

検索の仕組み

Xの検索では、さまざまなフィルタリング条件が設定されています。

おすすめアルゴリズムと同様の可視性ポリシーは、検索でも使用されます。

可視性ポリシーでは、次のようなアカウントや投稿を必要に応じて除外したり、閲覧時に警告を表示したり、墓石化(tombstone。[このポストは表示できません]というメッセージに置き換えること)したりします。

  • ブロック・ミュートしたアカウント
  • フォローしていない鍵アカウント
  • 凍結されたアカウント
  • 非活性なアカウント
  • 削除されたアカウントや投稿
  • DMCAや権利関係で表示が制限されているアカウントや投稿
  • 年齢制限のあるコンテンツ(閲覧者の年齢が条件に達していない場合)
  • 地域・コミュニティ制限のある投稿
  • NSFW、有害、誤情報としてラベル付けされた投稿

おすすめタイムラインと検索の両方で適用されるこれらのフィルタリングの一部は、事実上のシャドウバンとして機能します。

そのほか、Grokベースのフィルタリングを実施したり、ネットワーク外への返信を除外したり、類似候補・グラフ候補でしきい値に満たないものを除外したり、重複を除去したりします。

ポストをバズらせる方法

ポストをバズらせるには、投稿から24時間以内にほかのユーザーの注意を引く必要があります。

たとえば、次のようなポストはバズりやすいと考えられます。

  • 明確なフックで人々のスクロールを止めて投稿を開かせ、その投稿に滞在する価値(中身、新規性、または感情)を提供する
  • 動画は半分以上まで見られる、画像はメッセージを補強し置き換えない
  • ブックマーク、プロフィール訪問、共有が多い
  • 最初の24時間で身近な輪を越えた多くの反応がある
  • ミュートや報告される可能性のあるコンテンツや、セーフティ設定に触れる種類のコンテンツは避ける

もし投稿が本当に役立ち、教え、楽しませるなら、これらは自然に生まれでしょう。

とはいえ、これらを実現するためのポイントはいくつかあります。

  • 投稿を有用または意外に:最初の1文で注意を引き、その後の内容で人々が投稿をタップして滞在するようにする。動画では冒頭ですぐに人々の注意を引き、10秒以上視聴されるようにする
  • 意味のある相互作用を意識する:ブックマークや引用などにより、24時間以内に身近な輪を超えたより多くの人とより深く相互作用する投稿を意識する
  • オリジナルの投稿を:オリジナル投稿や引用投稿は、長い返信チェーンよりも高いスコアを獲得しやすい
  • 連続で投稿しない:同一のアカウントからの投稿は連続してオススメされにくいため、連投すると評価が分散してしまう
  • 隣のオーディエンスに届ける:コア外からの早期シグナルが有利に働くため、コラボしたり、あなたのトピックを自然に好むフォロワーをもつクリエイターに引用/返信したりする
  • 健全性を守る:[このポストに興味がない]を押されるような投稿を避ける
  • よいパターンを反復する:プロフィール訪問、保存、長い視聴時間を実際に得た投稿を観し、そのパターン繰り返す

ポスト投稿前のチェックリスト

おすすめに載りやすく、拡散されやすい投稿を目指すためには、単に思いついたことをそのままポストするのではなく、「アルゴリズムにどう評価されるか」「ユーザーにとってどう映るか」を意識しましょう。

同じテーマでも、工夫次第で拡散力に大きな差が生まれます。

  • 冒頭で注意を引けるか?
    1文目や冒頭の数秒で興味を持たせられるか確認する
  • 有用性・新規性・感情のいずれかがあるか?
    読む/見る理由を明確にする
  • 画像や動画の活用は適切か?
    補強的に使い、メッセージを置き換えない
  • 意味のある相互作用を促せるか?
    保存・引用・ブックマークにつながる構成か
  • 24時間以内に広がる導線があるか?
    リプライ、引用、コラボで隣接オーディエンスへ届く工夫があるか
  • センシティブ判定のリスクはないか?
    フィルタリングされる要素を含んでいないか
  • 過去に伸びたパターンを活かしているか?
    自分のアカウントの実績を参考にする

よくある噂の検証

Xのアルゴリズムについては、ユーザーの間でさまざまな噂や憶測が広まっています。

「シャドウバンは存在するのか」「認証済みアカウントは優遇されるのか」といった話題はとくに議論が尽きません。

ここでは、公開されたコードや公式発表、検証結果をもとに、よくある疑問をひとつずつ整理しました。

Q. シャドウバンはある?

はい。おすすめタイムラインや検索の前処理として適用される可視性ポリシーが、シャドウバンとして機能しています。

Xは公式にはシャドウバンが存在しないと述べていますが、公式のシャドウバンの定義と、一般的なシャドウバンの定義が異なることに注意が必要です。

Q. URLを含む投稿のスコアは下がる?

X上では「URLを含むポストはスコアが下がる」という主張が多く展開されていますが、今回公開されたコードからはその主張を裏付ける明確な根拠は見つかりませんでした。

むしろ前述のように、ポストごとの静的スコアではリンクを含む投稿のスコアは加算されるようになっています。

一方で、ニュースや画像、動画のURLではない場合で、かつ投稿者の評価やエンゲージメントが低い場合は、URLを含む投稿はスパムとみなされやすくなります(ただし常に適用されるわけではない)。

また、これら以外にもリンクの有無や数によってスコアを増減する処理がありますが、パラメーターは公開されておらず、内部設定次第でブーストもデブーストもできるようになっています。

セーフティラベル(Untrusted/Unsafe URL)が付与されるとランクダウンされたり、ネットワーク外のポストが競合ドメインにリンクしている場合はフィルタリングされる可能性があるほか、検索でURL部分にのみマッチした場合は順位が下がることはあります。

しかし、URL全般のスコアが一律で下がるという挙動は、公開されたコードからは読み取れませんでした(前述のように内部設定次第でブーストもデブーストもできるが、パラメーターが公開されていない)。

Q. 画像や動画、ニュースURLを含む投稿のスコアは上がる?

はい、画像や動画、ニュースURLを含む投稿のスコアは上がります。

画像または動画を含む投稿にはtweetHasMediaUrlBoost、ニュースのURLを含む投稿にはtweetHasNewsUrlBoostが適用されます。

具体的な数値は内部設定で変更できるため、1.0未満に設定することでデブーストも可能ですが、デブーストを想定した変数名の末尾には「Damping」という名前が付いていることから、tweetHasMediaUrlBoosttweetHasNewsUrlBoostは基本的にはブーストを想定していると思われます。

Q. 投稿がバズるとほかの投稿もバズりやすくなる?

バズったアカウントの投稿をバズりやすくする直接的な処理はありませんが、シグナルの組み合わせにより実質的にそのように機能することがあります。

たとえば、Xのランキングアルゴリズムでは、ほかのユーザーがプロフィールを閲覧した回数などをシグナルとして利用しており、バズったあとはプロフィールの訪問回数が多くなるため、おすすめに載りやすくなります。

なお、運営が管理する「バイラルアカウント(≒人気なアカウント)」のリストが存在していますが、このリストはおもに統計に用いられるため、投稿のブーストには使われていないようです。

ちなみに、バイラルアカウントのリストは公開されたコードに含まれていませんでした。

Q. 自分でセンシティブ設定した場合と自動でセンシティブ設定された場合は扱いが異なる?

アカウント単位のセンシティブ設定については、自分で設定した場合と自動設定された場合は異なります。ポスト単位のセンシティブ設定については、違いはほぼありません。

センシティブ関連のフラグには、アカウント単位のものとポスト単位のものがあり、それぞれ自分で設定した場合とシステムによって自動設定された場合で区別されています。

システムによってセンシティブとして自動判定されたアカウント(AuthorIsNsfwAdmin)はおすすめタイムラインの候補から除外されますが、自分でセンシティブ設定したアカウント(AuthorIsNsfwUser)は除外されません。

検索結果ではどちらのアカウントも除外またはデブーストされます。

ポスト単位のセンシティブ設定が適用されたポストについては、自分で設定したか自動設定されたかを問わず、ネットワーク外(界隈外)のおすすめタイムラインに表示されません。

また、自分でセンシティブ設定したかどうかを問わず、システムによってセンシティブ(NSFW HighRecall)と判定されたポストはおすすめから除外されます。

Q. 認証済みアカウントや大規模アカウントは特別扱いされる?

認証済みアカウント(青いバッジのある有料アカウント)は特別扱いされますが、大規模アカウントはほとんど特別扱いされません。

おすすめを選ぶ際のフィルターでは、リポストやいいねの少ない投稿が除外されることがありますが、認証済みのアカウントはそれらのチェックを通過できます。

認証済みアカウントによるポストのスコアは係数が掛かるようになっており、加えておすすめの先頭に優先的に配置される仕組みのため、認証済みでないアカウントよりもおすすめに掲載されやすくなっています。

一方で、大規模アカウントについてはアカウントの人気にもとづいてスコアを調整する正規化ステップがあります。

発見のシードはフォローと相互作用グラフから来るため、広くフォローされるアカウントは間接的に恩恵を受けますが、多様性ルールが単一のアカウントによるフィードの独占を防ぎます。

ちなみに、スペースやライブ配信中の大規模アカウント(フォロワー数100万人以上)のライブ関連ポストはをブーストする処理が存在しますが、「Disabled in production」と書かれており本番環境では無効になっているようです。

Q. 品質の低いポストはスコアが下がる?

はい、低品質のポストはスコアが下がり、おすすめに掲載されにくくなります。

前述の擬似コードで示したポストごとの静的スコアでは、攻撃的なポストや短いポスト、読みにくいポスト、語彙の多様性の低いポストはスコアが減少します。

また、Grokにより低品質とみなされたポスト(Grok SLOPスコアが高いポスト)には1.0以下の係数がかけられ、おすすめに表示されにくくなります。

Q. ハッシュタグを複数個付けるとスコアが下がる?

ハッシュタグが2個までなら問題ありませんが、3個以上付けると検索結果におけるポストのスコアが下がります。

また、ポストにトレンドを含む場合は検索結果でのスコアが上昇しますが、2つ以上のトレンドを含む場合はスコアが下がるようになっており、スパム対策が組み込まれています。

なお、これらは検索結果におけるスコアの話なので、おすすめでは話が変わってきます。

ハッシュタグが3つ以上あったりトレンドが複数個あったりするというフラグは、エンゲージメントを予測する非公開のモデルに入力として渡っているものの、おすすめでの順位にどう影響するかはモデル次第です。

ポストを添削しよう

この記事で紹介したアルゴリズムの仕組みや投稿前のチェックリストを組み込んだGPTを公開しました。

ポストの下書きを入力すると、バズりやすいフォーマットに改善してくれます。ぜひ使ってみてください。

まとめ

Xのおすすめアルゴリズムは、投稿を「集める」「スコアリングする」「調整する」という多段階の仕組みによって成り立っています。

その中で評価されるのは、表面的なエンゲージメント数だけではなく、滞在時間や保存、プロフィール訪問といった深い相互作用です。

投稿を伸ばすために重要なのは、アルゴリズムのルールを理解するだけでなく、ユーザーが価値を感じる体験を設計することです。

筆者が公開しているShadowban Scannerを使うと、おすすめや検索結果から除外されてしまう、アカウント単位やポスト単位のセンシティブ判定を確認できます。

ぜひ、インストールして確認してみてください。

また、このサイトではXに関する最新ニュースやハウツーも多く発信しています。

筆者のXアカウントをフォローして最新情報を確認してみてください。

参考リンク

記事をシェア

Xに共有するBlueskyに共有するMisskeyに共有するLINEに共有するThreadsに共有する

フォローして最新情報を入手

Googleの優先ソースに追加すると、このサイトの記事をGoogleで見つけやすくなります。また、ぜひXやRSSフィードもフォローしてください。

Googleの優先ソースとして追加するGoogleの優先ソースとして追加するXのロゴ
著者のアイコン画像

生まれた時から、母国語よりも先にJavaScriptを使っていました。ネットの海のどこにもいなくてどこにでもいます。

Webフロントエンドプログラマーとして、TypeScriptを用いたWebアプリやブラウザー拡張機能を制作。Xのシャドウバン検知ツール「Shadowban Scanner」やリンクカード復活ツール「Restore Link Card」を公開し、国内外のメディアで紹介されました。iGEM 2023ではJapan-UnitedチームのWikiを制作してGrand Prizeの獲得に貢献。ブログではXやSNSの最新ニュース、不具合の検証と対処法、フロントエンド開発の知見を発信しています。