Updated 2026-10-27 ยท All guides

How to fix Minecraft server lag

"The server is lagging" can mean three different problems, and the fix for one does nothing for the others. The first job is to work out which kind you have.

Three kinds of lag

KindWhat players noticeWhere the problem is
Server lag (low TPS)Everything slows down for everyone: mobs move in slow motion, blocks take a moment to break, furnaces are slow, the day lasts longer.The server's CPU can't keep up.
Network lag (high ping)Rubber-banding, delayed hits, but the world itself runs at normal speed. Often only some players are affected.The connection between a player and the server, often your upload speed.
Client lag (low FPS)Choppy, stuttering picture for one player only.That player's own PC. Lower their render distance or add Sodium.

The quickest test: if you're on the server PC and join with localhost, network lag disappears. If it's still slow for you, it's server lag.

Measure it: TPS and MSPT

Minecraft runs in ticks. A healthy server does 20 ticks per second (TPS), which leaves 50 milliseconds for each one. MSPT is how many milliseconds a tick actually takes.

On Paper and Purpur, type /tps and /mspt. On Vanilla 1.20.3 and newer, /tick query shows the same numbers. On any version, the spark plugin or mod gives you /spark tps.

Find the cause with spark

Guessing at lag wastes a lot of time. spark is a free profiler for Paper, Purpur and Fabric (and it's built into newer Paper versions). Run /spark profiler start, play normally for a few minutes while the lag happens, then run /spark profiler stop. It gives you a link to a report that shows exactly what the server spent its time on.

You don't need to understand all of it. Open the tree under the main "Server thread" and follow the biggest percentages down. The usual suspects have recognisable names:

Fix 1: lower view and simulation distance

This is the single most effective change. In server.properties:

Something like view distance 8 and simulation distance 6 is a good target for a home PC with a handful of players. Players who want to see further can install a client mod like Distant Horizons or Bobby, which shows distant terrain without the server doing the work.

Fix 2: pre-generate the world

Generating new chunks is one of the most expensive things a server does. When several players fly with elytra in different directions, the server has to build the world around all of them in real time. Pre-generating does that work in advance, while nobody is playing.

Install the Chunky plugin (Paper/Purpur) or mod (Fabric), set a border, and let it run:

/worldborder set 10000
/chunky radius 5000
/chunky start

A 5,000-block radius takes a few hours and a couple of gigabytes of disk. Run it overnight. The world border stops players going beyond the pre-generated area.

Fix 3: use Paper or performance mods

If you're on Vanilla, switching to Paper or Purpur is a big, free improvement, and your world carries over. Make a backup, swap the server jar and start it up. If you play modded, add these Fabric mods to the server, which change nothing about gameplay:

See Paper vs Fabric vs Vanilla if you're not sure which server software suits you.

Fix 4: deal with too many entities

A single farm with hundreds of animals, a chicken farm nobody collects from, or a pile of dropped items can bring a server to its knees. Ways to find and fix it:

Fix 5: check the PC itself

Fix 6: network lag

If TPS is a solid 20 but players still rubber-band:

A quick checklist

  1. Is MSPT over 50? If not, it isn't server lag.
  2. Run a spark profile while it lags.
  3. Lower simulation distance to 6โ€“8 and view distance to 8โ€“10.
  4. Pre-generate the world and set a world border.
  5. Switch to Paper or add Lithium.
  6. Look for a farm or item pile with far too many entities.

HostCraft's Performance tab graphs the server's CPU and memory use over time, so you can see whether lag lines up with players joining, a backup running or the server running out of memory.