こんにちは。ソーシャル経済メディア「NewsPicks」でエンジニアをしております崔(ちぇ)です。2020年に新卒入社し、去年まで主に検索システムの開発を担っておりました。今年からはより幅広い基盤改善にチャレンジしております。
今回は、今までNewsPicksの検索システムをどのように改善してきたかについてお話ししたいと思います。去年のSearch Engineering Tech Talk 2024 Springにて発表した内容をもとにしております。当時の発表は10分弱のLT枠で発表資料としてスライドしか残っておりません。そこで、より詳細な内容を記事にまとめたいと思いました。
もしご興味ありましたら、ぜひ当時の発表資料も一緒にご確認いただけると幸いです。
下記の記事から勉強会の裏話もご覧いただけます!
はじめに
タイトルに「検索失敗から学ぶUX改善の旅」と書きました。NewsPicksでは、検索体験をよくすべく毎週ユーザーの行動ログをモニタリングしており、そこで発見した課題を地道に改善しております。
本記事では色々と参考にできる事例を紹介しておりますので、気になる方は読んでいただけると嬉しいです!
NewsPicksの検索システムについて
NewsPicksは経済メディアで、記事/動画/書籍などの多様な種類のコンテンツを楽しむことができます。トップ画面から興味深いコンテンツがずらり並びますが、コンテンツが多い分、ユーザーが見たいものをピンポイントで探せる導線を用意することが大事です。それが「検索」なんです。
まず、アプリではヘッダーの虫眼鏡から検索できます。検索結果画面にはいくつかのタブが存在し、デフォルトでは「トップ」タブが開かれます。ここには上から時事性の高い最新記事、オリジナル動画、オリジナル特集などがまとまったセクションが順番に表示されます。

デフォルトでは「おすすめ順」の結果が表示されますが、それを「公開日順」や「Pick数順」*1に変更することができます。また、オリジナル記事に絞り込んだり、最近では書籍だけを絞り込むことができるようになっています。

Webだとヘッダーの検索欄からキーワードを入力して開始できます。Webを主に使うユーザーの傾向を考慮し、アプリとは少しUIが異なります。例えば、「企業」「業界」のタブがより目立つ位置にあります。アプリと同様にWebでも並び替える基準を変えたり、絞り込むことができます。

これら以外にも、ユーザーページでの検索(本人のもののみ可能)や、フォローするコンテンツを調べる際にも検索システムが登場します。

今回はこの中でもヘッダーの検索窓から検索する際の体験を改善した話をしようと思います。
データから課題を発見し、継続的にユーザー体験を改善する
課題を発見する方法
課題を見つける方法はいくつかあります。
種類 | 例 | 特徴 | |
---|---|---|---|
直接的 | ユーザーが要望を伝える | レビュー | - ユーザーの行動の理由がはっきりわかる - 大量のデータを集めるのに時間と手間がかかる |
社内からの要望 | |||
ユーザーリサーチ | |||
ユーザーインタビュー | |||
間接的 | データから要望を推察する | アドホックな分析 | - 知りたい時にすぐ調べられる - 大量のデータを一気に確認することができる - ユーザーの行動の理由を推測しネクストアクションを考えるしかない |
継続的なモニタリング |
今回は、間接的な方法の中でも継続的にモニタリングを行うことでUXを改善した話がしたいと思います。
より具体的には、毎週チームでモニタリングすることで「検索失敗」を「検索成功」に変え、ユーザー体験を向上させた話です。
検索失敗の例
ところで、「検索失敗」や「検索成功」とは何でしょう?
一般的に一回の検索セッションは、同じユーザーが行う一連の検索を指します。サービスによって検索が「失敗した」「成功した」を判定する基準は異なると思います。NewsPicksのようなメディアなら何らかのコンテンツにアクセスしたもしくはそれが利益につながったケースを「検索成功」とみなすでしょう。一方で、何もせずにそのまま検索結果画面から離脱したケースを「検索失敗」とします。

