Skip to main content
Troubleshooting SuperchargePerformance

FIX Service Worker High CPU in Chrome: 5 Solutions (2026)

Service worker high CPU in Chrome is background scripts polling silently. Spot the offender in Task Manager and stop it without losing features, fast to deep.

6 min read Verified Chrome 146

Key takeaways

  • A service worker with a polling loop pins CPU indefinitely after you close the tab. The tab closing doesn’t stop it.
  • Go to chrome://serviceworker-internals/, find workers with Status: Running, click Stop then Unregister to kill them.
  • Forgotten MV3 extensions each run their own service worker. Disable any extension you no longer actively use.

You close a tab and the CPU stays pinned. Chrome Task Manager shows “Service Worker: https://example.com” burning 15% CPU — but that site is not even open. Service workers are background JavaScript processes installed by websites to handle push notifications, offline caching, and background sync. Unlike regular page scripts, they persist after you close the tab. A buggy or deliberately aggressive one can run indefinitely without you knowing it is there.

Quick Diagnosis

What you see in Task ManagerLikely causeFix
”Service Worker: [site name]” with high CPUThat site’s worker has a bug or polling loopFix 1: Unregister the worker
”Service Worker: chrome-extension://…” with high CPUExtension worker with frequent alarmsFix 2: Identify and disable the extension
CPU drops when you close a specific tab but climbs backWorker keeps running after tab closeFix 1
High CPU scattered across many workersToo many PWAs or tabs openFix 3: Reduce active tabs

Fix 1: Unregister the Service Worker

Service workers can be forcibly removed without uninstalling the site or extension. The worker will reinstall the next time you visit the site, but unregistering breaks whatever stuck loop it is in.

  1. Navigate to chrome://serviceworker-internals/ in your address bar.
  2. You will see a list of every registered worker — each entry shows the origin (website URL or extension ID) and current status.
  3. Look for workers with Status: Running — a worker that has been running continuously without user interaction is doing something it should not.
  4. Click Stop to immediately halt it.
  5. Click Unregister to remove it permanently.
  6. If the same worker becomes problematic repeatedly, block the site’s background sync (see Fix 4 below).

Fix 2: Identify and Disable the Extension

Every MV3 extension runs its own service worker (this has been the case since MV3 launched). An extension you installed years ago and forgot about may be polling in the background right now.

  1. Press Shift + Esc to open Chrome Task Manager.
  2. Look for rows labeled “Service Worker: chrome-extension://[ID]”.
  3. To match the ID to an extension name: go to chrome://extensions/, click Details on each extension, and check the ID in the URL.
  4. Disable any extension you do not actively use — they keep running background workers whether you use them or not.
  5. If a specific extension has a stuck worker, check for updates at chrome://extensions/ and click Update.

Fix 3: Reduce Active Tabs and PWAs

Progressive Web Apps (PWAs) — like Slack, Spotify Web, and similar tools — register service workers on installation. Five open PWA tabs means five concurrent background workers.

  1. Close PWA tabs when not in active use — the service worker will still run but typically becomes idle.
  2. Use installed desktop apps (Slack, Spotify) instead of their web versions when possible — native apps do not use Chrome service workers.
  3. Go to Settings > Performance and enable Memory Saver — suspended tabs have their associated service workers throttled.

Fix 4: Block Background Sync for Problem Sites

Background sync allows service workers to re-try failed operations when connectivity returns, but some sites abuse it for tracking.

  1. Go to chrome://settings/content/backgroundSync.
  2. Under Not allowed to sync in the background, click Add and enter the domain of the problematic site.
  3. This prevents that site’s service worker from registering new sync events.

Fix 5: Hard Reload the Page

Sometimes a service worker gets stuck on a stale, buggy version of its script. A hard reload forces the browser to check for updates.

  1. Navigate to the problematic site.
  2. Press Ctrl+Shift+R (Windows/Linux) or Cmd+Shift+R (macOS).
  3. This bypasses the cache and forces a new service worker script download.
  4. If the worker was stuck on a buggy version, the updated script may resolve the CPU usage.

Common Service Worker Offenders

Not all service workers are equal. The highest CPU consumers:

SourceBehaviorFix
News sites (BBC, NYT, etc.)Poll for push notifications every few minutesUnregister at chrome://serviceworker-internals
PWAs (Slack, Spotify Web)Cache maintenance loops with multiple open tabsClose unused PWA tabs
Ad networksService workers caching ad assets — do not show the site name in Task ManagerBlock at the network level
MV3 extensionsBackground polling via chrome.alarms APIDisable unused extensions

How to Audit All Service Workers

  1. Open chrome://serviceworker-internals — this lists every registered service worker across all origins.
  2. Check the Status column — workers should show as Stopped when idle. A worker showing Running for more than a few seconds is doing continuous work.
  3. Click Stop to test whether it reduces CPU usage.
  4. If stopping the worker fixes the CPU issue, consider whether you need that site’s push notifications — if not, unregister and block background sync.

Limiting Service Worker CPU Accumulation

The manual fixes above handle individual problem workers. If you want ongoing protection, SuperchargePerformance reduces the conditions that let workers accumulate:

  • Tab suspension via chrome.tabs.discard() discards the renderer process for inactive tabs. While the service worker process itself can persist, suspended tabs generate far less service worker activity because the page context that would trigger worker events no longer exists.
  • Ad and tracker blocking at the network level (declarativeNetRequest) blocks requests from ad networks that register service workers for tracking. Blocked network requests mean fewer cache operations and less service worker CPU.
  • Script blocking (free levels 1–2) stops social widgets and third-party scripts that register workers for analytics collection.

That said, the unregister and extension audit fixes above are free and effective — the extension is only worth adding if you want the broader memory and CPU management on top.

Technical Background

Service workers are designed to be ephemeral — they should wake up to handle an event (fetch request, push notification, background sync), complete the task, and stop. The browser is supposed to terminate idle workers automatically.

In practice, buggy implementations keep a long-lived fetch connection open (a “keep-alive” pattern) to poll for notifications or updates. As long as this connection is open, the service worker stays active and consumes CPU. Chrome does terminate workers that have been idle for more than a few minutes, but a worker with an open connection is never considered idle.

MV3 Chrome extensions also use service workers for their background scripts (replacing MV2 background pages). Extensions with frequent chrome.alarms timers or ongoing message passing will have consistently higher service worker CPU usage than extensions that only react to user events.

For related CPU and battery issues, see the articles on fixing Chrome battery drain and fixing Antimalware Service Executable high CPU.

Frequently Asked Questions

What are service workers in Chrome?
Service workers are background scripts that web apps and extensions use for offline caching, push notifications, and background sync. They run in their own process and can consume CPU even when you are not interacting with the page.
Why do service workers use so much CPU?
Common causes: web app code with frequent cache update cycles, extensions with aggressive background polling, and sites that abuse the service worker API for analytics or ad tracking. Chrome Task Manager (Shift+Esc) shows which service worker is consuming resources.
How do I stop service workers from draining CPU?
Identify the offending service worker in Chrome Task Manager, then unregister it at chrome://serviceworker-internals or disable the responsible extension. Suspending the tab that installed the worker prevents it from running.

SuperchargePerformance

Tab suspension, ad blocking, and script control. Free.

Add to Chrome — Free

Don't miss the next release

Be first to know when we ship something new.

Related Articles