How to Reduce Lag on Your Minecraft Server: Complete Guide (2026)
Fix Minecraft server lag with proven optimization methods. Improve TPS, reduce latency, and boost performance.
Last updated: August 21, 2026
On this page
Nothing kills a Minecraft community faster than lag. Players log in, experience rubber-banding and block delay, and never come back. The good news is that most server lag is fixable with the right settings and setup.
This guide covers everything from server software choice to specific configuration tweaks that can dramatically improve your server’s performance.
Quick answer: Most Minecraft server lag is fixable. Switch to Paper or Purpur, drop view distance to 7 and simulation distance to 5, apply Aikar’s JVM flags, pre-generate chunks, and cap entity and mob spawn counts. If the problem is high ping rather than low TPS, host closer to your players on low-ping SEA nodes.
Understanding Minecraft Server Lag
Minecraft server lag comes in two forms: low TPS, where the server cannot keep up and mobs freeze and blocks update late, and high ping, the network latency between player and server. They have completely different fixes, so identify which one you have before changing anything. TPS problems are server-side; ping problems are about physical distance.
What is TPS? TPS stands for Ticks Per Second. Minecraft servers run at 20 TPS by default, meaning the server processes game logic 20 times per second. When TPS drops below 20, the server is lagging. Below 15 TPS, players start noticing delayed block updates and mob behavior issues. Below 10 TPS, the game becomes unplayable.
What is network latency? Network latency (ping) is the time it takes for data to travel between a player’s computer and the server. Even a perfectly optimized server at 20 TPS will feel laggy if a player has 200ms ping.
| Lag Type | Symptom | Cause | Solution |
|---|---|---|---|
| Server lag (low TPS) | Mob AI freezing, delayed block updates, slow crop growth | Too many entities, unoptimized plugins, insufficient hardware | Server optimization (this guide) |
| Network lag (high ping) | Rubber-banding, delayed interactions, hit registration issues | Server is far from players | Choose a closer server location |
Step 1: Choose the Right Server Software
The single biggest software win is switching off vanilla to a performance fork like Paper or Purpur, which can improve TPS by 30-50% straight out of the box. Vanilla runs no tick-loop optimizations, so it degrades fast under load. Paper adds async chunk loading, optimized entity AI, and full plugin support at no extra cost.
Paper (Recommended)
Paper is the most popular performance-focused Minecraft server software. It is a fork of Spigot that includes dozens of performance optimizations out of the box.
Performance impact: Paper alone can improve TPS by 30-50% compared to vanilla, according to benchmarks by the Paper development team.
Key benefits:
- Asynchronous chunk loading (chunks load without blocking the main thread)
- Optimized entity AI and pathfinding
- Built-in anti-exploit patches
- Full Bukkit/Spigot plugin compatibility
- Active development with frequent updates
Purpur (Advanced)
Purpur is a fork of Paper that adds even more configuration options and gameplay features. It includes everything Paper offers plus additional tweaks for server operators who want fine-grained control.
Fabric + Lithium (Modded)
For Fabric-based modded servers, Lithium is a performance mod that optimizes game logic without changing gameplay. Combined with Starlight (lighting engine optimization), it can significantly improve performance on modded setups.
Step 2: Optimize Server Configuration
These configuration changes make the biggest difference in server performance. Apply them in order of impact.
server.properties
# Reduce view distance from default 10 to 6-8
view-distance=7
# Simulation distance controls how far from a player
# entities and blocks are ticked
simulation-distance=5
# Reduce network compression threshold
# Lower = more CPU, less bandwidth. Good for nearby players.
network-compression-threshold=256
View distance explained: View distance controls how many chunks the server sends to each player. Each chunk increase adds significantly more chunks to process (it scales as a square). Reducing from 10 to 7 cuts chunk processing by roughly 50%.
paper-world-defaults.yml (Paper)
chunks:
# Max chunks auto-saved per tick
max-auto-save-chunks-per-tick: 8
# Delay before newly-inactive chunks are eligible for unload
delay-chunk-unloads-by: 10s
entities:
armor-stands:
# Prevent armor stands from ticking
tick: false
# How far entities must be from players to have reduced tick rates
spawning:
monster-spawn-range: 6
spawn-limits:
monsters: 50 # default: 70
animals: 8 # default: 10
water-animals: 3 # default: 5
ambient: 1 # default: 15
bukkit.yml
# Reduce tick rates for less critical tasks
ticks-per:
monster-spawns: 4 # default: 1 (spawn monsters every 4 ticks instead of every tick)
animal-spawns: 400 # default: 400
autosave: 6000 # default: 6000 (5 minutes)
spigot.yml
world-settings:
default:
# Mob activation ranges (blocks)
entity-activation-range:
animals: 16 # default: 32
monsters: 24 # default: 32
raiders: 48 # default: 48
misc: 8 # default: 16
# Merge items on ground within this radius
merge-radius:
item: 4.0 # default: 2.5
exp: 6.0 # default: 3.0
# Max entities to collide per tick
max-entity-collisions: 2 # default: 8
Step 3: Optimize Your Plugins
Plugins are the number one cause of TPS drops on modded servers. Here is how to identify and fix plugin performance issues.
Identify Slow Plugins
Use the /timings command (Paper) or install Spark profiler to identify which plugins consume the most CPU time.
/spark profiler start
# Wait 2-3 minutes during normal gameplay
/spark profiler stop
Spark generates a detailed report showing exactly which plugins and tasks are eating your TPS.
Common Plugin Performance Killers
World guard regions: Servers with thousands of WorldGuard regions can experience noticeable overhead during player movement checks. Keep region counts reasonable and remove unused regions.
Dynmap: Real-time map rendering is CPU-intensive. Set the render interval higher (every 30-60 seconds instead of real-time) or use a separate render thread.
Logging plugins: Plugins that log every block break, placement, or interaction to a database (like CoreProtect) can cause lag if the database is not optimized. Use async database writes and purge old data regularly.
Anti-cheat plugins: Aggressive anti-cheat plugins check dozens of conditions on every player movement. Use well-maintained anti-cheats and tune their settings to avoid false-positive processing.
Plugin Best Practices
- Remove any plugin you are not actively using
- Keep plugins updated to their latest versions
- Avoid plugins that have not been updated in over a year
- Prefer async plugins that process tasks off the main thread
- Use a database (MySQL/MariaDB) instead of flat files for data-heavy plugins
Step 4: Hardware Matters
No amount of software tuning fixes weak hardware: Minecraft’s main loop is single-threaded, so CPU clock speed matters more than core count. Aim for a modern CPU at 3.5 GHz or higher, enough RAM for your player count plus 20-30% headroom, and NVMe storage for fast chunk reads and writes.
CPU Priority
Minecraft is primarily single-threaded for its main game loop. This means clock speed matters more than core count for the main tick processing.
Recommended specs for different server sizes:
| Players | RAM | CPU | Storage |
|---|---|---|---|
| 1-5 | 2GB | 1 core @ 3.5GHz+ | 10GB SSD |
| 5-15 | 4GB | 1-2 cores @ 3.5GHz+ | 20GB SSD |
| 15-30 | 6-8GB | 2-3 cores @ 3.8GHz+ | 30GB SSD |
| 30+ | 8-16GB | 3-4 cores @ 4.0GHz+ | 50GB+ NVMe |
Storage Type
NVMe SSDs are strongly recommended over SATA SSDs or HDDs. Minecraft servers perform constant small read/write operations for chunk loading and saving. NVMe storage handles this workload much better.
Performance comparison (approximate IOPS):
- HDD: 100-200 IOPS
- SATA SSD: 50,000-90,000 IOPS
- NVMe SSD: 200,000-500,000+ IOPS
RAM Allocation
Allocate enough RAM but not too much. Over-allocating RAM (giving a server 16GB when it only needs 4GB) causes longer garbage collection pauses, which create lag spikes.
Recommended JVM flags for Paper servers:
java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -jar paper.jar
These flags (known as Aikar’s flags) are optimized for Minecraft’s memory usage patterns and are recommended by the Paper development team.
Step 5: Network Optimization
Server Location
This is the single most impactful optimization for player experience. A server running at a perfect 20 TPS in the US still feels laggy for a player in Indonesia with 200ms ping.
For Southeast Asian players, running the server on a node inside the region gives the best coverage. Here is the measured latency players in each country see on a regional SEA node:
- Players in Indonesia: 10-30ms
- Players in Singapore: 20-35ms
- Players in Malaysia: 20-40ms
- Players in Thailand: 30-60ms
- Players in the Philippines: 40-70ms
- Players in Vietnam: 40-70ms
CraftRift runs all servers on low-ping SEA nodes specifically for this reason. If you are self-hosting or using another provider, choose the data center closest to where most of your players are located.
TCP vs UDP Optimization
Enable TCP nodelay in server.properties to reduce micro-delays:
# Already default in modern Paper builds
use-native-transport=true
Step 6: World Optimization
Pre-generate Chunks
New chunk generation is one of the most CPU-intensive tasks a Minecraft server performs. Pre-generating your world eliminates this lag source entirely.
Use the Chunky plugin:
/chunky radius 5000
/chunky start
This pre-generates all chunks within a 5000-block radius of spawn. The process runs in the background and may take several hours for large worlds.
Set a World Border
Unlimited worlds grow forever, consuming more and more disk space and causing chunk generation lag when players explore. Set a reasonable world border:
/worldborder set 10000
A 10,000 block diameter gives players plenty of room (about 78 million blocks of playable area) while keeping the world manageable.
Clean Up Entities
Excess entities are a common cause of lag. Check entity counts with:
/spark tickmonitor
Common culprits:
- Dropped items on the ground (set
entity-tracking-range.otherlower in spigot.yml) - Villager pathfinding in large villages (limit villager counts or use SimpleVillagers plugin)
- Mob grinder accumulation (add kill timers to grinder designs)
- Excessive armor stands from plugins
Step 7: Monitor Performance
Spark Profiler
Spark is the gold standard for Minecraft server profiling. Install it and use it regularly:
/spark tps- Check current TPS/spark profiler start- Start CPU profiling/spark health- Overall server health report
Automated Monitoring
Set up alerts for when TPS drops below a threshold. Many panel solutions (including Pterodactyl) support webhook notifications. Connect these to your Discord for instant alerts when something goes wrong.
Quick Optimization Checklist
Here is a summary of everything in this guide, ordered by impact:
- Use Paper (or Purpur) instead of vanilla/Spigot
- Host near your players (a node inside SEA for a SEA community)
- Reduce view distance to 7 and simulation distance to 5
- Reduce spawn limits (monsters: 50, animals: 8)
- Use Aikar’s JVM flags for optimized garbage collection
- Pre-generate your world with Chunky
- Set a world border to prevent infinite expansion
- Audit plugins and remove unused ones
- Use NVMe SSD storage for fast chunk I/O
- Monitor with Spark and fix bottlenecks as they appear
CraftRift servers come pre-optimized with Paper, Aikar’s flags, and tuned configurations out of the box. If you want to skip the manual setup and just play on an optimized server, check out our plans starting at $3/month.
Frequently Asked Questions
Why is my Minecraft server stuck at 20 TPS but still laggy?
If TPS is at 20 but players experience lag, the problem is network latency, not server performance. Check your players’ ping with /spark ping. If most players have 100ms+ ping, you need a server closer to your player base.
How do I check my Minecraft server TPS?
Install the Spark profiler plugin and use /spark tps. Paper also has a built-in /tps command. A healthy server should show 20.0 TPS consistently. If you see values like 18.5 or lower, your server is struggling.
Does more RAM always mean less lag?
No. Over-allocating RAM causes longer garbage collection pauses. A server with 4GB allocated but only using 2GB will have worse GC pauses than a server with exactly 4GB allocated and using 3.5GB. Match your RAM allocation to your actual usage plus 20-30% headroom.
Can I run a Minecraft server on Wi-Fi?
Technically yes, but it is not recommended for anything beyond a small private server. Wi-Fi adds latency variance (jitter) that causes inconsistent gameplay. If you are self-hosting, always use a wired Ethernet connection. If you are using a hosting provider like CraftRift, this is not relevant since the server runs in a data center with enterprise networking.
What is the best Minecraft server software for performance in 2026?
Paper remains the top recommendation for most servers. It offers the best balance of performance, plugin compatibility, and community support. Purpur is excellent for operators who want more configuration options. For Fabric modded servers, Lithium + Starlight is the go-to performance stack.
CraftRift Admin
Founder of CraftRift
CraftRift Admin is a gamer based in Southeast Asia and the founder of CraftRift, writing about Minecraft server performance, hosting, and low-latency infrastructure for players across the region.
Related Articles
Minecraft Server Optimization: How to Maintain 20 TPS with 50+ Players
A complete technical guide for server admins on maintaining a stable 20 TPS Minecraft server with 50 or more concurrent players. Covers Paper config, JVM flags, plugin auditing, world pre-generation, and hardware requirements.
guidesAikar's Flags Explained: Optimized JVM Flags for Minecraft Servers (2026)
Aikar's flags explained for 2026: the full copy-paste G1GC JVM args for Paper, a variant for 12GB+ RAM, and the mistakes that undo them.
guidesHow Much RAM for a Minecraft Server? Chart by Player Count
RAM guide with tables for Vanilla, Paper, Forge, and Fabric servers. 1-100+ players covered. Includes Aikar's flags and signs your server needs more RAM.
Free Tools You Might Need
Need Low-Ping Hosting?
CraftRift runs on low-ping SEA nodes. Fast ping across Southeast Asia, starting at $3/mo.