Stockfish NNUE is the neural-network evaluation inside the Stockfish chess engine. NNUE stands for efficiently updatable neural network: a network small and fast enough to run on an ordinary CPU, because when one move is played it updates its numbers instead of recomputing the whole position. Stockfish switched to NNUE in Stockfish 12 (September 2020). The project's own release post says the concept "was first introduced in shogi, and ported to Stockfish afterward," and that against Stockfish 11 the new version "will typically win at least ten times more game pairs than it loses" (Stockfish 12 announcement). Every Stockfish since then is an NNUE engine. What changes from version to version is the network, the search and the hardware support.
Which Stockfish is Chess Move Finder running?
Chess Move Finder runs Stockfish 17.1 lite, single-threaded, compiled to WebAssembly, inside your browser. The analysis board and Game Review run that engine on your own device, and the coach builds on the same analysis.
"Lite" is a specific build, not a nickname. The engine reports its network on startup, and the difference from the full 17.1 build is large:
| Build | Network(s) loaded | Download size | Threads |
|---|---|---|---|
| 17.1 lite single (ours) | nn-9067e33176e8, 11 MiB, 256-wide hidden layer | about 7 MB | 1 |
| 17.1 full | nn-1c0000000000, 133 MiB, 3072-wide, plus nn-37f18f62d772, 6 MiB small net | about 75 MB | Multiple, needs cross-origin isolation |
The stockfish npm package that ships these builds describes the lite engine as "much smaller (≈7MB) and quite a bit weaker," recommended for mobile browsers. That is the trade we made: the page loads fast on a phone and runs anywhere, and you give up some strength compared with the full network on a desktop. The package publishes no Elo figure for the gap, so we do not quote one. For checking your own games and finding tactics, the lite engine is far stronger than any human; for opening theory at the very top level or long engine-vs-engine matches, use the newest full desktop release.
Stockfish version timeline
Every date and headline below comes from the official release post on stockfishchess.org, as of October 2026. Elo gains are the project's own self-play figures against the previous release.
| Version | Released | Headline change |
|---|---|---|
| Stockfish 12 | 2 Sep 2020 | NNUE evaluation introduced |
| Stockfish 13 | 19 Feb 2021 | Release |
| Stockfish 14 | 2 Jul 2021 | Release |
| Stockfish 14.1 | 28 Oct 2021 | Point release |
| Stockfish 15 | 18 Apr 2022 | Release |
| Stockfish 15.1 | 4 Dec 2022 | Point release |
| Stockfish 16 | 30 Jun 2023 | SFNNv6 network architecture; up to +50 Elo vs 15 |
| Stockfish 16.1 | 24 Feb 2024 | Adds a secondary network |
| Stockfish 17 | 6 Sep 2024 | Better mate and tablebase lines, NUMA speedups; up to +46 Elo vs 16 |
| Stockfish 17.1 | 30 Mar 2025 | speedtest command, tablebase fixes; up to +20 Elo vs 17 |
| Stockfish 18 | 31 Jan 2026 | SFNNv10 network with "Threat Inputs"; up to +46 Elo vs 17 |
| Stockfish 19 | 5 Sep 2026 | SFNNv16 network, pawn-pair features, universal binaries, secondary net retired; up to +44 Elo vs 18 |
"Release" means we list no headline because we only cite what each post says up front; open the link for the full change list. The secondary network added in 16.1 is the one the Stockfish 19 post says "is no longer used."
Stockfish 17 vs 18 (and 19)
The jump that matters for most users is in the network. Stockfish 18's input layer adds Threat Inputs, features that tell the network which pieces are attacked, and the project reports "an Elo gain of up to 46 points" against Stockfish 17 (Stockfish 18 post). Stockfish 19 replaces that with SFNNv16, removes redundant threat features to shrink the binary, adds pawn-pair features, and claims up to 44 more Elo against 18. It also ships one universal binary that picks the right CPU code itself, so you no longer choose between AVX2 and AVX-512 downloads.
So the latest Stockfish version is Stockfish 19, released 5 September 2026. Version 17.1, which we run, is two major releases behind.
Our measurement: Stockfish 17.1 lite at fixed depths
To show what the lite engine actually does, we ran the exact engine file the site uses on five positions at depths 12, 16 and 20.
| Position | Depth 12 | Depth 16 | Depth 20 | Best move (all depths) | Nodes at depth 20 | Time at depth 20 |
|---|---|---|---|---|---|---|
| Start position | +0.40 | +0.45 | +0.38 | 1.e4 | 392,411 | 0.6–0.7 s |
| Italian Game after 3.Bc4 (Black to move) | +0.14 | +0.26 | +0.27 | 3...Nf6 | 467,392 | 0.7–0.8 s |
| Knight fork, 1.Ne7+ | +4.08 | +4.35 | +4.75 | 1.Ne7+ | 506,027 | 0.55–0.6 s |
| Fork trick after 5...d5 | −0.17 | 0.00 | −0.07 | 6.Bd3 | 506,873 | 0.76–0.8 s |
| King and pawn vs king, opposition | +0.22 | +0.15 | +0.08 | 1.Kd3 | 127,460 | 0.1–0.16 s |
Method: node_modules/stockfish/src/stockfish-17.1-lite-single-03e3232.js under Node 22, Threads 1, Hash 16 MB, ucinewgame and go depth N for each run, on one 2.1 GHz Xeon core. Every FEN was validated with chess.js. Single-threaded search is deterministic, so the evaluations, best moves and node counts reproduce exactly; the times are the range over two runs and will differ on your machine. The positions are linked here: start, Italian, knight fork, fork trick, king and pawn.
Three things to take from it:
- The best move was stable. In all five positions the engine picked the same move at depth 12 as at depth 20, in under a second.
- Numbers drift, verdicts don't. The start position moved between +0.38 and +0.45; the fork trick swung between −0.17 and 0.00. Read differences under about a quarter of a pawn as "equal," as explained in how to read engine evaluations.
- A small plus can still be a draw. The king-and-pawn ending is a textbook draw because Black holds the opposition, yet depth 20 still shows +0.08. The number is shrinking toward zero, which is the real signal. Endgame tablebases would show it as an exact draw.
Is the version difference visible in your games?
Mostly not. Newer versions win more engine-vs-engine games, which shows up in very balanced, deep positions. Your Game Review labels depend on swings in winning chances, and a blunder that drops a piece is a blunder to every Stockfish since version 12. Where the version and network matter is close calls: a move judged "Good" by one engine and "Inaccuracy" by another. See blunder, mistake and inaccuracy and chess accuracy for how those thresholds work, and how strong is Stockfish and Stockfish vs Leela for the wider picture.
Frequently asked questions
What does NNUE stand for?
Efficiently updatable neural network. The name describes its trick: after each move it updates only the parts of its input that changed, so it can evaluate millions of positions on a normal CPU. Stockfish has used it since version 12.
What is the latest Stockfish version?
Stockfish 19, released on 5 September 2026 according to the official Stockfish blog, as of October 2026. It follows Stockfish 18 (31 January 2026) and claims up to 44 Elo over it.
Is Stockfish 17.1 still strong?
Yes. It is only two releases behind, and the official posts put those two releases at up to 46 and up to 44 Elo of self-play gains on top of 17. Engine-vs-engine that is a clear gap; against a human, even the lite build finds every tactic in a normal game. Use the newest desktop build for deep preparation, and the browser engine for reviewing games.
What is the difference between Stockfish and Stockfish NNUE?
Today there is none. NNUE replaced the evaluation in Stockfish 12, and every release since, including the 17.1 build on this site, is an NNUE engine.
Test it yourself: paste a position into the analysis board, or run a full Game Review. For more on reading engine output, see the chess move calculator guide and how to analyze a chess game.