PROJ010
WebGL Compression Format is Disabled, so the whole build downloads uncompressed
With Compression Format: Disabled, Unity ships the .wasm and .data files raw. On a web game platform, that number is your load time and a meaningful part of your bounce rate. Brotli compresses both substantially — code and asset data compress well — and browsers decompress it natively.
What the scan looks at
Player Settings ▸ Publishing Settings ▸ Compression Format, gated to the active WebGL build target. It’s the one Warning in the Project Settings domain: the target gate makes it near-zero-false-positive, and the impact is large and measurable.
Gzip is deliberately not flagged. Choosing Gzip over Brotli is a legitimate self-hosting trade-off — Gzip has a faster JavaScript decompression fallback for servers that can’t be configured to serve Content-Encoding correctly. Only Disabled is a pure loss.
Why it costs you
Load time on the web isn’t a performance nicety; it’s the funnel. Every extra megabyte is players who close the tab before the game starts. And unlike most size optimizations, this one requires no changes to your content whatsoever — it’s a setting plus a server header.
How to fix it by hand
- Player Settings ▸ Publishing Settings ▸ Compression Format → Brotli.
- Configure the server to serve those files with
Content-Encoding: br. This is the step people miss, and the symptom is a build that fails to load or falls back to a slow JS decompress path.- Itch.io, Unity Play and most game portals handle it for you.
- Self-hosting on nginx/Apache/Cloudflare: serve the
.brfiles with the right encoding header, and make sure the MIME types for.wasmare correct too.
- Uncheck “Decompression Fallback” once the headers are right — it exists for servers that can’t send them, and it costs both size and startup time.
- Rebuild and check the transfer size in the browser’s network panel, not the folder size on disk.
What PerfLint does about it
Pro exposes a Set to Brotli action on the finding, which writes the Player Setting for you. The server-side header is yours — nothing in the editor can do that part, and the finding says so rather than leaving you with a build that compresses and then won’t load.
Check your own project. The scan is free, runs entirely on your machine, and reports this rule with the exact assets that trip it — nothing is uploaded.
Last reviewed · All rules