ユーザーエージェントって何?あなたの正体、検索エンジンにバレています!

コラム

ユーザーエージェントって何?

ユーザーエージェントとは、
「どの端末・どのOS・どのブラウザ(またはアプリ)からアクセスしているか」をサーバー側に伝える識別情報
のことを指します。

この情報はHTTPリクエストヘッダーに含まれており、検索エンジン、Webサイト、広告配信システムなど、あらゆるWebサービスで利用されています。

  • 検索エンジン
  • Webサイト
  • 広告配信システム

など、あらゆるWebサービスで利用されています。

例えば、あなたが今この記事を見ているとき、サイト側ではあなたがどこから来ているか、何で見ているかなどがバレているわけです。

どこまでバレているかって…?下のサイトで確認してみましょう。

確認君+(Plus) - こんな情報漏れてます
確認君+(Plus)はWebサービスにアクセスすると漏れる情報(IPアドレス/ISP/地域/OS/ブラウザ等)を確認できます IPv4 over IPv6(IPoE)判定/UA-CH対応

👆確認君+(Plus) – こんな情報漏れてます

ユーザーエージェントの各要素は何を指している?

代表的なユーザーエージェント文字列の一例を見てみましょう。

① ブラウザの互換表記

Mozilla/5.0

現在のブラウザがMozilla系である、という互換性の名残表記です。
MozillaといえばFirefoxが思い浮かびますが、実際にFirefoxでなくても、ほぼすべてのブラウザがこの表記を含みます。

② OS・端末情報

Windows NT 10.0; Win64; x64

Windows 10 / 64bit環境であることを示しています。こちらはPCのユーザーエージェントです。


スマートフォンであれば、iPhone, Android などが含まれます。

・iPhone の場合

iPhone; CPU iPhone OS 14_8 like Mac OS X

・android の場合

機種が「Google Pixel 4」であることも読み取れます。

Linux; Android 11; Pixel 4

③ レンダリングエンジン

HTMLやCSSをどのエンジンで描画しているかを示します。
ChromeやSafari系で使われているWebKit/Blink系の流れを示す表記です。

・Chrome / Edge などの場合

AppleWebKit/537.36 (KHTML, like Gecko)

括弧内は互換性の情報です。この辺を話すと長くなりますので割愛しますが、歴史上の名残とだけ。

・safari の場合

AppleWebKit/605.1.15 (KHTML, like Gecko)

・Firefox の場合

Gecko/20100101 Firefox/121.0

・Internet Explorer の場合

Trident/7.0; rv:11.0

など、さまざまです。

④ ブラウザ名とバージョン

実際に使用しているブラウザとそのバージョン番号です。

「Google Chrome」のバージョン「120.0.0.0」を使用していることがわかります。

「Safari」を使っているわけではなく、こちらも「互換性表記」です。

本当にSafariを使っている場合は、以下のようになります。

Version/17.0 Safari/605.1.15

このように、ユーザーエージェントには
OS・端末・ブラウザ・描画エンジン
といった情報が一括で含まれています。

参考:ユーザーエージェント分析ツール

検索エンジンはユーザーエージェントを基に何を判断している?

検索エンジン(Google、Bingなど)は、ユーザーエージェントを主に次のような用途で利用しています。

① クローラーか人間かの判別

  • Googlebot
  • Bingbot
  • その他の検索エンジンクローラー

これらは専用のユーザーエージェントを名乗ります。
これにより、検索エンジンは
「これは検索ロボットからのアクセスか」
「一般ユーザーからのアクセスか」

を判別しています。

② モバイルかPCかの判定

  • スマートフォン
  • タブレット
  • PC

を判別し、ユーザーに「PC向け」「スマートフォン向け」「タブレット向け」の画面を表示しています。

③ 対応ブラウザ・機能の確認

古いブラウザや特殊な環境の場合、

  • JavaScriptの実行可否
  • CSSの対応状況

などを考慮し、クロールやレンダリングの挙動を調整します。

ブラウザやOSのバージョンが古いと、そもそも利用できないというケースもあります。

こちらは一例。

【重要】「SUPERかつ・かいしゅう」において2020年6月15日(月) 以降、古いOSが利用できなくなります。

▲古いブラウザ、OSが使えなくなる旨のお知らせ
▲古いブラウザ、OSが使えなくなる旨のお知らせ

サイトが利用できるかの判断を「ユーザーエージェント」でしているというわけです。

ユーザーエージェントを偽装する方法は?

では、実際のブラウザのバージョンやOSが古くても、ユーザーエージェントが最新であればそういったサイトも利用できるのでしょうか?

ユーザーエージェントを偽装する方法が存在します。

① ブラウザの開発者ツール

ChromeやEdgeでは、開発者ツールから一時的にユーザーエージェントを変更可能です。

② 拡張機能

例えばGoogle Chromeの拡張機能に「User-Agent Switcher for Chrome」が存在します。

User-Agent Switcher for Chrome - Chrome ウェブストア
Spoofs & Mimics User-Agent strings.

拡張機能を使えば、ワンクリックで切り替えられます。

③ プログラムから指定

例えばPythonでは、HTTPヘッダーの User-Agent を指定するだけで、簡単にユーザーエージェントを偽装できます。

headers = {
    "User-Agent": (
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
        "AppleWebKit/537.36 (KHTML, like Gecko) "
        "Chrome/120.0.0.0 Safari/537.36"
    )
}

なお、注意点として、

ユーザーエージェントの偽装自体は違法ではありませんが、

  • 利用規約違反
  • スクレイピング対策の回避
  • なりすまし行為

に該当する場合は、法的・倫理的な問題が生じる可能性があります。

④ユーザーエージェントだけを見ているわけではない

例えば「WindowsXP」では利用できないサイトがあったときに、ユーザーエージェントを偽装して「windows10」としてアクセスしたとしましょう。

結論、正しく動作しない場合がほとんどです。

例えば…

  • 暗号化方式TLS(HTTPS)バージョンが異なる…XP標準:TLS 1.0 / 1.1、現代サイト:TLS 1.2 / 1.3 必須
  • JavaScript / API の非対応
  • OSに依存する処理

などが原因となり、通信自体が上手くいかないなど、偽装はほぼ意味がありません。

仮想環境を構築する方が近道です。

今後ユーザーエージェントはどうなっていく?

2026年1月現在、ブラウザのユーザーエージェント(UA)はプライバシー保護を目的に「情報の簡素化(削減)」が進んでいます。従来のUAのように、全ての情報を無条件で送るのではなく、必要な情報だけ取得する形に変わっていくと考えられます。

特にGoogleにおいては「User-Agent Client Hints」というものにすでに置き換わっているようです。

今後、ユーザーエージェントだけで判断するというよりは、あくまで「参考資料」的な立ち位置に変わっていきそうです。

参考:【テックコラム】Chromeブラウザによる User Agent の削減と User-Agent Client Hints への移行

タイトルとURLをコピーしました