How to Reduce Lag on Minecraft Server: Complete 2026 Fix Guide

Quick Answer: Minecraft server lag stems from 5 main causes: insufficient RAM allocation (allocate 2GB minimum), CPU bottlenecks (upgrade to Ryzen 9 CPUs), excessive entity counts (use ClearLag plugin), unoptimized plugins (audit with Timings), and poor network routing (choose Netherlands hosting for 5-30ms EU latency). Most lag is fixable through server.properties tweaks and plugin optimization.
Server lag ruins the Minecraft experience. Players complain about rubber-banding, block lag, mob freezing, and inventory delays. In 2026, with modpacks getting heavier and player counts growing, lag optimization is critical.
This guide covers every lag source and fix—from basic server.properties tweaks to advanced CPU/RAM optimization.
Table of Contents
- Understanding Server TPS vs Client FPS
- RAM Allocation and Garbage Collection
- CPU Performance Optimization
- View Distance and Chunk Loading
- Entity and Mob Management
- Plugin and Mod Audit
- Network Latency Fixes
- Server.properties Optimization
- Common Questions
1. Understanding Server TPS vs Client FPS
What is TPS?
TPS (Ticks Per Second) measures server performance. Minecraft runs at 20 TPS ideal—meaning 20 game ticks per second (50ms per tick).
- 20 TPS: Perfect performance, no lag
- 15-19 TPS: Slight lag, noticeable delays
- 10-14 TPS: Moderate lag, block delays, mob stuttering
- < 10 TPS: Severe lag, unplayable
TPS vs FPS
- FPS (Frames Per Second): Client-side rendering speed (player's computer)
- TPS (Ticks Per Second): Server-side game logic speed
Low TPS affects everyone. Even players with 300 FPS experience lag when server TPS drops below 20.
Check Server TPS
Install Spark plugin or use /tps command (requires permissions).
/tps
Output example:
TPS: 19.8, 19.5, 18.9 (1m, 5m, 15m average)
Anything below 19.5 indicates performance issues.
2. RAM Allocation and Garbage Collection
How Much RAM Does Your Server Need?
| Server Type | Players | RAM Required |
|-------------|---------|--------------|
| Vanilla 1.20+ | 5-10 | 2-4GB |
| Vanilla 1.20+ | 20-50 | 6-8GB |
| Light plugins (10-15) | 10-20 | 4-6GB |
| Heavy plugins (20+) | 20-50 | 8-12GB |
| Modpacks (ATM10, Better MC) | 10-20 | 12-16GB |
| Large modpacks (200+ mods) | 10-20 | 16-24GB |
Optimize Java Startup Flags
Use Aikars flags for better garbage collection:
java -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui
Key points:
-Xms8G -Xmx8G: Set min and max RAM to same value (prevents resizing lag)-XX:+UseG1GC: Use G1 garbage collector (better than default)-XX:MaxGCPauseMillis=200: Limit GC pauses to 200ms
Avoid Common RAM Mistakes
❌ Don't: Allocate all server RAM to Minecraft (leave 1-2GB for OS)
❌ Don't: Use 32GB+ RAM (diminishing returns, GC overhead)
✅ Do: Match RAM to actual need (monitor with /spark heapsummary)
3. CPU Performance Optimization
CPU Matters More Than RAM
Minecraft is single-threaded—it primarily uses 1 CPU core for main game loop. Fast single-core speed is critical.
Best CPUs for Minecraft servers:
- AMD Ryzen 9 7950X (5.7GHz boost) – Excellent
- AMD Ryzen 7 5800X (4.7GHz boost) – Great
- Intel i9-12900K (5.2GHz boost) – Great
- Budget: AMD Ryzen 5 5600X (4.6GHz boost) – Good
Avoid: Old Intel Xeons (2.4GHz), budget Celerons, ARM processors.
Paper/Purpur for Multi-Threading
Vanilla Minecraft doesn't multi-thread well. Use Paper or Purpur server software:
- Paper: Optimizes redstone, entity AI, lighting (20-40% better performance)
- Purpur: Adds multi-threading for tasks like mob AI, chunk loading
Download from PaperMC.io or PurpurMC.org.
4. View Distance and Chunk Loading
Reduce View Distance
server.properties:
view-distance=6
simulation-distance=4
- view-distance: How far players can see (default 10, reduce to 6-8)
- simulation-distance: How far mobs/crops/redstone work (default 10, reduce to 4-6)
Impact: Reducing from 10 → 6 cuts chunk processing by ~40%.
Pre-Generate Chunks
Use Chunky plugin to pre-generate world before players join:
/chunky world world
/chunky radius 5000
/chunky start
This prevents chunk generation lag during gameplay.
5. Entity and Mob Management
Limit Entity Counts
spigot.yml:
entity-activation-range:
animals: 16
monsters: 24
raiders: 32
misc: 8
water: 8
villagers: 16
flying-monsters: 32
Reduces AI processing for distant entities.
Clear Lag Plugin
Install ClearLag to auto-remove dropped items, excess mobs:
/lagg clear - Remove ground items
/lagg killmobs - Kill excess mobs
/lagg area 20 - Check entities in 20-block radius
Configure auto-clear every 10 minutes in config.yml.
Limit Farms
Players build massive mob grinders, iron farms, villager breeders. Set limits:
paper.yml:
max-entity-collisions: 2
bukkit.yml:
spawn-limits:
monsters: 50
animals: 8
water-animals: 5
ambient: 1
6. Plugin and Mod Audit
Use Spark or Timings
Identify laggy plugins:
/spark profiler --timeout 300
Wait 5 minutes, then:
/spark profiler --stop
Upload results and check which plugins consume most CPU.
Common Laggy Plugins
❌ Avoid: Old versions of EssentialsX, outdated permissions plugins, massive world editors
✅ Use: LuckPerms (modern permissions), CoreProtect (optimized logging), Vault (lightweight economy)
Plugin Alternatives
| Laggy Plugin | Better Alternative |
|--------------|-------------------|
| WorldEdit (old) | FastAsyncWorldEdit (FAWE) |
| EssentialsX (outdated) | EssentialsX (latest version) |
| PermissionsEx | LuckPerms |
| Multiverse-Core (heavy) | Multiverse-Core (latest) |
7. Network Latency Fixes
Choose Better Server Location
Latency (ping) affects block placement, PvP, inventory actions.
European servers:
- Netherlands (Amsterdam): 5-30ms for 70% of EU players
- Germany (Frankfurt): 10-40ms
- UK (London): 15-50ms
North American servers:
- US East (New York): 20-60ms for East Coast, 70-120ms West Coast
- US West (Los Angeles): 20-60ms for West Coast, 80-140ms East Coast
Space-Node Minecraft hosting uses Netherlands datacenters for optimal EU latency.
Optimize Netty Settings
server.properties:
network-compression-threshold=256
Lower values (256) reduce bandwidth but increase CPU usage. Default is 256.
8. Server.properties Optimization
Full Optimized Configuration
server.properties:
# View/Simulation Distance
view-distance=6
simulation-distance=4
# Network
network-compression-threshold=256
max-tick-time=60000
# Spawn Protection
spawn-protection=0
# World Settings
max-world-size=10000
spigot.yml:
# Mob Spawn Ranges
mob-spawn-range: 4
# Entity Activation Range
entity-activation-range:
animals: 16
monsters: 24
raiders: 32
misc: 8
# Merge Radius
merge-radius:
item: 3.5
exp: 4.0
# Tick Rate
item-despawn-rate: 3000
arrow-despawn-rate: 600
paper.yml:
# Performance
max-auto-save-chunks-per-tick: 8
optimize-explosions: true
treasure-maps-return-already-discovered: true
# Anti-Xray
anti-xray:
enabled: true
engine-mode: 2
Common Questions
"Why is my server lagging with only 5 players?"
Check these in order:
- TPS: Run
/tps– if below 19, you have server-side lag - RAM: Allocate at least 2GB for vanilla, 4GB for plugins
- CPU: Check single-core speed (need 3.5GHz+ boost clock)
- Plugins: Use
/spark profilerto find laggy plugins - Chunks: Reduce view-distance to 6 in server.properties
Most "5-player lag" comes from insufficient CPU or laggy plugins like old EssentialsX versions.
"What's the difference between server lag and client lag?"
Server lag (low TPS):
- Affects everyone simultaneously
- Mobs freeze, blocks delay, inventories slow
- Check with
/tpscommand - Fix: More RAM/CPU, optimize server.properties
Client lag (low FPS):
- Only affects individual player
- Stuttering graphics, choppy movement
- Check with F3 debug screen (bottom right FPS counter)
- Fix: Better GPU, lower render distance, install OptiFine
"Should I use Vanilla, Spigot, Paper, or Purpur?"
Performance ranking (best to worst):
- Purpur – Paper + multi-threading + extra optimizations (best for 20+ players)
- Paper – Spigot + async chunk loading + redstone optimizations (great for 10-50 players)
- Spigot – Vanilla + basic performance tweaks (good for 5-20 players)
- Vanilla – No optimizations (only for singleplayer or small 2-5 player servers)
Recommendation: Use Purpur for best performance with full plugin compatibility.
"How do I fix TPS drops during chunk generation?"
Pre-generate world with Chunky plugin before opening server:
/chunky world world
/chunky radius 5000
/chunky start
This generates 10,000x10,000 block area (5000 block radius from spawn). Wait 1-6 hours depending on CPU.
Alternative: Reduce view-distance to 4-6 to minimize new chunk generation during gameplay.
"Can I host 100+ players on one Minecraft server?"
Yes, but requires:
- 24-32GB RAM
- AMD Ryzen 9 or Intel i9 CPU (5.0GHz+ boost)
- Purpur server with multi-threading
- NVMe SSD for chunk I/O
- Optimized plugins (avoid EssentialsX, use LuckPerms, CoreProtect)
- Pre-generated world to prevent chunk gen lag
Most hosts cap at 50-100 players per server. For larger networks, use BungeeCord with multiple backend servers.
"Why does lag happen only at certain times?"
Scheduled events cause periodic lag:
- Auto-save: Every 5 minutes (6000 ticks) – configure with
save-intervalin bukkit.yml - Plugin tasks: Some plugins run tasks every X minutes (check with
/spark profiler) - Backups: If backup runs during peak hours, move to off-hours (3-6 AM)
- ClearLag: Auto-removal of items every 10 minutes causes brief TPS drop
Use /spark profiler --timeout 600 during lag spike to identify cause.
Final Checklist: Lag Reduction Priority
- ✅ Allocate 2-4GB RAM minimum (use Aikars flags)
- ✅ Reduce view-distance to 6-8 (server.properties)
- ✅ Use Paper or Purpur (not vanilla)
- ✅ Pre-generate world with Chunky
- ✅ Audit plugins with Spark profiler
- ✅ Limit entities with ClearLag plugin
- ✅ Optimize spigot.yml and paper.yml (copy config above)
- ✅ Choose better hosting (Ryzen 9 CPU, NVMe SSD, Netherlands location)
Still lagging? Upgrade to Space-Node Minecraft hosting with AMD Ryzen 9 CPUs @ 5.4GHz, NVMe SSD, and optimized network routing for 5-30ms EU latency. Plans from €0.90/month.
Related guides:
