OneSignal – Free Web Push Notifications


OneSignal is a complete push notification solution for WordPress blogs and websites, trusted by over 325,500 developers and marketers including some of the largest brands and websites in the world. We send over a billion notifications a day.

After setup, your visitors can opt-in to receive desktop push notifications when you publish a new post, and visitors receive these notifications even after they’ve left your website.

We make it easy to configure delivering notifications at preset intervals, targeting notifications to specific users, and customizing the opt-in process for your visitors.


  • Supports Chrome (Desktop & Android), Safari (Mac OS X), and Firefox (Desktop) on both HTTP and HTTPS sites.

  • Automatic Notifications – Send notifications to followers every time you publish a new post. Or set up a reminder that gets automatically sent to them if they haven’t visited for a few days.

  • Targeting Segments – Send notifications to specific visitors based on language, number of times they’ve visited your blog, or even set up your own user attributes that you can target.

  • Opt-In Customization – Choose when and how to ask your visitors to opt-in to browser notifications. Customize the prompt they first see.

  • Real Time Analytics – See your notifications being delivered in real time, and watch them as they convert into visitors.

  • A/B Testing – Try out different messages to a smaller set of your visitors to figure out which messages are more effective and then send the more effective message to the rest of your visitors!

  • Scheduled Notifications – Schedule notifications to be delivered in the future, based on a user’s time zone, or even based on the same time of day they last visited your website.

All completely free. No fees or limitations.

Zrzuty ekranów

  • Notifications on Chrome, Safari, and Firefox.
  • Our detailed setup instructions to get you started.
  • Another shot of our detailed setup instructions with images.
  • Our configuration settings allowing you to customize the way users are prompted to subscribe and the notifications they receive.
  • Our OneSignal dashboard users page, where you can see your subscribed users.
  • Our OneSignal dashboard sent notifications page, where you can see the status of your sent notifications.
  • Our OneSignal dashboard notification creation page, with an emoji selector and multi-language support.
  • Our OneSignal dashboard sent notifications detail page, showing a notification being sent with live click tracking.
  • Our OneSignal dashboard A/B testing page.


  1. Install OneSignal from the plugin directory or by uploading the OneSignal plugin folder to your wp-content/plugins directory.
  2. Active the OneSignal plugin from your WordPress settings dashboard.
  3. Follow the instructions on the Setup page.


Installation Instructions
  1. Install OneSignal from the plugin directory or by uploading the OneSignal plugin folder to your wp-content/plugins directory.
  2. Active the OneSignal plugin from your WordPress settings dashboard.
  3. Follow the instructions on the Setup page.


Doesn’t work with mime types

Bad Content-Type of ‘application/octet-stream’ received for script „OneSignalSDKWorker.js.php”, why the hell use it like that anyway?!

Must be ‘text/javascript’, ‘application/x-javascript’, or ‘application/javascript’.

On our server we have mime types for js or php (using nginx)

Very Impressed

Very impressed with this plugin. Using only the web app, but in the 2-3 months I have used my traffic is 30% up already. I have 2300 that can receive notifications thus far, and gaining 500-1000 a month.

Very easy to set up, with a great online dashboard. This is a must have for media/news sites. In 6-12 months I can see my traffic easily doubling or more.

Great Job, well done and keep up the great work.

Remarkable plugin

Using this plugin for a couple of rock band websites. Works superbly, easy to set up and helping to grow the fanbases.

Great Plugins

This plugin awesome and the documentation clear to understand. All are worked for me without any error.

Przeczytaj 54 recenzje

Kontrybutorzy i deweloperzy

„OneSignal – Free Web Push Notifications” jest oprogramowaniem open source. Poniższe osoby miały wkład w rozwój wtyczki.


Log zmian


This release changes the notification send rate limit from at most one every 10 seconds to at most one every 1 second.


This release removes begining and ending whitespaces from textboxes when saving. This can fix common errors like pasting the App ID, REST API Key, or subdomain (also called label) with an ending whitespace which normally causes errors.


This release greatly simplifies the setup guide to follow our documentation instead of an inline guide.

  • Update AMP helper files to be centralized instead of hardcoded inlined JavaScript


This release updates the amp-helper-frame.html and amp-permission-dialog.html files used for amp-web-push due to permission changes in Chrome 62.

  • Update readme to show tested up to 4.9 Release Candidate 2


This release adds an option to disable the „Successfully sent a notification to X recipients” message, and also includes files for AMP web push (to be used with another AMP plugin) in case you decide to add AMP web push for your site.

  • Add option „Show status message after sending notifications”
  • Include amp-helper-frame.html and amp-permission-dialog.html for use with AMP web push


