Server lag is rarely one problem. It is usually three small ones stacking up. This checklist runs from the biggest wins to the smallest, so you can stop as soon as things feel right.
First: tell lag apart from latency
Two different problems get called lag. If your ping is high but the world behaves normally, that is latency and it is about distance to the server. If blocks reappear and mobs stutter for everyone at once, that is server lag and it is about TPS. The fixes are completely different, so check which one you have before changing anything.
Latency is solved by picking a closer location. Our latency meter on server locations measures your ping to each of our sites.
Biggest wins first
1. Lower view distance
This is the single most effective setting. Every step down cuts loaded chunks quadratically. Going from 10 to 6 in server.properties often doubles your TPS on a busy server, and most players will not notice.
2. Use Paper or Purpur
The vanilla server jar is not built for performance. Paper adds a long list of optimisations and is a drop-in replacement. Purpur goes further still. Switching costs you nothing and usually gives an immediate improvement.
3. Cap entities
Farms with hundreds of mobs are a classic cause. Set sensible mob caps and limit how many items can sit on the ground. In Paper you can also merge nearby dropped items, which helps a lot on servers with active farms.
4. Pre-generate your world
Generating new chunks is expensive. When a player runs into unexplored terrain, the server has to build it on the spot. Pre-generating the area you expect people to use removes that cost entirely.
Smaller adjustments
- Disable plugins you no longer use, and check for updates on the ones you keep
- Restart the server daily so memory usage stays predictable
- Keep the world border reasonable rather than infinite
- Reduce the frequency of automatic saves if you save very often
When it is simply too little memory
If TPS is fine right after a restart and degrades over hours, you are likely short on memory rather than misconfigured. How much RAM your Minecraft server needs helps you size it.
Frequently asked questions
5. Measure before you guess: Spark
Everything above is a sensible default. If the server still lags, stop guessing and measure. Spark is the profiler Paper itself recommends and it is a plugin like any other: drop the jar in plugins, restart, and run /spark profiler start while the lag is happening. Let it run for about a minute, then /spark profiler stop. The link it prints opens a report that shows which plugin, mod or game mechanic is eating your tick. Nine times out of ten it is entities in one place, a hopper sorting system, or chunk generation because someone is exploring.
Two more commands worth knowing: /spark tps shows TPS and MSPT (milliseconds per tick; under 50 is healthy), and /spark health shows memory and garbage collection at a glance. If GC takes more than about ten percent of the time, the memory is either too tight or the Java flags are wrong.
6. Aikar flags
The Aikar flags are a set of Java options tuned for Minecraft's garbage collector. They make GC pauses shorter and more predictable. On HostValues they are already part of the default startup for Paper and Purpur, so you do not have to add them. If you run a modpack egg or a custom startup, check the Startup tab for -XX:+UseG1GC; if it is missing, ask support to enable the optimised startup.
When more RAM helps, and when it does not
More memory helps when the server is actually short of it: usage sits above 90 percent, or the console shows OutOfMemoryError. It does not help when TPS is low but memory is fine. That is a CPU problem, and the fix is in the steps above, not in a bigger plan. Giving a server far more memory than it uses can even make things worse, because the garbage collector then waits longer and cleans more at once.
Java 25 and the 26.x releases
Since Minecraft 26.1 the server needs Java 25. A wrong Java version does not cause lag, it causes a server that does not start at all, but it is worth checking after any version change. See which Java version your server needs.
What is a healthy TPS?
20 is the maximum. Above 19 feels perfect, below 15 is noticeable to everyone.
Does switching to Paper break my world?
No. Paper reads the same world format. Make a backup first anyway.
Do more plugins always mean more lag?
Not necessarily. One badly written plugin does more damage than twenty well-written ones.