Wake Lock API case study: 300% increase in purchase intent indicators on BettyCrocker.com
- May 19, 2020
- Web Performance

AI Summary
BettyCrocker.com used the Screen Wake Lock API to stop phones dimming while people cook, and the source case study reports a 300 percent increase in purchase intent indicators. The API is a few lines of JavaScript, but it only works in production if you handle the part everyone forgets: the lock is released the moment the tab is hidden, so you have to request it again when the page becomes visible.
navigator.wakeLock.request('screen')returns a sentinel object; hold a reference to it or it can be garbage collected.- Requires a secure context and a visible document, so it fails on HTTP and while the tab is in the background.
- Always ship a visible toggle. Keeping a screen awake costs battery, and a feature the user cannot switch off is a support ticket.
- This is not a ranking signal. It is a task completion feature, and its value shows up in engagement and conversion, not in rankings.

Recipe pages have a specific, physical failure mode that has nothing to do with page speed: you prop the phone against a mixing bowl, your hands are covered in flour, the screen dims after 30 seconds, and now the page is gone. No amount of Core Web Vitals work fixes that. The Screen Wake Lock API does, in about fifteen lines of JavaScript, and this BettyCrocker case study is the clearest example of what happens when a site removes a friction point that everyone had simply accepted.
Below is the implementation detail: how the API behaves, the release rule that breaks naive implementations, where it can be blocked, and how to measure the outcome honestly rather than reusing someone else's headline number.
The API surface, in full
The whole feature is one promise returning method and a small object. Requesting the lock returns a WakeLockSentinel, which is your handle for releasing it and for observing when the browser released it for you.
| Member | What it does | Practical note |
|---|---|---|
navigator.wakeLock.request('screen') | Asks for the lock, resolves with a sentinel | Rejects if the document is hidden or the context is insecure, so always wrap it in try and catch |
sentinel.release() | Gives the lock back, letting the screen dim normally | Call it when the user turns the feature off or leaves the recipe step |
sentinel.released | Boolean, whether the lock is no longer held | Useful for rendering the correct toggle state after a tab switch |
release event | Fires whenever the lock ends, including automatically | Bind your UI update here, not to your own release call |
'wakeLock' in navigator | Feature detection | Hide the toggle entirely when unsupported rather than showing a control that does nothing |
Two environment conditions block the request before your code is at fault. The page must be a secure context, meaning HTTPS or localhost. And Permissions Policy must allow it: the feature is gated by the screen-wake-lock policy, so a page embedded in an iframe needs allow="screen-wake-lock" on that iframe, and a site sending a restrictive Permissions-Policy response header has to include the feature explicitly.
The release rule that breaks naive implementations
The browser releases the wake lock automatically whenever the document stops being visible: the user switches apps to check a message, answers a call, or locks the phone. When they come back, the lock is gone and the screen starts dimming again, even though your toggle still says the feature is on. Users read that as the feature being broken, because from their side it is.
The fix is the visibilitychange listener shown in the diagram: when the document becomes visible again and the user has not turned the feature off, request the lock again. Two details make the difference between a working implementation and a flickering one. Track intent separately from the sentinel, so you know whether the user wants the screen kept awake independently of whether you currently hold a lock. And drive the toggle's visual state from the release event, so it always tells the truth about the current state. The toggle also has to respond instantly when tapped, which is an interaction responsiveness question covered in our note on INP.
When it is the right feature, and when it is not
| Use case | Worth a wake lock? | Why |
|---|---|---|
| Recipes and cooking steps | Yes | Hands are busy, the task lasts longer than the screen timeout |
| Workout and exercise timers | Yes | The user needs to glance at a countdown without touching the device |
| Repair guides and assembly manuals | Yes | Same pattern: propped device, dirty or occupied hands |
| Sheet music, lyrics, presentation notes | Yes | Continuous reading with no touch input for minutes at a time |
| Articles and product pages | No | Normal reading involves regular touch, so the screen never dims |
| Anything applied automatically | No | Draining a battery without asking is user hostile and gets the site closed |
Technical Challenge
Technical SEO issues often create invisible barriers to ranking potential. This case study identifies the specific technical challenges addressed, from crawlability issues to performance bottlenecks. Understanding the problem scope helps practitioners diagnose similar issues.
The barrier here is not crawlability, it is task completion, and it is worth being precise about that rather than stretching the case study into a ranking claim. A user who abandons a recipe halfway through because the screen went dark does not convert, does not return, and does not send any of the engagement signals a publisher depends on. The technical challenge is delivering a device level capability from a web page, with graceful degradation on browsers that do not support it, without ever gating the recipe content itself behind the API.
Diagnostic Process
Identifying technical issues requires systematic analysis using crawling tools, log file analysis, and Search Console data. This case study documents the diagnostic methodology that uncovered actionable issues. The process itself provides value for practitioners building technical audit capabilities.
This class of problem is invisible to crawlers and log files, which is exactly why it survives so long. It surfaces in three other places: session recordings that show repeated tap and wake behaviour partway through long pages, support and app store style feedback complaining that the page keeps going dark, and time on page distributions that collapse right around the device's default screen timeout. Chrome DevTools has no wake lock inspector, so verification is manual: request the lock on a real phone, background the tab, return, and confirm the sentinel was reacquired by logging the release event and the request result.
Implementation and Solutions
Each identified issue required specific technical solutions implemented within development constraints. The case study details solutions for rendering issues, performance optimization, crawl management, and indexation improvements. Implementation approaches balance ideal solutions with practical constraints.
A shippable implementation is roughly five decisions:
- Feature detect first. Render the toggle only when
'wakeLock' in navigatoris true, so unsupported browsers never see a dead control. - Make it opt in. Request the lock from a user gesture, not on page load. It sets the right expectation and avoids surprising battery drain.
- Reacquire on visibility. The listener pattern above, guarded by the user's stored intent.
- Release deliberately. When the user toggles off, when they navigate away from the step by step view, and optionally after a long idle period.
- Never gate content. The recipe, ingredients and schema markup all render normally with or without the API. This is progressive enhancement, so a browser without support loses a convenience, never the content.
That last point is the one with SEO consequences. Any pattern where the useful content only appears after a device API succeeds is a rendering risk, and the wider category of user experience work that sits outside the three Core Web Vitals is covered in site speed beyond Core Web Vitals.
Measurable Impact
Technical improvements demonstrate value through measurable outcomes: improved crawl stats, faster indexation, better Core Web Vitals scores, and ultimately improved rankings and traffic. This case study quantifies the impact of technical optimization.
The reported outcome for BettyCrocker.com is a 300 percent increase in purchase intent indicators, which in a recipe context means actions such as saving a recipe, adding ingredients to a list, or clicking through to buy. To measure the same thing on your own site, instrument three events and compare sessions where the wake lock was active against sessions where it was available but not used: the toggle activation itself, the downstream intent action, and completion depth such as reaching the final step. Keep the comparison within mobile traffic only, and be honest that users who enable the feature are already more committed, so treat the result as directional unless you can run a genuine split test.
The engagement side is worth watching too, since a screen that stays awake changes session duration mechanically. If you also want to check that the added interaction has not hurt responsiveness, the diagnosis steps in INP too high apply, and the broader mobile experience questions are collected in our mobile SEO FAQ.
Technical SEO case studies like this one help practitioners understand the tangible value of investing in site infrastructure.
This technical SEO case study demonstrates how resolving technical issues and optimizing site infrastructure directly impacts organic visibility. The documented approach provides a template for technical optimization initiatives.
FAQ
It is a browser API that lets a page ask the device not to dim or lock its screen while that page is visible. You call navigator.wakeLock.request with the type screen, and you get back a sentinel object that you can release later. It exists for tasks where the user is reading rather than touching, such as following a recipe.
Support is broad across current browsers, but the right approach is feature detection rather than a version table: check whether wakeLock exists on navigator and render the control only when it does. That way the page degrades cleanly wherever the API is missing or blocked by policy.
No. The browser releases the lock as soon as the document stops being visible, and it does not restore it when you come back. You have to listen for visibilitychange and request the lock again when the page becomes visible, which is the single most common bug in wake lock implementations.
Not directly, and it is worth being clear about that. There is no ranking signal for wake locks. The benefit is task completion: users who finish what they came to do are more likely to convert and return, which is a business outcome rather than an algorithmic one.
There is no permission prompt, but there are conditions. The page must be a secure context served over HTTPS, the document must be visible at the moment of the request, and Permissions Policy must allow the screen-wake-lock feature, which matters when your page is embedded in an iframe.
Track three events: the toggle activation, the intent action you care about such as saving a recipe or adding items to a list, and how far through the task the user got. Compare mobile sessions that used the feature against mobile sessions that could have used it and did not, and treat the difference as directional unless you can run a real split test, because users who opt in are already more engaged.
Source: https://web.dev/betty-crocker/
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.
Subscribe to our newsletter!
Recent Posts
- Can AI Crawlers Actually Read Your Site? I Measured 400 of the Biggest September 5, 2026
- The Pre-Publish Quality Gate for AI-Assisted Content August 6, 2026
- AGENTS.md vs llms.txt vs llms-full.txt: Which Agent File Does What July 18, 2026