This release adds a helpful message describing the notification’s recipient count after sending a notification. After publishing a post, for example, the info box may say „Successfully sent a notification to 100 recipients.”.

  • Lowered priority of wp_head hook from 5 to 10.


This release fixes a bug with the 1.15.0 release that checks the „Dismiss notifications automatically after ~20 seconds” field. The wrong field was being checked and caused a warning to appear.


This release adds a setting for hiding notifications on Mac OS X platforms.

  • „Dismiss notifications automatically after ~20 seconds” has been replaced with „Hide notifications after a few seconds” with a couple of
    choices „Yes”, „No”, „Yes on Mac OS X. No on other platforms”. Previously, notifications would be persisted on all platforms except Mac OS X.


This release restores 4 missing image files in the Setup guide included in our WordPress plugin (Chrome & Firefox Push step 7, OneSignal Keys step 2).

No code changes were made in this patch.


  • Use larger sized icons for the featured image

    Notification small icons and large images previously used the uploaded image closest to size 80×80. For a large uploaded image with no
    resized variants, there would be no issues. But for uploaded images resized to different sizes by WordPress, this caused the smallest image
    size to be selected and look blurry. Notification small icons now use the closest available image to 192×192 for a sharper image, whereas
    large images use the closest available image to 640×480.


  • Update Setup tab’s images and text

    Clarify some steps that are typically confusing to new users setting up the plugin, like how to get the value in the Subdomain textbox.


  • Remove .htaccess file

    Apache httpd.conf configurations that don’t allow custom .htaccess options will error out with a 500 if we place this file there.


  • Update semantic versioning; update minor version for new backwards-compatible functionality
  • Hide Google Project Number from configuration (using one is unnecessary since we provide a default Project Number)
  • Add option „Use the post’s featured image for Chrome’s large notification image” (see:
  • Lower notification rate limit from 55 seconds to 10 seconds. Countdown shows time remaining (e.g. „Please try again in 6 seconds”)


  • Check in missing image to SVN: admin Configuration page HTTP Permission Request modal
  • Remove obsolete admin option „Show the OneSignal logo on the prompt”
  • Remove unused Bootstrap CSS/JS assets
  • Fix Prompt options custom language text not outputted for HTTPS sites (


  • Config page changes


  • Add rate limiting to prevent notifications from being sent too quickly; one notification can be sent every 55 seconds
  • Remove Preview Popup button; users can still follow the screenshot in the section header to match their customized
    values with the window their users will see
  • Add Configuration page UI option to show the slidedown permission message on HTTPS sites before the browser’s native
    permission request
  • Implement the HTTP permission request as the default for new sites (only for those who turn on Automatic prompting)
  • Clarify „Use my own SDK initialization script” –> renamed as „Disable OneSignal initialization”
  • Add a hidden page comment if users disable OneSignal initialization for easier debugging
  • Our plugin is in but not Hopefully resubmitting the
    plugin fixes it


  • Update style that was being overridden on some sites


  • Fix undefined index gcm_sender_id error
  • Do not resend notifications for posts restored from trash


  • Assign the script initialization variable OneSignal globally so initialization still works if plugins modify our
    inline script to be run from an external script file


  • A user reported the ‚prompt_auto_accept_title’ variable being undefined and causing issues with her site. This issue
    is now fixed.


  • Add proper WordPress action/filter hook for OneSignal init


  • The web SDK initialization of our plugin can now be fully customized
  • Removed the Intercom live chat support plugin from our plugin. Users can still email
  • Click Allow, Site Title, and the auto accept HTTP prompt title can now be customized
  • Spaces are removed when users save their Subdomain textbox value
  • The meta box checkbox „Send post on notification publish” now correctly does not send a notification if unchecked.
    Previously, there was a logic bug where users could check the box, initially save the post without publishing, and
    have a notification sent out when later publishing.
  • The default plugin tab is now „Setup” if the user is setting up for the first time, and if their App ID or REST API
    Key is blank (both values are required)
  • Correctly call has_post_thumbnail for WordPress versions below 4.4
  • Check for admin capabilities is done correctly so as to be compatible for users in stateless mode (DISALLOW_FILE_MODS)
  • Apostrophes and other HTML encoded entities are correctly decoded when using the HTTP prompt
  • Minor: Remove phantom tooltip linking to GCM page
  • Minor: site.css now has a source map


  • Fix broken documentation link


  • Add option to show GCM Project Number field


  • Bug fix for manifest.json GCM Sender ID


  • Remove Google project from the setup flow


  • Allow HTTP users to select „Automatically prompt…” to use the HTTP prompt
  • Improve setup documentation screens, add extra troubleshooting notices


  • Add admin UI to change notification title
  • Add admin UI to send to Android and iOS platforms (if available)


  • Add admin UI and filter for custom post types
  • Add filters for overriding post processing behavior
  • Add filter for overriding meta box send notification checkbox behavior
  • Add admin UI for adding UTM tracking code parameters (notification URL parameters)
  • Add admin UI for hiding notify button after subscription
  • Fix Preview Popup not displaying correctly if an ‚’ Subdomain textbox value is used
  • Display visible error message if notification fails to send
  • Updated Google Project Setup guide
  • Fix poorly named global function that is conflicting with another template’s global function


  • Push notifications should now be sent out for posts created in the default WordPress editor if scheduled, being edited, or awaiting publication


  • Change setup URL –>
  • Modify onesignal_send_notification filter hook to also allow notifications to not be sent


  • Enable PHP error logging by file


  • Fix on_save_post function not being declared statically
  • Fix other PHP warning about property not existing


  • Forgot to add onesignal-utils.php


  • Automatic sending functionality has been rewritten


  • Fix scheduled notifications to be more reliable by associating data with the post’s metadata and rewriting the send notification logic
  • Modified the WDS Log plugin to log OneSignal-related things; WDS Log plugin must be installed to view
  • Add a filter hook for to modify the data we post to create notifications API to allow customizing of notifications
  • Fixed Configuration page saving so that a user can choose to only use the Safari platform and skip the Chrome subdomain


  • Make WordPress plugin compatible with PHP v5.2.4
    • Using workaround for constant ENT_HTML401 not defined in < PHP 5.4 used in decode_html_entity


  • Relax subdomain validation now that the web SDK auto-corrects almost-valid values


  • Add Henkler’s contributions to WordPress plugin:
    • Allow notification dismissal by Chrome’s persistNotification flag
    • Allow featured image to be used as notification icon


  • Restore ‚Automatically send notifications using 3rd party post editors’


  • Clarified subdomain instructions to not include „”
  • Improved support for HTML encoded entities


  • Add bell color customization
  • Add bell offset position customization
  • Add initial support for custom post types


  • Including missing CSS file


  • Fix settings for initial user showing an error for WordPress function get_option()


  • Organized and clarified plugin settings
  • Add screenshots to plugin description


  • Fixed error reporting being enabled in version 1.6.0
  • Rebranded bell widget to notify button
  • Minor fixes to functions that would error but are silent because error reporting is usually disabled
  • Update default settings


  • Added interactive bell widget for site visitors to manage push notification subscription
  • Improved toggle button text readability


  • Added option to send a welcome notification to new site visitors
  • Removed {modalPrompt: true} as the default prompt method for HTTPS sites; the native browser prompt is once again the default
  • Added option to use the modal prompt instead of the native prompt method
  • Popup settings now display for both HTTPS modal users and HTTP prompt users


  • Added option to disable automatically prompting new visitors to register for push notifications


  • Fixed settings save when subdomain goes from set to empty. Admin JS now uses jQuery instead of $.


  • Fixed HTTP popup prompt dialog to not display empty values if configuration options are unset


  • Added popup settings to localize prompt text. Updated fonts to render better on Firefox and Safari.


  • Graphical redesign of the plugin. Much better instructions.


  • OneSignal library initialization now occurs regardless of whether the window.onload event has yet to be fired or has already fired.


  • Added Safari Mac OSX support.


  • UTF-8 characters in post’s titles now display correctly in notifications.
  • Fixed bug where manifest.json was not being created for HTTPS sites due to permissions.
  • Now adapts to use HTTPS for service worker files if the WordPress settings are not correct.


  • Fixed bug where some plugins that create posts were not sending out a OneSignal notifications automatically when ‚All Posts created from other plugins’ was enabled.
  • Fixed errors that display when ‚WP_DEBUG’ is set to true


  • Added Automatic Push Notifications option for ‚All Posts created from other plugins’ on the „Notification Settings” tab.
    • Note, this is on by default for new installs but off of existing ones so behavior does not automatically change when you update.
  • Fixed errors with missing images.


  • Send notification on post is now available to any WordPress user with permissions to create or edit posts.


  • Notifications sent with the Automatic Push Notifications on Post feature directly link to the post instead of the homepage when opening the notification.
  • Updated GCM instructions and added HTTP subscribe link/widget instructions on the Getting Started tab.


  • Fixed compatibility issue with PHP versions older than 5.3.0
  • For HTTPS sites a modal dialog is shown before the native Chrome Notification permission prompt.


  • Fixed bug with OneSignal not getting initialized in some cases.
  • Now omits extra unneeded manifest link from the head tag when using HTTP.
  • Clicks handler added to elements with the class OneSignal-prompt are now setup in a more compatible way.


  • Modified description


  • Initial release of the plugin