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.
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.
Understanding Minecraft Server Lag
Before fixing lag, you need to understand what causes it. There are two distinct types of lag in Minecraft, and they have completely different solutions.
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 stock Minecraft server (vanilla) is unoptimized. Using a performance-focused fork makes a massive difference.
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 optimization can compensate for insufficient hardware.
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, hosting in Singapore provides the best coverage:
- Singapore to Jakarta: 30-45ms
- Singapore to Kuala Lumpur: 8-15ms
- Singapore to Manila: 40-55ms
- Singapore to Bangkok: 25-35ms
- Singapore to Ho Chi Minh City: 35-50ms
CraftRift runs all servers in Singapore 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 (Singapore for SEA)
- 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.
Related Articles
Best Minecraft Server Plugins in 2026: Essential List for Every Server
A complete guide to the best Minecraft server plugins in 2026, covering anti-cheat, economy, world management, performance, and more. Find the right plugins for your Spigot or Paper server.
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.
guidesHow to Start a Minecraft Server (2026) — 15-Min Setup
Start a Minecraft server in under 15 minutes. Step-by-step for Java + Bedrock with port forwarding, plugins, and security basics. Free tools included.
Free Tools You Might Need
Need Low-Ping Hosting?
CraftRift servers run on dedicated hardware in Singapore. Sub-50ms ping across Southeast Asia, starting at $3/mo.