Chrome on Mac blocking guide

How to block websites on Chrome on a Mac

Chrome on a Mac can block sites through an extension, through the same policy companies use, or through a blocker that works below the browser. Each one fails in a different way, so pick the one that fits how you slip.

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.

  1. Chrome extension: quick to set up, quick to switch off.
  2. URLBlocklist policy: Chrome-only, always on, needs an admin to remove.
  3. Screen Time: built in, but designed around Safari.
  4. 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.

  1. Open the Chrome Web Store, find the extension, and click Add to Chrome.
  2. Open the extension's options and add the domains, such as youtube.com and x.com.
  3. Set a schedule or time limit if the extension supports one.
  4. Go to chrome://extensions, click Details under the extension, and turn on Allow in Incognito.
  5. 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:

  1. Run uuidgen twice in Terminal and keep both values.
  2. Save the text below as chrome-blocklist.mobileconfig. Replace the two UUID placeholders with your values and edit the site list.
  3. 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.
  4. Quit and reopen Chrome, go to chrome://policy, and check that URLBlocklist appears with status OK.
  5. 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?

MethodCovers IncognitoCovers other browsersScheduleEasy to switch off
Chrome extensionOnly if allowedNoDepends on extensionYes, one toggle
URLBlocklist policyYesNoNoNeeds admin to remove profile
Screen TimeUnreliable in ChromeDocumented for SafariDaily limits, DowntimeWith the passcode
CactusYesYesRecurring hoursNo 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://policy shows an error. Check the spelling of URLBlocklist, 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.

Questions

Maxi, the founder of Cactus, working at his desk

Why I made Cactus

I couldn't stop myself.

I kept opening YouTube and X while waiting for coding agents.

A 20-second pause could turn into 20 lost minutes.

I built Cactus so those sites simply do not open during the hours I chose.

Seven days free. No card. A license is $19.99 USD once. Link handles checkout. By buying, you agree to the Terms and acknowledge the Privacy Policy.

Cactus runs on Mac

Open usecactus.app on your Mac to download the free trial. It lasts seven days and needs no account or card.

See pricing