macOSでSpotlightのインデックス生成を無効化する方法

ここでは特定のドライブ・ボリュームやフォルダでSpotlightのインデックス生成を無効化する方法、及びOSレベルでのSpotlightのインデックス生成無効化の方法をまとめる。

特定のドライブ・フォルダなどのインデックスを無効化する方法

Spotlightのプライバシータブで除外設定

特定のドライブやフォルダのインデックス生成を止める際に最も手っ取り早いのはSpotlightの設定でドライブやフォルダを除外指定する方法だ。

まず「システム環境設定」から「Spotlight」の項目を開く。

Spotlightの設定画面を開いたら「プライバシー」タブに移動し、この画面にSpotlightのインデックス生成を無効化したいドライブ・ボリュームやフォルダをドラッグアンドドロップ(または+ボタンで追加)する。

これによりそのドライブ・ボリュームやフォルダはインデックスが生成されなくなり、Spotlightの検索から除外される。

ただしプライバシータブの除外設定では「Time Machine」で使用しているボリュームは追加できない。

そもそもTime Machineがきちんと動作するためにはTime Machineボリュームのインデックス生成が有効化されている必要があるため、Time Machineのインデックス生成を止めるのは意味がない。

もしTime Machineのインデックス生成を無効化したい場合はTime Machine機能を使わず手動でバックアップする方法を取るしかないだろう。

.noindex拡張子を付ける

Spotlightで特定のフォルダのインデックス生成を無効化する別の方法としてフォルダに.noindexという拡張子を追加するというものもある。

やり方は単純でインデックス生成を無効化したいフォルダやファイルをリネームして「xxx.noindex」のように拡張子を追加すればいい。

ターミナルでSpotlightインデックス生成を停止

特定のボリュームのSpotlightインデックス生成を止める場合、以下のコマンドをターミナルで実行する方法もある。

mdutil -i off /Volumes/Volume Name

「Volume Name」の部分には文字通りボリュームの名前を入力しよう。

例えば「Data」というボリュームのインデックス生成を止めたいなら下記のようなコマンドになる。

mdutil -i off /Volumes/Data

「Indexing and searching disabled」と出れば成功。

もしコマンド実行の際にエラーが出た場合は先頭に「sudo」を付けよう。

元に戻す場合は下記のコマンドを実行。

mdutil -i on /Volumes/Volume Name

「Indexing and searching enabled」と出れば再度インデックスが生成される。

なお、このターミナルを使用する方法でもTime Machineのボリュームのインデックス生成を無効にすることはできない。

OSレベルでSpotlightのインデックス生成を無効化する方法

なお、macOS全体でSpotlightの機能を殺さずにインデックスの生成を全て止める場合は下記のコマンドを実行する。

sudo mdutil -a -i off

パスワードの入力を求められたら管理者パスワードを入力してエンターキーを押そう。

その後文字列が沢山出て処理が終わればTime Machine以外の全てのディスク・ボリュームのインデックス生成が停止される。

この方法でインデックスの生成を止めてもファイルの検索機能は無効になるが、Spotlight自体の機能は生きているためWeb、メール、Safariの履歴検索、アプリケーションの起動などは依然として可能だ。

元に戻す際は下記のコマンドを実行する。

sudo mdutil -a -i on

元に戻すコマンドが実行されるとOSレベル全体でSpotlightによるインデックスの再構築が始まるため、しばらくCPUやディスクの使用率が高くなりマシンに負荷がかかるので注意。

まとめ

以上、特定のドライブやボリューム、フォルダ及びOSレベル全体でのSpotlightのインデックス生成の無効化方法を紹介した。

上記でまとめた大半の方法は通常の使用用途では必要ないかもしれないが、Spotlightのインデックスは使っている内に肥大化するためメンテナンスという意味で一度上記でまとめた方法で特定のボリュームやOS全体のインデックスの再構築を試してもいいだろう。