Choose a version:
32% The original file has 267686 bytes (261.4k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 86596 bytes (84.6k, 32%).

After GZIP compression these minified files vary in size:
Microsoft
  38717 bytes (37.8k)
CDN
cdnjs
  30365 bytes (29.7k)
CDN
Google
  30281 bytes (29.6k)
CDN
gzip -6 (default)
  30175 bytes (29.5k)
local copy
unpkg
  30153 bytes (29.4k)
CDN
gzip -9
  30122 bytes (29.4k)
local copy
jsdelivr
  30118 bytes (29.4k)
CDN
7zip -mx=9 -tgzip
  29164 bytes (28.5k)
local copy
libdeflate -12
  29097 bytes (28.4k)
local copy
zultra
  29082 bytes (28.4k)
local copy
pigz -11 -n
  29079 bytes (28.4k)
local copy
kzip -s0 -rn -b2
  29062 bytes (28.4k)
local copy
Zopfli
  29047 bytes (28.4k)
local copy

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

You will automatically get the smallest jQuery 3.2.0 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 1071 bytes by using my jQuery 3.2.0 Zopfli version instead of the best available CDN (3.69% smaller than jsdelivr, 29047 vs. 30118 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 --i1000000 --mb8 --mls2048 --bsr23 --lazy --ohh

(found March 29, 2017)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 2048  --mls2048
block splitting recursion 23  --bsr23
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

Verify file integrity

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

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

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

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Microsoft 38717 bytes d4162c9d7e520a5de05001be6e741899 March 17, 2017 @ 18:07
cdnjs 30365 bytes d4162c9d7e520a5de05001be6e741899 March 16, 2017 @ 22:48
Google 30281 bytes d4162c9d7e520a5de05001be6e741899 March 21, 2017 @ 19:15
unpkg 30153 bytes d4162c9d7e520a5de05001be6e741899 March 22, 2017 @ 09:08
jsdelivr 30118 bytes d4162c9d7e520a5de05001be6e741899 March 16, 2017 @ 22:34

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
29047 bytes -2 bytes zopfli --i1000000 --mls2048 --bsr23 --lazy --ohh March 29, 2017 @ 16:07
29049 bytes -1 byte zopfli --i100000 --mls2048 --bsr23 --lazy --ohh March 29, 2017 @ 10:34
29050 bytes -1 byte zopfli --i100000 --mls8192 --bsr12 --lazy --ohh March 29, 2017 @ 10:34
29051 bytes -1 byte zopfli --i10000 --mls2048 --bsr23 --lazy --ohh March 28, 2017 @ 23:58
29052 bytes zopfli --i100 --mls2048 --bsr23 --lazy --ohh March 28, 2017 @ 22:54

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:51.

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, 100,000 or 1,000,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
29072 29072 29072 29073 29072 29069 29072 29073 29056 29058 29056 29058 29056 29057 29052
29067 29068 29067 29074 29071 29075 29064 29065 29069 29070 29054 29054 29053 29063 29071
29066 29071 29070 29063 29062 29074 29064 29065 29065 29064 29053 29053 29053 29053 29053
29063 29068 29068 29068 29065 29085 29077 29065 29069 29052 29064 29055 29052 29053 29065
29070 29075 29070 29063 29064 29064 29082 29065 29056 29055 29053 29053 29052 29053 29053
29067 29069 29070 29065 29064 29078 29064 29065 29069 29065 29052 29052 29053 29052 29076
29071 29068 29067 29068 29066 29068 29077 29064 29069 29053 29053 29053 29053 29061 29052
29068 29068 29069 29071 29084 29069 29065 29064 29062 29052 29052 29053 29052 29052 29052
29067 29067 29067 29064 29064 29065 29075 29065 29061 29052 29053 29053 29050 29052 29052
29082 29069 29068 29069 29066 29065 29074 29063 29067 29063 29052 29055 29052 29053 29054
29070 29068 29069 29063 29062 29064 29063 29065 29072 29066 29054 29054 29053 29053 29065
29069 29068 29069 29064 29062 29063 29074 29065 29052 29053 29053 29053 29052 29052 29067
29069 29065 29068 29064 29064 29063 29065 29065 29071 29064 29052 29055 29052 29053 29067
29068 29069 29070 29066 29064 29064 29074 29063 29062 29065 29048 29055 29052 29052 29052
29069 29069 29069 29072 29065 29064 29075 29064 29062 29063 29053 29055 29052 29052 29053
29069 29068 29068 29070 29066 29064 29077 29064 29062 29063 29053 29053 29053 29053 29065
29071 29080 29067 29061 29062 29063 29074 29063 29069 29053 29053 29055 29052 29053 29065
29078 29071 29066 29063 29064 29064 29074 29065 29067 29063 29053 29055 29053 29053 29065
29072 29069 29067 29066 29063 29063 29075 29063 29052 29063 29053 29056 29053 29053 29065
29066 29070 29069 29074 29065 29062 29073 29063 29052 29063 29047 29055 29052 29053 29066
29068 29070 29068 29067 29063 29063 29074 29065 29065 29063 29052 29053 29053 29053 29065
29069 29068 29074 29064 29064 29066 29063 29065 29071 29063 29052 29055 29053 29052 29066
29069 29069 29070 29067 29066 29071 29077 29073 29052 29053 29053 29053 29052 29061 29048

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 29052 bytes 100%
1,000 29052 bytes 100%
10,000 29051 bytes -1 byte 100%
100,000 29049 bytes -2 bytes 1.16%
1,000,000 29047 bytes -2 bytes 0.87%
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
29161 bytes +114 bytes (+0.39%) +99 bytes
29162 bytes +115 bytes (+0.40%) +100 bytes
29062 bytes +15 bytes (+0.05%)
29076 bytes +29 bytes (+0.10%) +14 bytes
29080 bytes +33 bytes (+0.11%) +18 bytes
29131 bytes +84 bytes (+0.29%) +69 bytes
29167 bytes +120 bytes (+0.41%) +105 bytes
29213 bytes +166 bytes (+0.57%) +151 bytes
29241 bytes +194 bytes (+0.67%) +179 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 24127 bytes -4920 bytes (-16.94%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 24656 bytes -4391 bytes (-15.12%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 26120 bytes -2927 bytes (-10.08%)
Brotli (Wikipedia) brotli brotli -q 11 27246 bytes -1801 bytes (-6.20%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 27539 bytes -1508 bytes (-5.19%)
LZMA2 (Wikipedia) xz xz -9 28304 bytes -743 bytes (-2.56%)
Zstandard (Wikipedia) zstd zstd -19 28860 bytes -187 bytes (-0.64%)

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.