Back to Blog
guides | | 10 min read

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.

minecraft optimization lag tps 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 TypeSymptomCauseSolution
Server lag (low TPS)Mob AI freezing, delayed block updates, slow crop growthToo many entities, unoptimized plugins, insufficient hardwareServer optimization (this guide)
Network lag (high ping)Rubber-banding, delayed interactions, hit registration issuesServer is far from playersChoose 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 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:

PlayersRAMCPUStorage
1-52GB1 core @ 3.5GHz+10GB SSD
5-154GB1-2 cores @ 3.5GHz+20GB SSD
15-306-8GB2-3 cores @ 3.8GHz+30GB SSD
30+8-16GB3-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.other lower 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:

  1. Use Paper (or Purpur) instead of vanilla/Spigot
  2. Host near your players (Singapore for SEA)
  3. Reduce view distance to 7 and simulation distance to 5
  4. Reduce spawn limits (monsters: 50, animals: 8)
  5. Use Aikar’s JVM flags for optimized garbage collection
  6. Pre-generate your world with Chunky
  7. Set a world border to prevent infinite expansion
  8. Audit plugins and remove unused ones
  9. Use NVMe SSD storage for fast chunk I/O
  10. 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.

Need Low-Ping Hosting?

CraftRift servers run on dedicated hardware in Singapore. Sub-50ms ping across Southeast Asia, starting at $3/mo.