弊社のデータだと、まだ一連の検索を一つのセッションとして束ねておらず、一回の検索 = 一回の検索セッションとみなしています。なので、真の「検索成功」や「検索失敗」の判定はできませんが、一回の検索が失敗したらそれを「検索失敗」と捉えて改善を行いました。
サービスがおすすめするコンテンツだけではなく、ユーザーが見たいものを探しに行くのですから、「検索」という行動は、かなり積極的で能動的な意思表現だと思います。コンテンツを提供する側としては、その要望にしっかりと答えていきたいです。なのに、「検索失敗」してしまってはサービスがユーザーの要望に答えられなかったことになり、それは機会損失に繋がります。失敗の体験が続くと、そのサービスを使いたくなくなるかもしれません。
ユーザーが検索するにあたり、何が不便で何に困ったのかを知ってこそ改善ができます。ただ、Googleのような検索プラットフォームではないのに、検索のためだけにユーザーリサーチやヒヤリングの場を設けるのはコストが高く、その上少数の意見しか得られません。一方で、データを分析することはいつでも可能で、ほぼ全員を対象に観察することができます。なので、「検索失敗」を毎週モニタリングすることにしました。それを徐々にチームのモニタリング対象の一つにしていきました。
毎週以下のようなグラフを観察するのです。今週はどのようなキーワードがどれくらい失敗したのかをランキングで表しています。例えば、以下のグラフだと吉本
イオン
堀江
の順に多く失敗していることがわかります。中でももし吉本
の失敗率がN%を超えたら、原因を推察し何らかの改善を行います。そして、改善を行なった直後に吉本
の検索率が下がっているかなどを確認します。

NewsPicksは基本的に時事性の高いニュースを扱います。つまり、特定のキーワードでの失敗は特定の期間にだけ発生する可能性が高いです。なので、なるべく早めに対応し結果を確認するか類似する失敗のパターンが消滅したかを確認する必要があります。
この、「類似するパターン」をこれからご紹介します。
失敗パターン① プッシュ通知の文言で検索して失敗する
NewsPicksがコンテンツをおすすめする方法の一つとして、例えば、以下のような「通知」をお送りすることがあります。

通知が届いた際にすぐ開けるといいのですが、以下のような予想外の出来事で見たいコンテンツにアクセスできなくなるケースも存在します。
- 今は忙しいから後で確認しようと思ったが通知の履歴を消してしまいどれだったかわからなくなった
- タップしたけど(トラフィック負荷などにより)コンテンツが開かない不具合が発生した
- 通知をタップせずにアプリを開いたらどのコンテンツが通知されたのかわからなくなった
このような場合、ほとんどのユーザーは「検索」から該当するコンテンツに辿り着こうとします。しかし、数年前のNewsPicksは通知文言にだけ含まれるキーワードでは検索にヒットしませんでした。弊社の検索データにはタイトルやサマリーなどのテキストを持たせるのですが、通知文言のテキストはなかったのです。
例えば、以下のようなケースがありました。
通知文言 | コンテンツのタイトル |
---|---|
急増中の「ハラハラ問題」とは | 【完全図解】高すぎる目標も達成できる、3つの意外な方法 |
組織マネジメントに活かせる「なんでなんでゲーム」とは? | 組織成長を加速させる「リフレクション」の扉 |
通知文言を思い出して検索する際には、インパクトのあるキーワードが記憶に残りやすいので検索語になりがちです。上記の例だとハラハラ問題
やなんでなんでゲーム
がそれにあたります。

失敗パターン② サムネイル画像の言葉で検索して失敗する
上述しているように、NewsPicksでは動画が見れます。動画は記事よりも一目で内容がわからないものです。なので、サムネにキーワードを書いてユーザーに知らせることが多々あります。また、一部分だけを切り抜いてYouTubeなどのSNSに投稿する際には、目を引くキーワードを設定することが一般的だと思います。
例えば、以下のYouTubeに投稿されたショート動画はかなり人気を集めました。ユーザーは本編を求めてNewsPicksを訪ねるのですが、ホリエモン 神プレゼン
などで検索しても本編がヒットしません。NewsPicks上の動画の検索データはそれらのキーワードを持っていないからです。

