Type: JavaScript Property (navigator.connection.effectiveType)
Data Source: Browser's Network Information API
When Available: Chromium-based browsers (Chrome, Edge, Opera, Brave), limited support in other browsers
Return Type: String ('slow-2g', '2g', '3g', '4g')
The navigator.connection.effectiveType property is part of the Network Information API. It returns a string representing the effective connection type based on recent observed network performance, not the actual connection technology.
Historical Context:
Key Characteristics:
Four Possible Values:
| Type | Typical RTT | Typical Downlink | Description |
|---|---|---|---|
slow-2g |
> 2000ms | < 50 kbps | Extremely slow connection, barely usable for web browsing. May indicate poor cellular signal or heavily throttled connection. |
2g |
1400-2000ms | 50-70 kbps | Slow connection typical of 2G cellular networks (EDGE/GPRS). Basic browsing possible but media loading is very slow. |
3g |
270-1400ms | 70-700 kbps | Moderate connection typical of 3G networks (HSPA). Suitable for most web browsing, slow for HD video. |
4g |
< 270ms | > 700 kbps | Fast connection typical of 4G LTE, 5G, cable, or fiber. Suitable for HD video streaming and large downloads. |
Important Notes:
'3g''4g' if fast, but can report lower if congested'4g'Real-World Examples:
'4g''3g' or '2g''4g''3g''2g' or '3g'Legitimate Uses:
Example Implementation:
'slow-2g' or '2g''3g' or slowerBrowser Support:
| Browser | Support | Notes |
|---|---|---|
| Chrome | Yes (v61+) | Full support, most reliable implementation |
| Edge | Yes (v79+) | Full support on Chromium-based Edge |
| Opera | Yes (v48+) | Full support |
| Brave | Yes | Chromium-based, full support |
| Firefox | No | Not implemented; navigator.connection returns undefined |
| Safari | No | Not implemented; navigator.connection returns undefined |
| Mobile Chrome | Yes | Works on Android |
| Mobile Safari | No | Not supported on iOS |
Detection Code:
Always check for API availability before use:
if (navigator.connection && navigator.connection.effectiveType)Why Limited Support?:
Tracking Risk: LOW-MEDIUM
Privacy Concerns:
Why Low-Medium Risk:
'4g'Combined Fingerprinting Risk:
How to Control or Hide Connection Type:
Browser Settings:
Privacy Extensions:
navigator.connectionDeveloper Tools:
effectiveType valueTesting Current Value:
navigator.connection?.effectiveTypeundefined if not supportedLimitations of Control:
Privacy Best Practices:
'4g' is extremely commonComprehensive documentation for the effectiveType property
Overview of the entire Network Information API
Official specification draft for the API
Guide to building sites that adapt based on network conditions
Browser compatibility table for Network Information API
Related API for detecting user preference for reduced data usage