How to block websites on Mac Chrome
To block websites in Chrome on a Mac, install a blocking extension for a quick per-browser block, set Chrome's URLBlocklist policy for a block that also covers Incognito and every Chrome profile, or use a Mac-level blocker that covers Chrome and every other browser at once. Screen Time's website list is documented for Safari and is unreliable in Chrome.
- Chrome extension: quick to set up, quick to switch off.
- URLBlocklist policy: Chrome-only, always on, needs an admin to remove.
- Screen Time: built in, but designed around Safari.
- Mac-level blocker: covers every browser, and can run on a schedule.
Method 1: Use a Chrome extension
An extension is the fastest way to block a site in Chrome. LeechBlock NG is free and supports sets of sites with their own times and days. BlockSite is another common pick.
- Open the Chrome Web Store, find the extension, and click Add to Chrome.
- Open the extension's options and add the domains, such as
youtube.comandx.com. - Set a schedule or time limit if the extension supports one.
- Go to
chrome://extensions, click Details under the extension, and turn on Allow in Incognito. - Open each blocked site in a normal window and an Incognito window to test.
The weak spot is that the same page has an on/off switch. Guest windows and new Chrome profiles start without your extensions, and Safari doesn't care what Chrome has installed. If any of those is how you usually slip, an extension won't hold.
Method 2: Block sites with Chrome's URLBlocklist policy
Chrome has an enterprise policy, URLBlocklist, that stops matching pages from loading. Companies use it on managed Macs, and you can use it on your own. Unlike an extension, it applies to every Chrome profile and to Incognito windows, and there is no toggle inside Chrome.
The filter format is simple. youtube.com blocks the domain and every subdomain, so music.youtube.com and m.youtube.com are covered. A leading dot, as in .youtube.com, blocks only that exact host. A path such as youtube.com/shorts blocks just that part of the site. The policy name is case-sensitive, and the old name URLBlacklist is deprecated.
Set the policy with a configuration profile
On a Mac, Chrome reads enforced policies from configuration profiles. Google's Mac policy guide describes building one from its template plist with a conversion tool. For a short blocklist, you can write the profile by hand:
- Run
uuidgentwice in Terminal and keep both values. - Save the text below as
chrome-blocklist.mobileconfig. Replace the twoUUIDplaceholders with your values and edit the site list. - Double-click the file. Then open System Settings, click General, then Device Management, double-click the profile under Downloaded, and click Install. On macOS 14 Sonoma, profiles are under Privacy & Security > Profiles instead. An admin password is required.
- Quit and reopen Chrome, go to
chrome://policy, and check thatURLBlocklistappears with status OK. - Open a blocked site. Chrome should show a page saying your organization blocked it.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadDisplayName</key>
<string>Chrome website blocklist</string>
<key>PayloadIdentifier</key>
<string>local.chrome.blocklist</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>UUID-ONE</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>com.apple.ManagedClient.preferences</string>
<key>PayloadIdentifier</key>
<string>local.chrome.blocklist.settings</string>
<key>PayloadUUID</key>
<string>UUID-TWO</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadContent</key>
<dict>
<key>com.google.Chrome</key>
<dict>
<key>Forced</key>
<array>
<dict>
<key>mcx_preference_settings</key>
<dict>
<key>URLBlocklist</key>
<array>
<string>youtube.com</string>
<string>x.com</string>
<string>reddit.com</string>
</array>
</dict>
</dict>
</array>
</dict>
</dict>
</dict>
</array>
</dict>
</plist>
To change the list, edit the file and install it again. To remove the block, select the profile in Device Management (or Profiles on Sonoma) and click the remove button.
Many guides suggest defaults write com.google.Chrome URLBlocklist instead. Chromium's Mac quick start says that method sets policies "at the recommended level, not mandatory" and isn't meant for production use, so Chrome may not enforce a blocklist set that way. If you try it, chrome://policy will show whether Chrome accepted it.
The policy has no schedule. The sites stay blocked until you remove the profile. Chrome will also say it is managed by your organization, and the block applies only to Chrome.
Method 3: Screen Time, and why it often fails in Chrome
Screen Time's website list sits under Screen Time > Content & Privacy > App Store, Media, Web, & Games (on macOS 14 Sonoma, Store, Web, Siri & Game Center Content). Apple's guide labels these as Safari settings and says nothing about other browsers. Apple Community threads such as this one report restricted sites still loading in Chrome.
If you want to try it, add the sites, quit and reopen Chrome, and test. Don't assume it works because Safari blocks the site. On macOS 27, Apple reorganized Screen Time, so the menu names may differ. The Screen Time troubleshooting guide goes through the usual fixes.
Method 4: Block at the Mac level
A Mac-level block works below Chrome, so it covers normal windows, Incognito, guest profiles, and every other browser too. The free version is the hosts file, which the Terminal guide walks through.
Cactus for Mac does this on a recurring schedule. You choose the days and hours once, such as every weekday from 09:00 to 17:00, add the sites, and the block starts and ends on its own. During a block there is no off switch, in Chrome or anywhere else. Cactus writes the blocked sites to the hosts file and adds macOS packet filter rules for their addresses on ports 80 and 443, including QUIC, so Chrome can't simply fall back to HTTP/3. How Cactus blocks websites has the details.
Unlike URLBlocklist, Cactus doesn't include every subdomain automatically. It blocks the domain and its www. version, plus m.youtube.com for YouTube and twitter.com for X. Add others, such as music.youtube.com or youtu.be, separately. It blocks whole sites, not paths. It has one schedule, doesn't block apps, and costs $19.99 once. See blocking websites on a schedule for how it compares with other scheduled blockers.
Check Chrome's Secure DNS setting
Chrome can look up sites with its own DNS over HTTPS instead of asking macOS. Open Settings > Privacy and security > Security and find Use secure DNS. If a hosts-based block works in Safari but not in Chrome, turn it off and test again. Cactus's packet filter rules help here, but they rely on site addresses that big sites change over time, so the hosts layer still matters.
Which method should you use?
| Method | Covers Incognito | Covers other browsers | Schedule | Easy to switch off |
|---|---|---|---|---|
| Chrome extension | Only if allowed | No | Depends on extension | Yes, one toggle |
| URLBlocklist policy | Yes | No | No | Needs admin to remove profile |
| Screen Time | Unreliable in Chrome | Documented for Safari | Daily limits, Downtime | With the passcode |
| Cactus | Yes | Yes | Recurring hours | No off switch during a block |
Use an extension if you only want a light nudge in Chrome. Use URLBlocklist if some sites should never load in Chrome and you want subdomains and paths handled for you. Use a Mac-level scheduled blocker if the rule is about work hours, or if you know you'd open Safari the moment Chrome said no. The two combine well: a policy for sites you never want, and a schedule for the ones that are fine in the evening.
If a site still loads in Chrome
- An old tab still shows it. Reload the page. A cached page can stay visible until you do.
- A subdomain gets through. Add it as its own entry, unless you use
URLBlocklist, which covers subdomains. chrome://policyshows an error. Check the spelling ofURLBlocklist, then reload policies or restart Chrome.- It works in Safari only. Check Use secure DNS, and any VPN or proxy that Chrome uses.
For blocks that hold in every browser, see website blockers that don't need an extension.