YouTube市場が拡大されるにつれ、ユーザーの流入も増えています。なのに、着地点がないとせっかくのマーケティングも台無しになってしまいます。
失敗パターン③ 古い人気のあるコンテンツを探したいが、見つからず失敗する
最後に、古い記事が再び注目を浴びた時の検索失敗の例です。いいコンテンツというのは、我々が予想しなかったタイミングでどこかでバズり、ユーザーを招くことがあります。ただ、失敗パターン②と同様に着地点がないとせっかくのチャンスを見逃すこととなります。
例えば、2022年10月頃にいきなりリクルート 出木場
などのキーワードで大量の検索失敗が発生しました。多くの場合、直近に公開されたコンテンツが原因になるので、新着コンテンツや通知履歴を探りました。原因となってそうなものが見当たらず、Googleで検索してみたところ、X(旧Twitter)に投稿したてのつぶやきがありました。それは、「【リクルート出木場】100倍の結果を出す、成長戦略3つのポイント」という公開して1年以上たった記事を褒めたもので、反響が大きかったのです。
似たようなケースとして、2020年10月頃に公開された「HORIE ONE」のエピソードの「【堀江貴文×勝間和代】生命保険は損?テンプレ生活をハックせよ」という動画が探せなくて2022年の9月に多量の検索失敗が発生したこともあります。当時はNewsPicksがSNSなどに古いが人気のあるコンテンツを表示するデジタルマーケティングを行なっておりました。それを見かけたユーザーが、2年も過ぎていきなりホリエモン 勝間
などで検索し、失敗したのです。
検索体験を向上するための取り組み
では、これらの課題にどのように向き合ってきたのかをご説明します。大きく3つの施策を行いました。
取り組み① DBに「検索用のキーワード」フィールドを設ける
失敗パターン①や②をなるべく早めに解決するためには、自由に設定できるデータを設けるのが良さそうに思いました。それで検索データに「検索用キーワード」という項目を追加しました。この項目はかなり自由度が高く、各コンテンツがヒットして欲しい文言の種類が増えたり減ったりしても対応できます。
通知文言に関しては、通知をプッシュした直後に自動的に検索用キーワードとして登録するようにしました。手動で登録したいものがあれば、コンテンツ制作チームで自由に設定できるよう、社内ツールも用意しました。弊社ではまだ画像からテキストを抽出することはできないため、サムネイルの文言がインパクトありそうだったら手動で登録したりします。

こういった方法は、その他の表記揺れによる検索失敗にもクィックに対応でき、活用度が高いです。特に、エンジニアに依存しなくともコンテンツ制作チームの方で検索結果をコントロールできるのが大きなメリットです。
上記の失敗パターン①、②のコンテンツが今はちゃんとヒットするようになっています。

この取り組みをしてからは、検索データには含まれていないキーワードで通知されたことが原因で検索失敗するケースが確実に減りました!
取り組み② 検索ホーム画面を作る
しかし、相変わらず通知の文言で検索するケースは毎日多発していました。それは、逆に言えば、検索以外に通知されたコンテンツが探せる動線がなかったということにもなります。ユーザーが直接コンテンツを探してくれるのは嬉しいのですが、先手を打ち「もしかしてこれを探してませんか?」と提案した方が体験は良くなると思いました。
毎週データを見ていると、よく検索されるキーワードにはいくつかのパターンがありました。
目当てのもの | 観測頻度 | キーワードの例 |
---|---|---|
1日以内に通知されたコンテンツ | ほぼ毎日 | ハラハラ問題 なんでなんでゲーム など |
人気番組の新しいエピソード | ほぼ毎日 | ホリエモン 落合 ochiai 成田 など |
時事性の高い話題の最新記事 | 大きく話題になるものがあるたび | chat gpt ai 中学受験 トランプ など |
外部でバズったコンテンツ | マーケティングなどで大きくバズるものがあるたび | ホリエモン 神プレゼン ホリエモン 勝間 ガーシー 成田 など |
なので、検索する直前に検索ホーム画面を挟み、そこに探しているだろうコンテンツを表示するようにしました。よく検索されるもの順で表示するようにセクションを配置しており、通知されたニュース > 人気動画シリーズの最新エピソード > ニュースランキング(NewsPicksがおすすめするコンテンツ)を表示しています。
この画面を設けたことによりほぼ毎週のように検索されていた通知文言の中のキーワードや番組シリーズ名がグラフから消えるようになりました!さらには、検索失敗ランキングにN件以上検索されたもので並べておりましたが、そもそもの検索件数が下がりランクインするキーワードも少なくなりました。
ただ、まだ課題として残っているのは、検索ホーム画面に表示しているコンテンツの中で検索件数が減ったのは限定的である点です。動線を用意することで想定する効果が得られることは確認できたので、表示するコンテンツや並びをより工夫したいところです。
取り組み③ ランキングロジックを改善:人気のコンテンツを上位に表示する
失敗パターン③は①や②とは異なります。検索結果としてちゃんとヒットするものの、見つけにくいというのが課題でした。原因は、結果を表示する際のランキングロジックが「公開日」順の傾向が強いことでした。考えてみれば私を含め多くのユーザーは検索結果をあまりスクロールしないことにも改めて気付かされたケースです。
NewsPicksのコンテンツは、Pick数で人気度合いを表します。Pick数は、保存*2・おすすめ*3・コメント*4の合算値です。基本的に古いコンテンツは検索からしかアクセスできず、過去の良質のコンテンツに触れる機会を増やすという意味でも「公開してからの経過日数」と「人気度合い」をバランスよく考慮したランキングに変える必要がありました。
以下のような加算と減衰を行いバランスが保てるようにランキングロジックを改善しました。


