Spotlight検索で自分のiOSアプリが引っかかるキーワードを増やす
概要
iOSのSpotlight検索で自分のアプリが任意のキーワードで引っかかるようにするための設定方法を紹介します。
iOSのSpotlight検索では、通常ではアプリ名などが検索対象になりますが、例えば機能名、サービス名、ブランド名、旧サービス名、事業者名などを登録しておくと、Spotlight検索でのSEOを上げられます。もちろん、言語ごとのローカライズにも個別に対応できます。
この仕組みは、ホーム画面の「検索」のほか、「アプリライブラリ」の検索結果にも対応します。
kMDItemKeywords
」フィールドにキーワードを列挙する
Info.plistの「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'sInfo.plist
. Its value should be aString
, and include a comma-separated list of keywords.- For macOS, add the key
MDItemKeywords
to your app'sInfo.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)
参考資料
「余談:Spotlight検索用キーワードをローカライズして含める」
Discussion