何もインストールせずにChromeのユーザーエージェントを変更するには、DevToolsを開き、Network conditions(3点メニュー > More tools > Network conditions)を表示して、User agentのUse browser defaultのチェックを外し、プリセットを選ぶか任意の文字列を貼り付けます。変更はDevToolsを開いている間、現在のタブにだけ適用されます。最初のリクエストから新しいユーザーエージェントが送られるよう、ページを再読み込みしてください。
方法1:DevToolsのNetwork conditions
F12、Ctrl + Shift + I(Windows、Linux)またはCmd + Option + I(Mac)でDevToolsを開きます。- DevTools右上の3点メニューからMore tools > Network conditionsを選びます。コマンドメニュー(
Ctrl + Shift + PまたはCmd + Shift + P)を開いて「network conditions」と入力しても開けます。 - User agentの項目でUse browser defaultのチェックを外します。
- ドロップダウンからプリセット(AndroidのChrome、iPhoneのSafari、Firefox、Edge、Googlebotなどのボット)を選ぶか、Customを選んで任意の文字列を貼り付けます。
- ページを再読み込みします。
ユーザーエージェント欄の下には、展開できるUser agent client hintsの項目があり、ブランド、プラットフォーム、モデル、モバイルフラグを設定できます。スマホをエミュレートするときは、Sec-CH-UA-Mobileヘッダーがユーザーエージェント文字列と矛盾しないよう、ここも入力しましょう。理由はUser Agent Switcherでできることで解説しています。
この設定はDevToolsかタブを閉じるまで有効です。
方法2:デバイスモードなら自動で設定される
スマホでの見え方を確認したいなら、ユーザーエージェントだけを変えるのではなくデバイスモードを使いましょう。デバイスツールバー(Ctrl + Shift + MまたはCmd + Shift + M)を表示して機種を選ぶと、ユーザーエージェント、ビューポート、ピクセル比、タッチのエミュレーションがまとめて設定されます。ユーザーエージェントだけを変えてビューポートがPC幅のままだと、モバイル用HTMLとPCレイアウトが混ざった崩れた表示になりがちです。
デバイスモードの使い方はChromeのモバイルエミュレータ解説にまとめています。DevToolsを開かずに頻繁に確認したい場合は、Mobile View Extensionを使えば、ツールバーのボタンから端末のユーザーエージェント、Client Hints、画面サイズを適用でき、ページを移動しても設定が保たれます。
方法3:任意のユーザーエージェントでChromeを起動する
ブラウザのセッション全体で別のユーザーエージェントを使うには、--user-agentオプションを付けてChromeを起動します。普段のプロファイルに影響しないよう、別のプロファイルフォルダを指定してください。
# macOS
open -na "Google Chrome" --args --user-data-dir=/tmp/ua-test --user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1"
:: Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --user-data-dir=%TEMP%\ua-test --user-agent="..."
この方法で変わるのはUser-Agentヘッダーとnavigator.userAgentだけで、Client Hints、ビューポート、タッチ対応は変わりません。
方法4:PlaywrightやPuppeteerで自動化する
繰り返し行うテストでは、コードでユーザーエージェントを指定します。Playwrightのデバイス定義を使うと、ユーザーエージェントと一緒にビューポート、ピクセル比、タッチも設定されます。
import { chromium, devices } from 'playwright';
const browser = await chromium.launch();
const context = await browser.newContext({ ...devices['Pixel 7'] });
const page = await context.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'pixel7.png' });
文字列だけを指定するなら、newContextにuserAgent: '...'を渡します。Puppeteerではawait page.setUserAgent('...')を使います。
ほかのブラウザでユーザーエージェントを変更する
| ブラウザ | 方法 |
|---|---|
| Microsoft Edge | Chromeと同じ。DevTools > More tools > Network conditions |
| Firefox | レスポンシブデザインモード(Ctrl + Shift + M / Cmd + Option + M)にユーザーエージェント欄あり。恒久的に変えるならabout:configでgeneral.useragent.overrideを設定 |
| Safari(Mac) | 設定 > 詳細でWeb開発者用の機能を表示をオンにし、開発 > ユーザエージェントを使用 |
| AndroidのChrome | 任意の文字列は不可。メニューのPC版サイトでPC用ユーザーエージェントに切り替え |
| iPhoneのSafari | 任意の文字列は不可。ページメニューのデスクトップ用Webサイトを表示でPC用ユーザーエージェントに切り替え |
よくあるトラブル
- 何も変わらない。 再読み込みしていないか、サイトが判定結果をCookieに保存しています。再読み込みするか、シークレットウィンドウで試してください。
- 表示が崩れる。 ユーザーエージェントは変えたもののビューポートを変えていません。スマホ表示の確認にはデバイスモードを使いましょう。
- それでも本来のブラウザが判定される。 サイトがClient Hintsを読んでいるか、機能検出を使っています。Client Hintsも設定するか、機能検出はサイトとして正しい実装だと割り切りましょう。
- ログインや決済のページでブロックされる。 一部のセキュリティシステムは、つじつまの合わないユーザーエージェントを不審とみなします。実際のアカウントには普段のブラウザを使ってください。
よくある質問
Chromeのユーザーエージェントをずっと変更したままにできますか?
設定画面からはできません。別プロファイルと組み合わせて--user-agentオプションで起動するか、サイトごとにルールを適用できる拡張機能を使います。
Chromeでユーザーエージェントをスマホにするには?
DevToolsを開き、Ctrl + Shift + M(MacではCmd + Shift + M)でデバイスモードに切り替えて機種を選びます。モバイルのユーザーエージェントとスマホサイズのビューポートが同時に設定されます。
ユーザーエージェントを変えれば身元を隠せますか?
ほとんど効果はありません。サイトはほかの情報からもブラウザを識別でき、珍しいユーザーエージェントはかえって目立つことがあります。