Illustration of AMP push notifications, a fast mobile page with a subscribe button triggering a browser alert Illustration of AMP push notifications, a fast mobile page with a subscribe button triggering a browser alert

Push Notifications on AMP Pages: How Do They Work?

Do push notifications work on AMP pages? Yes, through amp-web-push. Here’s how it works, the three files you need and how to set it up step by step.

Yes, push notifications work on AMP pages through the official amp-web-push component. You add a subscribe button built with AMP markup, then upload two helper HTML files and a compatible service worker to your own HTTPS domain. When a reader taps the button, a small permission window opens on your domain, and the browser subscribes them in the background.

AMP pages don’t allow arbitrary custom JavaScript, which is why the usual “paste a script and you’re done” push setup doesn’t work on them. So AMP has its own component for web push. In this post I explain how AMP push notifications work, what you need to set up, and what to check with your push provider. The technical details come from the amp-web-push documentation on amp.dev, checked on November 3, 2026.

Do push notifications work on AMP pages?

Push notifications work on AMP pages, but only through the amp-web-push component, not through a provider’s normal JavaScript snippet. The component shows subscribe and unsubscribe widgets, opens a permission prompt, and tells a service worker on your site to subscribe or unsubscribe the reader.

Once a reader subscribes from an AMP page, they’re a normal web push subscriber. The notifications you send later arrive through the browser’s Push API like any other, whether the reader subscribed on your AMP or non-AMP pages.

How does amp-web-push work?

The amp-web-push component works by splitting the job between the AMP page and three files on your own domain. Here’s what each part does:

PartWhere it livesWhat it does
amp-web-push elementYour AMP pageHolds the configuration (the three file URLs)
amp-web-push-widgetYour AMP pageShows a subscribe, unsubscribe or blocked state
helper-iframe.htmlYour domainTalks to the service worker and checks permission status
permission-dialog.htmlYour domainOpens as a pop-up and asks for notification permission
Service worker (.js)Your domain, ideally the rootSubscribes and unsubscribes the reader in the background

The AMP documentation says all three properties are required and all URLs must begin with the same origin, such as https://example.com. Widgets stay hidden until the component works out the reader’s subscription state, then the right one appears.

What do you need to add push notifications to AMP pages?

You need an HTTPS site, access to upload files to it, and a push service that supports amp-web-push. In practice, that means:

  • HTTPS on your domain. Every amp-web-push URL must start with https://.
  • File access. You must upload helper-iframe.html, permission-dialog.html and the service worker to your site.
  • A compatible service worker. The worker must understand amp-web-push messages. Push providers that support AMP give you one.
  • A push service or panel that stores subscribers and sends notifications.
  • The component script in your AMP page head, loaded from cdn.ampproject.org.

If your provider’s service worker isn’t built for amp-web-push, AMP subscriptions won’t work, even if the rest of your site collects subscribers fine.

How do you set up AMP push notifications step by step?

Setting up AMP push follows the same five steps on most platforms:

  1. Get the AMP files from your push provider: the helper iframe page, the permission dialog page and an amp-web-push compatible service worker.
  2. Upload all three to your domain, with the service worker at the root (for example, example.com/service-worker.js).
  3. Add the amp-web-push script tag to the head of your AMP template.
  4. Add the amp-web-push element with the helper-iframe-url, permission-dialog-url and service-worker-url attributes.
  5. Add subscribe and unsubscribe widgets with amp-web-push-widget, then test on a phone and a desktop browser.

On WordPress, the AMP template usually comes from your AMP plugin or theme, so check where it lets you add components. After that, send a test notification to yourself before showing the widget to readers.

Why does the service worker location matter on AMP?

The service worker location matters because it limits which pages the worker controls. The AMP docs say amp-web-push only works at the same folder level as the service worker (and in subfolders) unless the worker is served with the HTTP header Service-Worker-Allowed: /.

So if you upload the worker to example.com/push/sw.js, it won’t cover pages at example.com/news/. The simple fix is to put it at the root. This matches the general rule on MDN: a service worker’s default scope is the directory it sits in.

Also, ask your provider whether its AMP service worker is the same file your regular pages use. If it is, readers who subscribe on either version end up in the same list.

Is AMP push different from push on regular pages?

AMP push differs mainly in how the reader subscribes, not in how notifications are delivered. Here’s how the two compare:

PointRegular pagesAMP pages
Opt-in methodProvider’s JavaScript promptamp-web-push widget plus pop-up dialog
Custom promptsMany styles (modal, bell, full screen)Widgets built from AMP elements
Files on your domainUsually a service workerService worker plus two HTML helper pages
DeliveryPush API via the browserSame
iPhone and iPadiOS 16.4+ after adding to the Home ScreenSame rule applies

The iPhone rule is worth repeating. Web push on iOS and iPadOS only works for web apps added to the Home Screen, per WebKit, so most AMP subscribers will come from Android and desktop browsers. For more, see my guide to iPhone push notifications without an app.

Does AMP push help with Google Discover?

AMP push doesn’t help Google Discover directly. Discover picks content on its own, and push is a separate channel you control. That said, if you keep AMP pages for any reason, adding push to them means readers who land on AMP versions still get a chance to subscribe. I cover how the two channels work together in Google Discover and web push.

Where does LaraPush fit for AMP sites?

LaraPush lists AMP as one of its integration types, alongside WordPress, regular websites, iOS and Blogger, and AMP support is included from the Startup plan. In the panel, you choose AMP under Domains, then Integration, and follow the steps there. Pricing starts from $499 one-time (see current pricing), with unlimited subscribers on one licensed server. The trade-offs: you run it on your own VPS and there’s no free plan. Setup details are in the LaraPush guide, and you can compare other tools in the best push notification services and tools.

Frequently asked questions

Can AMP pages show a push notification prompt?

Yes, through the amp-web-push component. You place a subscribe widget on the page, and tapping it opens a permission dialog page hosted on your own domain. AMP doesn’t allow the custom JavaScript prompts that providers use on regular pages.

What files does amp-web-push need?

It needs three files on your HTTPS domain: helper-iframe.html, permission-dialog.html and an amp-web-push compatible service worker. All three URLs must share the same origin, and the service worker works best at the root of your site.

Do AMP push subscribers count as regular web push subscribers?

Yes. Once a reader subscribes from an AMP page, they’re a normal web push subscriber, and your notifications reach them through the browser’s Push API. Your provider stores them with the rest of your list.

Do AMP push notifications work on iPhone?

Only on iOS or iPadOS 16.4 and later, and only after the reader adds your site to the Home Screen as a web app. That rule applies to all web push on Apple mobile devices, not just AMP pages.

Does LaraPush support AMP pages?

Yes. LaraPush lists AMP as an integration type in its panel, and AMP support is included from the Startup plan. You select AMP under Domains, then Integration, and follow the setup steps for your site.

Leave a Reply

Your email address will not be published. Required fields are marked *