数式だけ見てもおそらくイメージしにくいと思います。つまりは以下のように結果が並んでいます。
- 0日後の1Pick = 100日後の10Pick
- 0日後の10Pick = 100日後の100Pick
- 0日後の100Pick = 100日後の1000Pick

この改善で、リクルート 出木場
の検索結果でTop100より下にヒットしていた「【リクルート出木場】100倍の結果を出す、成長戦略3つのポイント」が今となってはTop2にヒットしております!

付録(発表後に行われた改善)
発表後もさらに改善を行いました。近頃は、動画をきっかけにNewsPicksを使い始めるユーザーが増えており、より動画を探しやすくする必要がありました。動画を検索する傾向は新しく登録したユーザーであるほど強いのですが、NewsPicksのUIに慣れてないせいかデフォルトの「トップ」タブで見つけられなかった場合、隣の「動画・音声」タブに遷移することなくそのまま離脱するようでした。もちろん、デフォルトに表示するタブにも動画の検索結果はありましたが、記事形態のものだったため気づきにくく感じる方もいたと思います。

なので、ユーザーの行動パターンに合わせて、遷移しなくてもいいように「トップ」タブに「オリジナル動画」セクションを作りました。このセクションは既存の「動画・音声」タブの結果を表示します。元々は「トップ」タブの名称は「記事」だったのですが、タブ移動をあまり好まないことに気づいてからは総合トップのような画面にしようと名前も変更しました。

このセクションはファーストビューに位置しており、有料動画目当てで検索するユーザーの目に止まりやすいです。特定のタイプのユーザー群で一定のタップ率を記録しており、動画検索の体験が改善されたと思います。
終わりに
毎週検索のログをモニタリングすることで、ユーザーが今何に困っているかを知ることができました。さらに、そこから見つけた課題をなるべく早めに対応することにより、検索体験も改善できたと思います。以下に内容をまとめます。
- 失敗パターン① プッシュ通知文言で探せない
- 取り組み① DBに「検索用キーワード」を設け、検索にヒットさせる
- 取り組み② 検索の最初の段階に見せる「検索ホーム画面」を作り、通知済みコンテンツを検索しなくても探せるようにする
- 失敗パターン② サムネイル画像のテキストで探せない
- 取り組み① コンテンツ制作チームが手動で「検索用キーワード」を登録し、検索にヒットさせる
- 失敗パターン③ 人気のある古いコンテンツが探せない
- 取り組み③「公開してからの経過日数」と「人気度合い」をバランスよく考慮したランキングロジックにする
単純に検索ロジックを変更するのではなく、UIを変更したり動線を用意することで解決できることが多かったです。ユーザーを理解したり提供するサービス全般をよくしていく意味でも、データを見ることが大事であることを知りました。そして、とても勉強になりました。
これらの改善を行いながら、一般的に検索システムの改善の方法が気になりました。その中でも勉強になった本があるので、こちらにご紹介します。「そもそも検索システムとは何か」というところから機械学習を活用したランキングロジックの改善までが載っております。
検索システム ― 実務者のための開発改善ガイドブックwww.lambdanote.com
私は入社してから去年まで主に検索システムの守り神的な動きをしようと頑張りました。そのおかげか、ある程度検索システムの開発も活発に行われ、最近ではいろんなチームで検索システムを改善するようになりました。
今年からは検索に限らず(みんなで守る検索システムとし)プラットフォームエンジニアを目指してチャレンジします!もっと幅広く知見を共有していこうと思いますので、引き続きよろしくお願いいたします。