Browser PrivacyBeginner10 min read

Hardening Firefox for Privacy

Step-by-step guide to configuring Firefox for strong privacy without breaking everyday browsing.

Firefox is one of the few mainstream browsers that gives you meaningful control over privacy settings. Unlike Chromium-based browsers, Firefox is developed by Mozilla — a nonprofit with no advertising business model. Out of the box, Firefox is decent, but with targeted configuration changes you can dramatically reduce tracking, fingerprinting, and data leakage without sacrificing usability for daily browsing.

Step 1: Built-in Privacy Settings

Start with the settings accessible through the normal preferences UI. Navigate to Settings > Privacy & Security and adjust the following:

  • Set Enhanced Tracking Protection to Strict. This blocks social media trackers, cross-site cookies, fingerprinters, and cryptominers.
  • Under Cookies and Site Data, enable "Delete cookies and site data when Firefox is closed."
  • Disable all Firefox data collection under "Firefox Data Collection and Use."
  • Set your default search engine to DuckDuckGo, Startpage, or SearXNG.
  • Under HTTPS-Only Mode, select "Enable HTTPS-Only Mode in all windows."

Step 2: about:config Tweaks

Type about:config in the address bar to access advanced settings. These changes significantly improve privacy with minimal impact on browsing functionality.

text
// Disable WebRTC IP leak (prevents real IP exposure behind VPN)
media.peerconnection.enabled = false

// Disable telemetry and experiments
toolkit.telemetry.enabled = false
toolkit.telemetry.unified = false
app.shield.optoutstudies.enabled = false
experiments.enabled = false

// Disable prefetching (prevents DNS and connection leaks)
network.prefetch-next = false
network.dns.disablePrefetch = true
network.http.speculative-parallel-limit = 0

// Resist fingerprinting (spoofs timezone, screen size, etc.)
privacy.resistFingerprinting = true

// Disable Pocket, Snippets, and sponsored content
extensions.pocket.enabled = false
browser.newtabpage.activity-stream.feeds.section.topstories = false
browser.newtabpage.activity-stream.showSponsored = false
browser.newtabpage.activity-stream.showSponsoredTopSites = false

// Isolate cookies and cache to first-party domain
privacy.firstparty.isolate = true

// Disable password autofill to avoid clickjacking attacks
signon.autofillForms = false

Info

The privacy.resistFingerprinting setting is powerful but can change your reported timezone to UTC and alter font rendering. If this causes issues with specific sites, you may want to use an extension like CanvasBlocker for more targeted fingerprint protection instead.

Step 3: Essential Extensions

A small number of well-chosen extensions complement Firefox's built-in protections. Avoid installing too many, as each extension adds to your browser fingerprint.

  • uBlock Origin — the most effective and efficient content blocker. Enable additional filter lists for annoyances and privacy.
  • Multi-Account Containers — isolate sites into separate cookie jars to prevent cross-site tracking.
  • Skip Redirect — bypasses tracking redirect pages that capture your click data.
  • LocalCDN (or Decentraleyes) — serves common libraries locally instead of fetching from CDNs that track you.

Warning

Do NOT install multiple content blockers (e.g., uBlock Origin plus Adblock Plus). They interfere with each other, may increase your fingerprint, and reduce overall effectiveness. One well-configured blocker is better than three conflicting ones.

Step 4: Using user.js for Repeatable Configuration

If you want a comprehensive, repeatable privacy configuration, consider using a community-maintained user.js file. The Arkenfox user.js project provides a well-documented, regularly updated configuration file that you place in your Firefox profile directory. It handles hundreds of settings with sensible defaults and clear documentation for every choice.

bash
# Download the Arkenfox user.js into your Firefox profile
cd ~/.mozilla/firefox/your-profile-name/
curl -O https://raw.githubusercontent.com/arkenfox/user.js/master/user.js

# Create a user-overrides.js for your personal preferences
# Example: re-enable WebRTC if you need video calls
echo 'user_pref("media.peerconnection.enabled", true);' > user-overrides.js

# After updating, run the provided updater script
bash updater.sh

Testing Your Configuration

After applying changes, verify your browser's privacy posture using online testing tools. Visit sites like coveryourtracks.eff.org to check fingerprinting resistance, browserleaks.com to test for WebRTC, DNS, and canvas leaks, and dnsleaktest.com to confirm your DNS requests are not leaking outside your VPN or proxy.