Browser Profiles and Fingerprint Settings Accounts · Q&A

Why Font Fingerprints Stay Stable or Change

Understand font detection, profile-stable protection, and the visible-font allowlist when test hashes change, characters disappear, or webpages use fallback fonts.

Updated Aug 24, 2026

A font fingerprint is not a fixed identifier volunteered by the browser. A website can try a set of fonts, compare text widths, glyphs, and fallback results, then calculate a digest from those observations. The displayed “font fingerprint” therefore depends on which fonts are tested, how they are measured, and whether other fields are included.

MaskPilot enables Font information by default. The same profile keeps a stable protection seed across launches, and font protection results are derived from that profile identity. The goal is a reproducible profile, not a completely new result on every page refresh.

An identical font digest is not necessarily a problem

When the profile, browser version, font settings, and test method remain unchanged, the same test page returning the same digest is normally consistent with a stable profile environment. This does not mean the site received the complete local font list, nor does it require different test sites to return the same value.

A test page’s “unique” or “non-unique” label normally compares the current result with its own sample. The sample population, update time, and combined fields can all affect that label. It cannot prove that the profile is anonymous, unlinkable, or misconfigured.

Changes that may alter the result

A font test result may change in these situations:

  1. The test site updates its candidate fonts, measurement text, glyph range, or digest algorithm.
  2. The profile’s browser version changes, updating font selection or rendering behavior.
  3. A different profile or profile copy is launched. Copying creates an independent profile identity and protection seed.
  4. Environment randomization identity is edited or regenerated. Do not regenerate it unless necessary.
  5. Font information or Fonts visible to websites is changed and the profile is fully relaunched.
  6. Operating-system fonts, language font packs, or font resources actually used by the website change.
  7. The page reports a combined fingerprint instead of an isolated font list or font-measurement field.

The stable boundary is the profile’s protection identity, not a promise that every website digest will remain unchanged forever.

Font information and the visible-font allowlist

Font information prevents websites from directly identifying local fonts and is enabled by default. Fonts visible to websites is an advanced allowlist. Leave it empty to use the recommended settings. Add font names only for a confirmed workflow requirement, separating multiple names with commas.

Changing the allowlist may change the set of fonts observable to websites. Do not add a long list merely to match a test page, and do not copy every font installed on one computer into multiple profiles.

Web fonts downloaded by a website are a different source from locally installed fonts. Fallback text, missing characters, or layout changes may involve local-font visibility, but they may also come from the website’s font resources, CSS, or network loading. A visual difference alone is not a reason to disable font protection.

Font protection does not control canvas, WebGL, audio, screen, language, or network exit. See why the canvas fingerprint changes for the boundary of canvas results.

  1. Confirm that every launch uses the same MaskPilot profile, and record the browser version.
  2. Fully close the profile and confirm that its browser process has exited.
  3. Edit the profile and record the Font information state and whether Fonts visible to websites is empty. Do not change either before recording the baseline.
  4. Confirm that Environment randomization identity was not recently regenerated. There is no need to view, record, or send its value.
  5. Relaunch the profile, repeat the same page test several times, and compare only the font list, font measurement, or font digest fields.
  6. Do not install fonts, switch browser versions, change extensions, or replace several fingerprint settings during the same investigation.
  7. If only one page renders incorrectly, use a test profile to determine whether it relies on a local font or a Web font downloaded by the website.
  8. Change one variable at a time, fully relaunch, retest, and keep a record of the previous setting.

Fingerprint settings are read when the browser process starts. Refreshing a page does not apply a saved change. See why profile settings did not apply for the complete lifecycle.

When to use the font allowlist

Consider adding a font to the allowlist only when the target workflow explicitly depends on a local font and a test profile confirms that the font is not visible. Keep the list minimal, use accurate names, and verify both the target page and the font test after a full relaunch.

If text renders correctly and only a test site reports “unique,” do not change the allowlist merely to alter that label. See configure a stable browser fingerprint for a complete baseline. Before comparing a profile copy, review the difference between sharing and copying a profile.

Before contacting support

Provide the affected page’s domain, the incorrect text or exact test field, browser version, whether this was the original profile or a copy, the Font information state, whether the allowlist is empty, whether the environment identity was recently regenerated, and the retest time after a full relaunch. Do not provide the environment identity value. Redact website accounts, cookies, tokens, and other personal data from screenshots.

W3C’s fonts and privacy note describes detecting fonts through changes in text width and explains why unusual local fonts can increase identifiability. The W3C browser fingerprinting mitigation guidance classifies font enumeration as an active fingerprinting surface and recommends exposing only the information needed for functionality.