Title: WP BrowserUpdate
Author: MacSteini
Published: <strong>April 17, 2013</strong>
Last modified: May 3, 2026

---

Search plugins

![](https://ps.w.org/wp-browser-update/assets/banner-772x250.png?rev=3238044)

![](https://ps.w.org/wp-browser-update/assets/icon-256x256.png?rev=2383682)

# WP BrowserUpdate

 By [MacSteini](https://profiles.wordpress.org/macsteini/)

[Download](https://downloads.wordpress.org/plugin/wp-browser-update.6.0.0.zip)

 * [Details](https://wordpress.org/plugins/wp-browser-update/#description)
 * [Reviews](https://wordpress.org/plugins/wp-browser-update/#reviews)
 *  [Installation](https://wordpress.org/plugins/wp-browser-update/#installation)
 * [Development](https://wordpress.org/plugins/wp-browser-update/#developers)

 [Support](https://wordpress.org/support/plugin/wp-browser-update/)

## Description

Many users still browse with outdated browsers, often unaware of the risks. Upgrading
ensures better security and reliability. This plugin displays a subtle notification
prompting visitors to update their browser. Activate the plugin, and it works seamlessly.

WP BrowserUpdate is based on the browser-update.org detection logic. The plugin 
now runs independently from browser-update.org at display time: the visitor-facing
notification is served from the plugin’s own bundled runtime files, so sites do 
not need to load scripts, styles, or default notification links from browser-update.
org. browser-update.org remains the credited upstream source for the bundled detection
logic, and future runtime refreshes are tracked with source URLs and hashes in the
plugin assets.

Visit [browserupdate.org](https://browserupdate.org/) for more details about the
upstream project.

Want to help translate this plugin? Visit the [WordPress Translation Project](https://translate.wordpress.org/projects/wp-plugins/wp-browser-update).

### How it works

WP BrowserUpdate bundles browser-update.org detection logic for WordPress. After
activation, the plugin loads the local notification runtime from the plugin directory
and passes your configured browser-version thresholds to those scripts. The notification
is shown only when the bundled detection logic matches a browser to your settings.

The settings page is available under **Settings > WP BrowserUpdate**. You can define
browser versions for every browser key supported by the bundled browser-update.org
runtime, choose where the message appears and which element should contain it, enable
testing mode, decide whether mobile or unsupported browsers should be notified, 
customise links, language and message text, and add trusted custom CSS for the notification.

Browser version fields accept major versions such as `115` and positive dotted versions
such as `137.0.3912.63`. Dotted versions are passed exactly to the bundled runtime
instead of being reduced to their major version; exact comparison depends on the
bundled browser-update.org logic and the browser key used by that runtime. A value
of `0` uses the default bundled outdated-browser detection. Negative whole numbers
are passed to the bundled runtime as relative offsets from the current bundled upstream
version.

Microsoft Edge and Microsoft Internet Explorer have separate settings now.

This local runtime design avoids frontend blocking of external script URLs on sites
with strict Content Security Policies or tracker blocking. WP BrowserUpdate ships
only the local runtime and CSP adapter files needed by the plugin.

### Important Notice

**Breaking Changes in Version 6.0**
 – Requires **WordPress 6.0** or newer. – Introduces
a new structured settings model to support the browser-update.org customisation 
surface used by WP BrowserUpdate. – Moves the visitor-facing browser-update.org 
runtime into the plugin package so strict Content Security Policies and tracker 
blockers no longer need to allow scripts from `browser-update.org`. – Existing WP
BrowserUpdate settings from version 5.x are migrated automatically.

**Breaking Changes in Version 5.0**
 – Requires **PHP 7.4** or newer. – Ensure your
hosting is updated to PHP 7.4 before upgrading to version 5.0 or newer. – Servers
running older PHP versions are no longer supported. – If your server is running 
an earlier PHP version, please download [version 4.8.1](https://downloads.wordpress.org/plugin/wp-browser-update.4.8.1.zip).

## Installation

#### Installing via WordPress Plugin Search (Recommended)

This is the easiest and quickest way to install the plugin:
 1. Log in to your WordPress
admin dashboard. 2. Navigate to **Plugins > Add New**. 3. In the search bar, type**
WP BrowserUpdate**. 4. Locate the correct plugin in the search results. 5. Click**
Install Now** next to WP BrowserUpdate. 6. Once installed, click **Activate** to
enable the plugin.

#### Manual Installation

If you prefer to install the plugin manually via SFTP, follow these steps:
 1. **
Download the plugin** – [Download the latest version](https://downloads.wordpress.org/plugin/wp-browser-update.zip)
from the WordPress Plugin Directory. 2. **Extract the plugin files** – Locate the
downloaded ZIP file and extract it on your computer. – You should now have a folder
named `wp-browser-update`. 3. **Upload the plugin to your website** – Connect to
your website using an FTP client (e. g., [FileZilla](https://filezilla-project.org/))
or access the File Manager in your hosting control panel. – Navigate to `/wp-content/
plugins/` in your WordPress installation directory. – Upload the extracted `wp-browser-
update` folder. 4. **Activate the plugin** – Log in to your WordPress admin dashboard.–
Go to **Plugins > Installed Plugins**. – Find **WP BrowserUpdate** in the list and
click **Activate**.

#### Installing via the WordPress Admin Panel

If you have already downloaded the ZIP file, you can install it via the WordPress
admin panel:
 1. Log in to your WordPress admin dashboard. 2. Navigate to **Plugins
> Add New**. 3. Click **Upload Plugin** at the top of the page. 4. Click **Choose
File**, select `wp-browser-update.zip` from your computer, and click **Install Now**.
5. Once the installation is complete, click **Activate Plugin** to enable it.

## Reviews

![](https://secure.gravatar.com/avatar/4687df636af62917047ca09265529af58af30ba0091d61d2fdbd76543768af5d?
s=60&d=retro&r=g)

### 󠀁[Good Plugin, but with no ability to provide custom text](https://wordpress.org/support/topic/good-plugin-but-with-no-ability-to-provide-custom-text/)󠁿

 [ivan2343](https://profiles.wordpress.org/bogdan2/) July 12, 2023

This is good plugin with really easy-to-use settings. The only missing requirement
is ability to provide custom text. For example in german, french, etc. Currently
there is no ability to customize it.

![](https://secure.gravatar.com/avatar/e239133f202fc80491249cbc53cf879f7741025ec756dcbccca35b30925b6fc4?
s=60&d=retro&r=g)

### 󠀁[Works fine](https://wordpress.org/support/topic/works-fine-1433/)󠁿

 [blubbubb](https://profiles.wordpress.org/blubbubb/) June 3, 2022

Thank you for your plugin! One vote more for customization of the text 😉

![](https://secure.gravatar.com/avatar/f31416db846bf14a28783df2f80959ebb1c3827fd7c2b846e62bfc11a2d9faec?
s=60&d=retro&r=g)

### 󠀁[Very Nice!](https://wordpress.org/support/topic/very-nice-1761/)󠁿

 [renatvs](https://profiles.wordpress.org/renatvs/) April 6, 2022 2 replies

Thanks, this plugin is really very important. Will you also put the possibility 
to edit the message

![](https://secure.gravatar.com/avatar/dd4b603fab9bcf70189a784b5dea8b65c144bf8dc027df20c3a19d77ad93512e?
s=60&d=retro&r=g)

### 󠀁[Simple, and effective](https://wordpress.org/support/topic/simple-and-effective-1371/)󠁿

 [paulleigh](https://profiles.wordpress.org/paulleigh/) March 7, 2022 1 reply

Crystal clear, low impact plugin that deflects a lot of support issues. All sites
should uses this plugin and the browser-update.org service.

![](https://secure.gravatar.com/avatar/9d0609e54038d9fa35ef497601e4254a08cca8d05879d12f4ebba5e1a834d92e?
s=60&d=retro&r=g)

### 󠀁[Not Working](https://wordpress.org/support/topic/not-working-3733/)󠁿

 [themadproducer](https://profiles.wordpress.org/themadproducer/) September 17, 
2021

Doesn’t work for IE11 which is the main reason I tried this plugin. Also doesn’t
work if the browser is using uBlock. Good idea but needs much more testing and tweaking.

![](https://secure.gravatar.com/avatar/6a35af24b6ea22fa8a52a62bc66c1d68a6ea27ba8654ae00d24a447265b6bce5?
s=60&d=retro&r=g)

### 󠀁[Great plugin](https://wordpress.org/support/topic/great-plugin-28887/)󠁿

 [10meisterbaelle](https://profiles.wordpress.org/10meisterbaelle/) December 8, 
2020

But it is missing customization, I think you should be able to change the link and
the text

 [ Read all 16 reviews ](https://wordpress.org/support/plugin/wp-browser-update/reviews/)

## Contributors & Developers

“WP BrowserUpdate” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ MacSteini ](https://profiles.wordpress.org/macsteini/)

“WP BrowserUpdate” has been translated into 12 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/wp-browser-update/contributors)
for their contributions.

[Translate “WP BrowserUpdate” into your language.](https://translate.wordpress.org/projects/wp-plugins/wp-browser-update)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wp-browser-update/),
check out the [SVN repository](https://plugins.svn.wordpress.org/wp-browser-update/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/wp-browser-update/)
by [RSS](https://plugins.trac.wordpress.org/log/wp-browser-update/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 6.0.0

 * Breaking:
    - Requires WordPress 6.0 or newer.
    - Replaces the legacy space-separated settings storage with the structured `
      wp_browserupdate_options` option.
    - Migrates existing `wp_browserupdate_browsers`, `wp_browserupdate_js`, and `
      wp_browserupdate_css_buorg` values automatically.
    - Removes the old normal-render-path conversion of negative browser versions;
      values are now passed predictably to the bundled runtime.
    - Removes developer callback settings from the admin UI and saved settings model.
 * Added:
    - Adds interface coverage for the browser-update.org customisation options used
      by WP BrowserUpdate: all runtime browser keys, `reminderClosed`, `notify_esr`,`
      noclose`, `no_permanent_hide`, `container`, `url`, `url_permanent_hide`, `
      burl`, fixed language, and text overrides.
 * Changed:
    - Takes the long-postponed step of making the browser-update.org integration
      CSP-compatible by shipping the complete runtime with the plugin, so sites 
      on shared hosting or strict Content Security Policies no longer need to allow
      scripts from `browser-update.org`.
    - Adds the required browser-update.org runtime/adaptor asset files intentionally,
      with upstream source URLs and hashes documented for attribution and review.
    - Loads bundled browser-update.org runtime files from the plugin directory through
      the WordPress script queue.
    - Removes browser-update.org runtime requests from the frontend by loading only
      same-origin plugin assets.
    - Uses WP BrowserUpdate CSP adapter files for the notification and test-mode
      scripts so the runtime can avoid generated inline styles.
    - Moves the frontend browser-update.org configuration and notification styles
      to local, enqueueable assets for better compatibility with stricter Content
      Security Policies.
    - Uses the WordPress HTTP API with a host allowlist for remote browser-version
      checks.
    - Uses the WordPress Settings API for the admin settings page.
    - Splits admin settings handling into smaller validation, migration and rendering
      steps.
    - Documents the bundled browser-update.org runtime, local frontend loading, 
      and expected visitor-facing behaviour.
    - Passes dotted browser versions such as `137.0.3912.63` to the bundled runtime
      without reducing them to major versions.
    - Adds separate Microsoft Edge and Microsoft Internet Explorer thresholds.
    - Ships only the loaded runtime/adaptor files in the release package; upstream
      reference copies are documented by URL and hash rather than duplicated in 
      the plugin ZIP.
 * Security:
    - Adds stricter settings validation before saving options.
    - Sanitizes custom CSS before saving and before frontend output.
    - Hardens external admin links with `rel="noopener noreferrer"`.

#### 5.1.1

 * Added:
    - Support for free-text input of browser versions (replaces dropdown selection)
    - Browser version check and caching
    - Cache duration filter: Added a wpbu_browser_version_cache_hours filter to 
      allow developers to adjust the browser version cache duration (default: 6 
      hours).
 * Changed:
    - Admin settings page follows WordPress admin standards
    - Cleaner field structure: Improved markup and consistency of settings form 
      fields
    - Security: Improved sanitization and nonce handling for all settings fields
    - Performance: Fewer unnecessary remote lookups when opening the admin settings
      page
 * Fixed:
    - Prevented a frontend “Uncaught Error” caused by invalid/unexpected browser
      version strings by hardening version parsing and normalization. Thanks to 
      @danyloliptuha for pointing out.

#### 5.0.0

 * **Breaking Changes**: PHP 7.4 now required.
 * Updated to follow WordPress Coding Standards.
 * Improved security and sanitization.
 * Integrated WordPress Settings API.
 * Added customization filters.
 * Optimized script and style handling.
 * Updated outdated browser versions.

#### 4.8.1

 * Optimized code.
 * Fixed bug.
 * Updated outdated browser versions.

#### 4.6.1

 * Removed redundant colons.
 * Updated outdated browser versions.

#### 4.6.0

 * Fixed Cross-Site Scripting (XSS) vulnerability.
 * Updated outdated browser versions.

#### 4.5.0

 * Fixed Cross-Site Request Forgery (CSRF) vulnerability.
 * Updated outdated browser versions.

#### 4.4.0

 * Updated source URL.
 * Updated outdated browser versions.

#### 4.3.0

 * Fixed plugin activation issue (thanks @Naveen).
 * Updated outdated browser versions.

#### 4.0.0

 * Fixed bugs (thanks to forum commenters).
 * Updated JavaScript.

#### 3.2.0

 * Corrected version typo causing plugin issues.

#### 3.1.0

 * Fixed bugs (thanks @tristanmason).
 * Updated outdated browser versions.

#### 3.0.3

 * Fixed initialization error.
 * Changed protocol to HTTPS.
 * Updated outdated browser versions.

#### 3.0.0

 * Overhauled functions.
 * Updated JavaScript.
 * Updated outdated browser versions.

#### 2.4.0

 * Fixed functions.

#### 2.3.0

 * Overhauled functions.
 * Updated translation files.
 * Minor fixes.

#### 2.2.0

 * Changed license to GPLv3.
 * Added text domain to header.
 * Added POT file for easier translations.

#### 2.1.3

 * Included minified JavaScript.
 * Minor fixes to notification messages.

#### 2.1.0

 * Added JavaScript customization options.

#### 2.0.3

 * Updated outdated browser versions.
 * Added settings link.
 * Minor fixes.

#### 2.0.0

 * Added admin settings panel.
 * Added uninstall function.

#### 1.0.0

 * Initial stable version.

## Meta

 *  Version **6.0.0**
 *  Last updated **5 days ago**
 *  Active installations **1,000+**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Albanian](https://sq.wordpress.org/plugins/wp-browser-update/), [Chinese (Taiwan)](https://tw.wordpress.org/plugins/wp-browser-update/),
   [Dutch](https://nl.wordpress.org/plugins/wp-browser-update/), [English (Canada)](https://en-ca.wordpress.org/plugins/wp-browser-update/),
   [English (UK)](https://en-gb.wordpress.org/plugins/wp-browser-update/), [English (US)](https://wordpress.org/plugins/wp-browser-update/),
   [French (Canada)](https://fr-ca.wordpress.org/plugins/wp-browser-update/), [German](https://de.wordpress.org/plugins/wp-browser-update/),
   [German (Austria)](https://de-at.wordpress.org/plugins/wp-browser-update/), [German (Switzerland)](https://de-ch.wordpress.org/plugins/wp-browser-update/),
   [Hungarian](https://hu.wordpress.org/plugins/wp-browser-update/), [Japanese](https://ja.wordpress.org/plugins/wp-browser-update/),
   and [Swedish](https://sv.wordpress.org/plugins/wp-browser-update/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/wp-browser-update)
 * Tags
 * [browser](https://wordpress.org/plugins/tags/browser/)[notice](https://wordpress.org/plugins/tags/notice/)
   [outdated](https://wordpress.org/plugins/tags/outdated/)[update](https://wordpress.org/plugins/tags/update/)
   [warning](https://wordpress.org/plugins/tags/warning/)
 *  [Advanced View](https://wordpress.org/plugins/wp-browser-update/advanced/)

## Ratings

 4.6 out of 5 stars.

 *  [  11 5-star reviews     ](https://wordpress.org/support/plugin/wp-browser-update/reviews/?filter=5)
 *  [  4 4-star reviews     ](https://wordpress.org/support/plugin/wp-browser-update/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/wp-browser-update/reviews/?filter=3)
 *  [  1 2-star review     ](https://wordpress.org/support/plugin/wp-browser-update/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/wp-browser-update/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/wp-browser-update/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wp-browser-update/reviews/)

## Contributors

 *   [ MacSteini ](https://profiles.wordpress.org/macsteini/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/wp-browser-update/)