Apple's Screen Time feature can interfere with DNS-based content filtering. Learn how to identify the conflict and configure your devices so CleanBrowsing works reliably.
Apple's Screen Time feature, available on iOS 12+ and macOS Catalina+, includes a Content & Privacy Restrictions module with its own Web Content filtering. When this feature is active, it intercepts DNS requests at the device level — similar to how CleanBrowsing and other DNS-based content filtering services work.
Since Screen Time operates at the device level, it takes precedence over network-level DNS filtering, creating two competing filter systems that interfere with each other.
Both Screen Time and CleanBrowsing attempt to control web traffic by intercepting DNS requests:
When both are active, Screen Time's device-level interception overrides the network configuration. This can cause DNS queries to bypass CleanBrowsing entirely, or create unpredictable behavior where some requests are filtered by Screen Time and others by CleanBrowsing.
You may be experiencing a Screen Time conflict if you notice:
nslookup -type=txt debug.cleanbrowsing.org on the device does not return CleanBrowsing filter informationThe solution is to disable Screen Time's Web Content filtering and rely solely on CleanBrowsing for content filtering. This eliminates the device-level interception and allows network-based DNS filtering to function as intended.
Why this is the right approach:
For the best results, use this configuration:
| Feature | Setting | Reason |
|---|---|---|
| Screen Time → Web Content | Unrestricted Access | Prevents DNS interception conflict |
| Screen Time → App Limits | Use as desired | No conflict with DNS filtering |
| Screen Time → Downtime | Use as desired | No conflict with DNS filtering |
| Network DNS | CleanBrowsing IPs | Handles all content filtering |
You keep the benefits of Screen Time for app management and time limits while relying on CleanBrowsing for web content filtering.
After changing this setting, verify CleanBrowsing is working by visiting a domain that should be blocked, or run a DNS debug check.
Verify the fix by opening Terminal and running:
nslookup -type=txt debug.cleanbrowsing.org
The response should confirm you are using a CleanBrowsing filter.