The web push playbook
Web push notification best practices
Chrome now scores, warns about and rate-limits web push. This is the playbook for staying on the right side of it: how often to send, what to write and who to send it to, with the cadence that fits your kind of site.
Updated · By the SharePush team
Best practices for your kind of site
The rules are the same for everyone; the volume is not. A news desk and a SaaS product cannot share a cadence, so start from the guide written for what you run.
-
News & media
7–28 campaigns a week
Alert inflation. A newsroom that pushes every story trains its audience that no alert is urgent, and the ones that actually matter get ignored with the rest.
Independent research
-
Sport
7–28 campaigns a week
Sending every result to everybody. A subscriber who follows one club and receives another club's goals learns to ignore the channel entirely.
Reasoned from the opt-in
-
Finance & crypto
7–28 campaigns a week
Pushing market noise as if it were market news. Daily "here is what moved" alerts train people to dismiss the one that mattered.
Reasoned from the opt-in
-
E-commerce
2–4 campaigns a week
Discount fatigue. When every send is a sale, the sale stops being news and the margin goes with it.
Industry guidance
-
Blogs, magazines & communities
2–7 campaigns a week
Publishing on a schedule and pushing everything on it. Not every post is worth an interruption, and treating them as equal drags the whole channel down.
Reasoned from the opt-in
-
Jobs & classifieds
1–7 campaigns a week
Sending the whole board. One irrelevant role is forgivable, five in a row means the matching does not work and they leave.
Reasoned from the opt-in
-
SaaS & education
1–3 campaigns a week
Turning a functional channel into a marketing one. The permission was granted for reminders, and spending it on announcements loses both.
Reasoned from the opt-in
What Chrome is doing to web push
Three independent systems, each with its own trigger and its own penalty. They are the floor under everything else on this page.
Live since 2025
On-device spam warnings
Chrome runs a machine-learning model over your notification text (title, body and action buttons) before it is shown. If it reads as deceptive or spammy the user never sees your message: they get your domain plus a warning, with one button to unsubscribe and one to reveal the content.
Chrome reports this suppresses around 3 billion notifications a day on Android.
Rolling out from Oct 2025
Automatic permission revocation
Chrome silently revokes the notification permission of sites that pair a high sending volume with very low engagement. The subscriber does not unsubscribe: the browser unsubscribes them for you, on Android and desktop. Installed PWAs are exempt.
Google measures under 1% interaction on notifications overall; in its own tests, sites that sent less got more clicks.
Rolling out from Jan 2026
Push API rate limits
Chrome scores each site daily on three axes: pushes sent per minute the user spends on your site, permission prompts shown against that same time, and raw engagement. Sites judged disruptive get a quota, and Push API requests over it are answered with HTTP 429.
Penalties escalate: 1 day, then 7, then 14, cleared only after 42 consecutive clean days.
All three penalties measure the same ratio
Notifications sent, over engagement earned. You can improve it by sending less or by being more relevant. Chrome does not care which, but only one of the two also grows the business.
< 1% of notifications get interacted with
The playbook
In the order the work happens: collect a subscriber, decide how often to talk to them, what to say, who hears it and when to stop. It applies to every kind of site; your sector changes the volume, not the rules.
Earn the permission before you ask for it
The prompt itself is scored. A low acceptance rate pushes you into Chrome’s quieter UI and counts against you in the rate-limit formula.
- Never fire the native prompt on landing. A visitor who has not read anything yet has no reason to say yes, and a denial is permanent.
- Use a soft ask first: your own in-page invite explaining what they get ("match alerts", "price drops") and how often. Only show the browser dialog to people who accept that.
- Trigger the ask on intent: second page view, end of an article, after a search, after an add-to-cart.
- Sell the value, not the feature. "Get notified" is a mechanism; "Know first when the price drops" is a reason.
- Never gate content behind the prompt. No "allow notifications to keep reading". That pattern is why the channel has this reputation.
Treat volume as a budget, not a lever
Volume is only half of every Chrome penalty: the other half is time spent on your site. Five pushes a day is fine for a daily-visit audience and disruptive for a once-a-month one.
- Set a hard frequency cap per subscriber and hold it. For publishers 1–3 a day is the ceiling; for e-commerce and SaaS, 2–5 a week.
- Ramp new subscribers up instead of opening at full volume. The first week decides whether they ever click again.
- Budget against engagement, not against inventory: a segment that has not clicked in 30 days does not get the cadence of one that clicks weekly.
- A quiet segment costs nothing to skip, and can cost the whole domain’s permission if you keep pushing to it.
- Watch for bursts. Flushing a backlog after an outage looks exactly like abuse to the rate limiter.
Write copy the classifier does not flag
The model reads your title, body and buttons. It was trained largely on synthetic examples, so it is unpredictable: write like a newsroom, not like an ad.
- Front-load the actual subject. The first 30–40 characters are all most people read on a lock screen.
- One idea per notification, one clear action. If it needs two sentences to explain, it is an email.
- Drop the urgency theatre: no ALL CAPS, no "!!!", no siren or money emojis, no countdown that is not real.
- Name the thing. "Napoli–Inter kicks off in 15 min" survives; "🚨 URGENT: don’t miss out!" is the exact shape the model was built to catch.
- Use a relevant image and your real icon. Generic clickbait creative reads as spam to humans too.
- A/B the wording, not just the send time. A variant whose CTR collapses without a matching delivery drop is probably being flagged.
Send to the people who asked for that thing
Relevance is the only input you fully control that raises engagement and lowers volume at once. It fixes both sides of the ratio Chrome measures.
- Segment by topic affinity before anything else. A subscriber who only ever clicks one category should mostly receive that category.
- Use the interest score to split a broadcast: send to strong affinity now, and to weaker affinity only if the first wave performs.
- Respect each subscriber’s local hour, not your office hour.
- Match the send to the moment. Transactional and time-critical messages are what earn back the permission your marketing spends.
- Deep-link to the exact page. A push that lands on the homepage teaches people your pushes are not worth opening.
Prune before Chrome prunes you
A dead subscriber is not neutral. They are the denominator dragging your engagement ratio under the revocation threshold, and they take the live subscribers down with them.
- Define dormant for your business (no click in 60 or 90 days is a common line) and track it as a share of the list, weekly.
- Run one honest re-engagement attempt: best-performing category, best hour, plainest copy. One, not a sequence.
- If it does not land, stop sending to that cohort. Suppressed subscribers cost nothing; disruptive volume costs everyone the permission.
- Remove expired and invalid endpoints. They inflate your "sent" number while never being seen by anybody.
- Judge health by clicks per active subscriber, not by total sends. Total sends is the number Chrome uses against you.
Rewrite these before you send
Reported triggers, not an official blocklist: Google has published neither the model nor its training data. Read them as shapes to avoid rather than as banned words.
| Avoid | Why | Write instead |
|---|---|---|
| URGENT / ACT NOW | Manufactured urgency is the most widely reported trigger. | Closes tonight at 23:59 |
| FREE / 100% free | Classic bait vocabulary, flagged even when it is true. | No cost for the first month |
| Bitcoin / crypto gains | Finance bait is heavily represented in the training set. | Name the actual asset and the actual event |
| 🚨 💰 🔥 in the title | Emojis are part of the text the model reads. | One neutral emoji, or none at all |
| You won’t believe… | Withheld-payoff clickbait pattern. | State the payoff |
| Click here now!!! | Generic CTA plus punctuation spam. | Read the match report |
SharePush is built around these rules
-
A daily cap per subscriber
Volume is a budget you set once, per person rather than per campaign.
-
Topics and interest scores
Every campaign is tagged with what it is about, so a send can go to the people who asked for that thing. How segmentation works
-
Inactive subscribers are paused
After a number of ignored campaigns you choose, they stop receiving sends for a while instead of dragging your engagement down. The lifecycle policy
Sources
Every claim above traces back to one of these. Chrome's rules keep moving, so check them before assuming this page is current.
- The new Chrome filter may kill web push notifications Pushpad The publisher-side read on the spam filter: what it flags, and why it is unpredictable.
- Fighting unwanted notifications with machine learning in Chrome Chromium Blog Google’s own announcement of the on-device warning model.
- Reducing notification overload for a quieter browsing experience Chromium Blog Automatic permission revocation: the criteria, and the installed-PWA exemption.
- Increasing web push notification value with rate limits Chrome for Developers The rate-limit formula, the HTTP 429 behaviour and the escalation schedule.
- Push notification best practices OneSignal Opt-in flows, cadence and copy patterns observed across a large sending base.
- Web push notifications: setup, best practices & results Pushwoosh Segmentation and timing benchmarks worth calibrating your own numbers against.
- Walking the notification tightrope Reuters Institute · Digital News Report 2025 The study behind the named caps above: how publishers balance alert volume against overload, with real newsroom limits.
- Mobile news alerts: how publishers walk the notification tightrope Press Gazette Trade coverage of the same report, with the per-publisher figures called out.
- What is the optimal sending frequency for ecommerce push? MobiLoud Vendor guidance, and candid that frequency "isn't something you can copy from a competitor or benchmark report".