Choose a version:
44% The original file has 160712 bytes (156.9k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 70843 bytes (69.2k, 44%).

After GZIP compression these minified files vary in size:
Microsoft
  30381 bytes (29.7k)
CDN
Boot
  27899 bytes (27.2k)
CDN
Baidu
  24305 bytes (23.7k)
CDN
cdnjs
  24210 bytes (23.6k)
CDN
gzip -6 (default)
  24070 bytes (23.5k)
local copy
Google
  24050 bytes (23.5k)
CDN
gzip -9
  24021 bytes (23.5k)
local copy
7zip -mx=9 -tgzip
  23312 bytes (22.8k)
local copy
libdeflate -12
  23297 bytes (22.8k)
local copy
kzip -s0 -rn -b3
  23295 bytes (22.7k)
local copy
zultra
  23284 bytes (22.7k)
local copy
Yandex
  23246 bytes (22.7k)
CDN
pigz -11 -n
  23241 bytes (22.7k)
local copy
Zopfli
  23217 bytes (22.7k)
local copy
Zopfli (defluff)
  23216 bytes (22.7k)
local copy

perma-link to the smallest file on my server:
http://minime.stephan-brumme.com/files/jquery/jquery-1.4.1.min.js (or via HTTPS)

You will automatically get the smallest jQuery 1.4.1 file, ETag caching is available and
if your browser doesn't support GZIP decompression then the uncompressed version will be sent.

Currently best Zopfli settings

Save 29 bytes by using my jQuery 1.4.1 Zopfli version instead of the best available CDN (0.12% smaller than Yandex, 23217 vs. 23246 bytes):
You can use my super-compressed files for whatever purpose you like as long as you respect the library's original license agreement.
There are no restrictions from my side - but please avoid hot-linking if you run a high-traffic website.

These command-line settings yielded the best compression ratio so far (Linux version of zopfli-krzymod):
zopfli --i100000 --mb8 --mls2 --bsr6 --lazy --ohh

(found September 23, 2015)
Description Value Parameter
iterations 100000  --i100000
maximum blocks 8  --mb8
maximum length score 2  --mls2
block splitting recursion 6  --bsr6
lazy matching in LZ77 yes  --lazy
optimized Huffman headers yes  --ohh
initial random W for iterations 1  --rw1
initial random Z for iterations 2  --rz2

Even Smaller Files Thanks To Defluff

Zopfli's output can be further optimized by the defluff tool.
In this particular case, defluff saves 1 more byte (23216 bytes).

Verify file integrity

After decompression, my uncompressed files are identical to the original ones:

MD5:
curl --silent --compressed https://code.jquery.com/jquery-1.4.1.min.js --location | md5sum
9eb33df93b21325142088527103882d2  -
curl --silent --compressed https://minime.stephan-brumme.com/files/jquery/jquery-1.4.1.min.zopfli.js.gz | md5sum
9eb33df93b21325142088527103882d2  -

SHA1:
curl --silent --compressed https://code.jquery.com/jquery-1.4.1.min.js --location | sha1sum
bff995d3a845903f281b0b51fea421059459a808  -
curl --silent --compressed https://minime.stephan-brumme.com/files/jquery/jquery-1.4.1.min.zopfli.js.gz | sha1sum
bff995d3a845903f281b0b51fea421059459a808  -

These CDNs send you the original file:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 27899 bytes 9eb33df93b21325142088527103882d2 March 18, 2015 @ 09:41
cdnjs 24210 bytes 9eb33df93b21325142088527103882d2 (invalid)
Google 24050 bytes 9eb33df93b21325142088527103882d2 (invalid)
Yandex 23246 bytes 9eb33df93b21325142088527103882d2 June 15, 2015 @ 21:17

And some CDNs send you a different file:
CDN Size (compressed) MD5 (uncompressed) Comment / Diff Timestamp
Microsoft 30381 bytes 302d9c628df29e7ac40fc9f283d4545c < /*!
> /*
< * http://jquery.com/
< *
< * Copyright 2010, John Resig
< * Dual licensed under the MIT or GPL Version 2 licenses.
< * http://jquery.org/license
> * Copyright 2010, John Resig, http://jquery.com/
> * Distributed in whole under the terms of the MIT license
> * http://www.opensource.org/licenses/mit-license.php
[...]
(invalid)
Baidu 24305 bytes 0d40348fd5f1abc6a760bd35a563be11 only whitespaces differ January 7, 2015 @ 10:16

Note: only the MD5 hashes are shown to keep things simple.

Other Versions

Available jQuery versions at minime.stephan-brumme.com:

3.6.1, 3.6.0,
3.5.1, 3.5.0,
3.4.1, 3.4.0,
3.3.1, 3.3.0,
3.2.1, 3.2.0,
3.1.1, 3.1.0, 3.0.0,
2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0,
2.1.4, 2.1.3, 2.1.2, 2.1.1, 2.1.0,
2.0.3, 2.0.2, 2.0.1, 2.0.0,
1.12.4, 1.12.3, 1.12.2, 1.12.1, 1.12.0,
1.11.3, 1.11.2, 1.11.1, 1.11.0,
1.10.2, 1.10.1, 1.10.0,
1.9.1, 1.9.0,
1.8.3, 1.8.2, 1.8.1, 1.8.0,
1.7.2, 1.7.1, 1.7.0,
1.6.4, 1.6.3, 1.6.2, 1.6.1, 1.6,
1.5.2, 1.5.1, 1.5,
1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4,
1.3.2, 1.3.1, 1.3,
1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2,
1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1,
1.0.4, 1.0.3, 1.0.2, 1.0.1, 1.0

The project site contains an overview how well these versions were compressed.
Other interesting projects are AngularJS, BackboneJS, Bootstrap, D3, Dojo, Ember, Knockout, lodash, React, Socket.IO, ThreeJS, UnderscoreJS and Vue.

Changelog

Best Zopfli parameters so far:
Size Improvement Parameters Found
23217 bytes -2 bytes zopfli --i100000 --mls2 --bsr6 --lazy --ohh September 23, 2015 @ 15:23
23219 bytes -2 bytes zopfli --i10000 --mls2 --bsr6 --lazy --ohh September 23, 2015 @ 14:32
23221 bytes -5 bytes zopfli --i1000 --mls2 --bsr6 --lazy --ohh September 23, 2015 @ 14:06
23226 bytes -1 byte zopfli --i100000 --mls4096 --bsr10 --lazy --ohh September 2, 2015 @ 01:18
23227 bytes -5 bytes zopfli --i10000 --mls4096 --bsr10 --lazy --ohh September 1, 2015 @ 21:27
23232 bytes -1 byte zopfli --i1000 --mls4096 --bsr10 --lazy --ohh September 1, 2015 @ 20:39
23233 bytes zopfli --i100 --mls4096 --bsr10 --lazy --ohh September 1, 2015 @ 20:24

If there are multiple parameter sets yielding the same compressed size, only the first one found is shown.

Most recent activity on July 20, 2020 @ 12:48.

Heatmaps

This Zopfli heatmap visualizes how compression changes when modifying the --bsr and --mls parameter.
Cell's contents is the best filesize achieved (in bytes, hover with mouse over cells to see number of iterations).

Good parameters are green, bad are red. The best and worst are bold as well.
The brightness of the blue background color indicates how many iterations were processed:
10,000 or 100,000.
bsr \ mls
2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
bsr \ mls
2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
23239 23240 23239 23239 23239 23236 23239 23239 23237 23239 23239 23243 23239 23240 23247
23230 23229 23226 23226 23227 23228 23230 23239 23235 23236 23235 23238 23235 23234 23243
23217 23230 23238 23226 23239 23239 23238 23235 23238 23235 23235 23240 23241 23236 23234
23238 23237 23226 23226 23230 23229 23227 23228 23231 23239 23239 23237 23227 23236 23227
23227 23227 23225 23226 23226 23240 23233 23236 23239 23239 23235 23242 23244 23247 23247
23227 23226 23238 23238 23238 23236 23238 23238 23238 23235 23234 23240 23241 23237 23236
23237 23237 23232 23237 23241 23240 23236 23240 23235 23242 23235 23226 23232 23233 23234
23244 23230 23230 23226 23227 23229 23232 23229 23238 23235 23239 23234 23235 23236 23239
23227 23226 23226 23238 23226 23226 23239 23228 23238 23235 23236 23240 23231 23237 23242
23226 23227 23232 23226 23239 23226 23229 23229 23238 23236 23236 23239 23241 23236 23239
23239 23237 23226 23236 23237 23238 23231 23235 23235 23236 23236 23232 23240 23246 23232
23238 23237 23236 23239 23228 23228 23238 23228 23235 23235 23239 23230 23232 23236 23240
23227 23226 23226 23226 23237 23226 23238 23230 23238 23235 23235 23240 23241 23246 23232
23237 23236 23226 23226 23238 23240 23229 23228 23238 23235 23235 23240 23241 23243 23234
23238 23236 23231 23225 23226 23226 23234 23226 23230 23235 23235 23231 23241 23237 23240
23238 23238 23231 23237 23229 23228 23228 23230 23237 23235 23235 23240 23240 23236 23238
23230 23229 23229 23226 23227 23226 23239 23227 23238 23235 23235 23231 23240 23247 23245
23226 23227 23226 23226 23226 23235 23226 23227 23235 23235 23235 23232 23232 23234 23239
23239 23238 23230 23225 23228 23229 23228 23227 23237 23235 23236 23240 23241 23236 23240
23237 23238 23236 23225 23237 23237 23228 23227 23239 23236 23236 23240 23242 23237 23234
23226 23227 23226 23226 23227 23226 23229 23229 23239 23236 23236 23231 23241 23240 23234
23227 23226 23226 23226 23226 23226 23228 23228 23238 23235 23236 23239 23241 23237 23231
23232 23226 23226 23226 23227 23226 23232 23229 23237 23235 23235 23231 23232 23236 23235

Due to the Monte Carlo design of my search algorithm, not all parameters have reached the same number of iterations yet:
Iterations Min. Bytes Reduction Coverage
100 23226 bytes 100%
1,000 23221 bytes -5 bytes 100%
10,000 23219 bytes -2 bytes 100%
100,000 23217 bytes -2 bytes 0.58%
1,000,000
10,000,000

KZIP has far less options available for tuning/optimization. I only played around with the number of blocks (parameter -n):
Blocks Min. Bytes Compared To Best Zopfli Compared To Best KZIP
23304 bytes +87 bytes (+0.37%) +9 bytes
23305 bytes +88 bytes (+0.38%) +10 bytes
23328 bytes +111 bytes (+0.48%) +33 bytes
23295 bytes +78 bytes (+0.34%)
23302 bytes +85 bytes (+0.37%) +7 bytes
23342 bytes +125 bytes (+0.54%) +47 bytes
23339 bytes +122 bytes (+0.53%) +44 bytes
23367 bytes +150 bytes (+0.65%) +72 bytes
23387 bytes +170 bytes (+0.73%) +92 bytes

Non-DEFLATE Algorithms

Archivers based on completely different compression algorithms often produce superior results.
Unfortunately, browsers only support gzip compression at the moment.
However, support for Brotli is constantly growing - but your browser doesn't support it.
Algorithm Program Parameters Size Compared To Best Zopfli
ZPAQ (Wikipedia) zpaq zpaq -method 69 19369 bytes -3848 bytes (-16.57%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 19726 bytes -3491 bytes (-15.04%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 20433 bytes -2784 bytes (-11.99%)
Brotli (Wikipedia) brotli brotli -q 11 21538 bytes -1679 bytes (-7.23%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 22230 bytes -987 bytes (-4.25%)
LZMA2 (Wikipedia) xz xz -9 22624 bytes -593 bytes (-2.55%)
Zstandard (Wikipedia) zstd zstd -19 22964 bytes -253 bytes (-1.09%)

Detailled Analysis

I wrote a DEFLATE decoder in Javascript. Click the button below to start a client-side analysis of the smallest gzipped files (may take a second):


Notes: pigz is a fast open source multi-threaded implementation of gzip written by one of the original authors of gzip.
However, when using compression level 11, pigz actually switches to the slower Zopfli algorithm and isn't multi-threaded anymore.
KrzyMOD's extensions to Zopfli offer the highest level of configuration and is therefore used for my brute-force search.
Ken Silverman wrote the closed-source KZIP compression program and Jonathon Fowler ported it to Linux.
Defluff was created by Joachim Henke; DeflOpt is a tool by Ben Jos Walbeehm.

website made by Stephan Brumme in 2015 and still improving in 2024.
all timestamps are displayed in central european time. see my changelog.
no flash, not even images or external css files - and everything squeezed into a single html file.
which was handsomely compressed before releasing it into the wild internet - obviously.

please visit my homepage and my blog, too.
email: minime (at) stephan-brumme.com

All trademarks are property of their respective owners. You know, the boring legal stuff.