How to Fix Lag on a Minecraft Server (2026)
Complete guide to diagnosing and fixing Minecraft server lag, TPS optimisation, entity management, chunk loading, JVM tuning and network latency fixes.
Understanding Server Lag vs Client Lag
Before applying any minecraft server lag fix, you need to know what kind of lag you are dealing with. Server lag (low TPS) affects all players equally, blocks reappear after breaking, mobs teleport, redstone slows down. Client lag (low FPS) only affects one player and is fixed on their machine, not the server.
Run /spark tps or /tps to check the server's ticks per second. A healthy server runs at 20 TPS. Anything below 18 is noticeable; below 15 is unplayable.
Step 1: Profile with Spark
Install Spark if you have not already. Run /spark profiler start, wait 5 minutes during peak player count, then /spark profiler stop. The generated report shows exactly where your server spends CPU time. Look at the "Server Thread" breakdown, the top entries are your priorities.
Step 2: Reduce Entity Count
Entities are almost always the number one cause of Minecraft server lag. Every loaded entity, mobs, dropped items, armor stands, paintings, is processed every tick.
- Set
spawn-limitsinpaper-world-defaults.ymlto reasonable values:monsters: 50,animals: 8,water-animals: 3,ambient: 1. - Enable
per-player-mob-spawns: true. - Set
despawn-ranges.soft: 28anddespawn-ranges.hard: 96to aggressively despawn distant mobs. - Use
entity-activation-rangesettings to skip AI ticks for mobs far from players. - Clear ground items with
alt-item-despawn-rate, for example, set cobblestone and dirt to despawn in 300 ticks instead of 6000.
Step 3: Optimise Chunk Loading
Lower view-distance to 8 and simulation-distance to 6 in server.properties. Paper handles sending extra chunks to clients via send-full-pos and async chunk loading, so a lower simulation distance does not feel as restrictive as you might expect.
Pre-generate your world using Chunky to avoid the massive lag spike that comes with generating chunks during gameplay. Run /chunky radius 5000 then /chunky start while no players are online.
Step 4: Tune JVM Flags
Use Aikar's recommended G1GC flags (see Can't Keep Up fix guide). Make sure -Xms equals -Xmx so the JVM does not waste time resizing the heap. Use Java 21 for Minecraft 1.21+.
Step 5: Audit Plugins
Disable plugins one by one and watch TPS. Spark's profiler pinpoints hot methods, but sometimes a plugin's impact only shows during specific events (combat, world generation, etc.). Common culprits:
- Custom enchant plugins that fire events on every hit
- Hologram plugins that spawn hundreds of armor stands
- Logging plugins that write to disk synchronously
- Economy plugins with unindexed database queries
Step 6: Network Latency
If TPS is 20 but players still feel lag, the issue is network latency. This minecraft server lag fix is about routing, not the server itself:
- Host your server geographically close to your player base.
- Use a TCP-optimised host with low-latency networking.
- Enable
tcp-fast-openif your Linux kernel supports it. - Consider a Velocity proxy in front of the server for connection handling.
Step 7: Redstone and Hopper Optimisation
Redstone machines and hopper chains are silent TPS killers. Paper includes hopper.disable-move-event: true in paper-world-defaults.yml which dramatically speeds up hopper ticking. Set redstone-implementation: alternate-current in Paper config for a faster redstone engine.
For deeper tick analysis, see our TPS drops diagnostic guide. If your server is reporting out of memory alongside lag, check the OOM fix guide as well.
Need reliable hosting that handles these issues out of the box? Astroworld Hosting runs optimised Paper servers on NVMe SSDs with 24/7 support.