What is com.apple.WebKit.WebContent on a Mac?
com.apple.WebKit.WebContent is the macOS process that draws a web page. Safari usually runs a separate one for each open tab, and other apps that show web pages inside them start their own. Seeing several at once is normal. A busy one means one page is working hard, so the fix is to find that page and close it, not to end the process itself.
This post explains what the process does, why there are many, how to find which page is the busy one, and what is safe to close.
What WebContent does
A web page is a program in its own right. It runs scripts, plays video, draws animations and loads images and ads. Safari, and other apps built on Apple’s WebKit engine, run each page in a separate process so that one broken or heavy page does not take the whole browser with it. That separate process is com.apple.WebKit.WebContent.
It is one of three WebKit processes that work as a team. Foreman, which names about 120 macOS processes in plain English, lists three of them:
- Web content (com.apple.WebKit.WebContent) renders a web page for Safari or another app using WebKit.
- Web networking (com.apple.WebKit.Networking) loads web pages and downloads for WebKit apps.
- Web graphics (com.apple.WebKit.GPU) draws web page graphics, video and WebGL for WebKit apps.
So when a page is slow, the load may sit in any of the three, and the busy one tells you what the page is doing: lots of scripts, lots of downloading, or lots of drawing.
Why there are so many
You will usually find more than one, often several. The usual reasons are:
- Each tab usually gets its own process. Related pages, such as a pop-up window opened by a page, can share one.
- Other apps use WebKit as well. Any app that shows a web page inside its window, for example a mail app or one with a built-in sign-in page, may have its own.
- Reopening Safari with its last windows restored brings those pages back, and each page that loads gets a process.
Chrome and other browsers built on Chromium use their own helpers, not these, so on a Mac that runs a lot of tabs in Chrome you will see something different. Why Chrome uses so much memory on a Mac covers that side, and what are helper and renderer processes on a Mac explains the idea behind them.
Having many is not a problem in itself. Each page that sits unused still holds some memory, but it should use hardly any processor. What matters is whether one of them is working hard.
Find the page that is busy
One WebContent process at high CPU nearly always means one page, and macOS gives you a few ways to find it.
- Look at Safari first. When a page is using a lot of power, Safari can show a note at the top of it saying the webpage is using significant energy. That tab is the one to deal with.
- Look for sound or video. A tab playing audio shows a speaker symbol. A tab with a video or a live feed, or one that auto-plays, is a common cause.
- Look for pages that update by themselves: a live dashboard, a stock ticker, a chat, a map, a page with animated ads.
- Close tabs one at a time, starting with the ones you do not need, and watch whether the process calms down. Pages that you have open but have not used in days are good candidates.
- Hold on a moment before blaming a page that is loading. A page in the middle of loading is busy for a few seconds and then quiet.
How to tell if one browser tab is slowing down your Mac goes through this in more depth.
A process list adds a second view. In Foreman’s Processes page the helpers sit under the app that owns them, added up, so Safari shows its total including every WebContent process, and a click on the row opens it to show the pieces. If you sort by CPU and the total for Safari is high, the work is in one of those pages. If it is another app, say a mail app, the same row tells you that.
In Terminal, you can list them with:
ps -axo pid,pcpu,comm | grep WebContent
That prints the process ID, the processor use and the name for each one. It only reads and changes nothing.
What is safe to close
Closing a tab in Safari is always safe. The page’s work stops at once, and nothing else is affected. What you lose is whatever was not saved on the page, such as half a typed form.
Ending a WebContent process by itself, from a process list or Terminal, is a rougher step. The page it was drawing stops, and Safari usually reloads it with a note such as “This webpage was reloaded because a problem occurred.” Tabs drawn by other WebContent processes are not touched. Sometimes that is exactly what you want for a page that has frozen, and it is a good deal gentler than force quitting the whole browser. Ending the same process for a page that holds a form you have not sent will lose that form.
If the cause is an app you want to keep open and use later, there is another option. Foreman’s Efficiency Mode runs an app at background priority and holds it to about a quarter of the processor time it would take while you work in something else. It runs at full speed again while it is in front or playing sound. This works on the app as a whole, so it slows the browser as a whole while it is in the background, and it is remembered for that app. It is not a cure for a page that is stuck in a loop, and it does not promise any particular speed-up. For that, close the page. See how to stop one app from slowing down everything else on your Mac.
When to worry
The process is a normal part of macOS and is not a virus, even though the name looks strange. Apple’s own web engine runs it from the system folders.
Look closer if:
- One WebContent process stays high after you have closed every tab you can see. A tab may be hidden in another window or another Space, so check all of them.
- It stays high with Safari quit. Another app that shows web pages is the next place to look.
- The Mac is hot and the fans are loud with only web pages open. A page full of video or animated ads can do that, and the page is the thing to close.
If a page uses a lot of processor every time you open it, the page is the cause. Leave it, or use a different site.
The short version
com.apple.WebKit.WebContent draws a web page. Several at once is normal, and one busy process is one busy page. Close that tab and the work stops. Foreman groups these under their app so the busy one is easy to spot, and it names them in plain English, which makes the list less cryptic.