🐰

Spotlight検索で自分のiOSアプリが引っかかるキーワードを増やす

2024/11/16に公開

概要

iOSのSpotlight検索で自分のアプリが任意のキーワードで引っかかるようにするための設定方法を紹介します。

iOSのSpotlight検索では、通常ではアプリ名などが検索対象になりますが、例えば機能名、サービス名、ブランド名、旧サービス名、事業者名などを登録しておくと、Spotlight検索でのSEOを上げられます。もちろん、言語ごとのローカライズにも個別に対応できます。

この仕組みは、ホーム画面の「検索」のほか、「アプリライブラリ」の検索結果にも対応します。

Info.plistの「kMDItemKeywords」フィールドにキーワードを列挙する

Info.plistに「kMDItemKeywords」フィールドを追加して、String型にします。あとは値に任意のキーワードを半角カンマ区切りで列挙するだけです。Appleのドキュメントには「An CFArray of CFStrings」と書かれていますが、手元で検証した限りでは、文字列(String型)で機能します。

なお、macOSではキー名が「MDItemKeywords」となる点に注意してください。

参考:Apple WWDRの方による案内
https://forums.developer.apple.com/forums/thread/761535

  • On iOS, add the key kMDItemKeywords to your app's Info.plist. Its value should be a String, and include a comma-separated list of keywords.
  • For macOS, add the key MDItemKeywords to your app's Info.plist in a similar way.

ローカライズ対応

ローカライズを含む場合には、言語ごとにInfoPlist.stringsファイルを作成し、plistのキーワードを上書きします。InfoPlist.xcstrings(Strings Catalog)の場合も基本的には同様です。

// InfoPlist.strings (en_US)
kMDItemKeywords = "Utility, Mail, Message, Communication";
// InfoPlist.strings (ja_JP)
kMDItemKeywords = "Utility, Mail, Message, Communication, ユーティリティ, メール, メッセージ, コミュニケーション";

デバッグ/テスト

シミュレータよりも実機確認をお勧めします。

開発時にアプリの上書きインストールを繰り返すとSpotlightが正しいキーワードを認識しないことがあるので、テストの際には、端末から古いアプリを一旦削除してから新規インストールする形をとると安全です。

また、アプリのインストール直後はすぐに機能しないこともあるようです。その場合は少し待つといいかもしれません。

ホーム画面の検索はオンラインでさまざまなな検索を行って、それらを組み合わせた結果を出力するので、テストしにくいことがあります。開発版に限っては、例えば任意の絵文字など、目立ちやすく独特なキーワードを一時的に登録して挙動確認するという手もあります。(本番版からは削除することを忘れずに)

ホーム画面の「検索」と「アプリライブラリ」の検索は、検索エンジンは同じSpotlightのようですが少し異なる挙動をします。両方併せて確認しましょう。

ユーザー体験の考慮

キーワードはデベロッパーが任意に登録できますが、やりすぎは厳禁です。ユーザーの検索結果にノイズが増えることはユーザー体験を悪くすることにつながりますので、メンタルモデルに合ったキーワードの登録を心がけましょう。これはデベロッパーとしての誠意であり、デザインとして守るべきところです。

  • アプリの特性を補完するキーワードに絞る
  • 関係のないキーワードを入れない
  • 競合アプリ名、類似アプリ名の登録は慎重に

備考

  • 公式ドキュメントが乏しい情報なので、仕様がはっきりしていません
  • OSバージョンや環境によっては挙動が変わる可能性があります
  • 将来Appleによって規制が強化される可能性も否定はできません
  • 筆者はApp Storeで配信しているアプリでこれを試していません
    (実機テスト、シミュレータで確認/iOS 18.1)

参考資料

https://developer.apple.com/documentation/coreservices/kmditemkeywords

https://forums.developer.apple.com/forums/thread/761535

https://medium.com/@Sergey.Zhuravel/boost-your-ios-apps-visibility-with-this-simple-tip-7832e3898c2b

「余談:Spotlight検索用キーワードをローカライズして含める」
https://zenn.dev/usagimaru/articles/4deac28076fa25#余談:spotlight検索用キーワードをローカライズして含める

https://eclecticlight.co/2020/05/01/how-to-find-apps-using-metadata/

Discussion