FreeGameHost.xyz

How to Fix Minecraft Server Lag in 2026 (TPS, RAM & Plugins)

By FreeGameHost Team  •  Updated May 2026  •  9 min read

Server lag ruins the Minecraft experience — rubber-banding, delayed block placing, and mobs teleporting around are all symptoms of a server struggling to keep up. The good news: most lag is fixable in under 10 minutes with the right settings changes. This guide walks through every common cause, from quick wins to deeper fixes.

20Target TPS
6–8Ideal view distance
FreeTools needed
<10 minMost fixes take

Contents

  1. Understanding TPS — the key metric
  2. How to diagnose the cause of lag
  3. Fix 1: Reduce view and simulation distance
  4. Fix 2: Control entity counts
  5. Fix 3: Find and remove laggy plugins
  6. Fix 4: Switch to Paper (if you haven't already)
  7. Fix 5: Tune Paper and Spigot config files
  8. Fix 6: Adjust RAM and JVM flags
  9. Fix 7: Deal with farm and redstone lag
  10. FAQ

Understanding TPS — the key metric

Minecraft's game engine runs on a loop of 20 ticks per second (TPS). At 20 TPS everything runs perfectly — mobs move smoothly, redstone fires instantly, and block interactions feel immediate. When the server can't keep up with that pace, TPS drops and lag appears.

TPS Status What players notice
20 Perfect Nothing — the server runs as expected
18–19 Good Negligible — very light occasional stutter
15–17 Noticeable lag Rubber-banding, delayed block breaking, mob movement stutters
10–14 Significant lag Frequent rubber-banding, commands slow to process, items delayed
<10 Severe / near-unplayable Server is struggling critically — needs immediate attention
Check TPS instantly — if you're on Paper or Spigot, run /tps in-game. You'll see three numbers: the TPS over the last 1 minute, 5 minutes, and 15 minutes. All three should be at or near 20.

How to diagnose the cause of lag

Before changing settings at random, identify what is actually causing the lag. The best free tool for this is Spark, a profiler plugin that shows you exactly which part of your server is eating CPU time.

Install Spark on your server

  1. Download the latest Spark JAR from spark.lucko.me
  2. Upload it to your /plugins folder via the FreeGameHost File Manager
  3. Restart your server — Spark loads automatically

Run a profiling report

When your server is lagging, run this in the console:

spark profiler start
# Let it run for 2–3 minutes during the lag, then:
spark profiler stop

Spark will output a URL with a detailed breakdown of every thread and plugin consuming CPU time. Look for anything using more than 5–10% of tick time — that's your culprit.

Also check entity counts. Run /spark entities or use the Essentials command /lag to see how many entities are loaded. More than 2,000 entities is a red flag.

Fix 1: Reduce view and simulation distance (biggest win)

This is the single most impactful change you can make. Minecraft's default view-distance is 10 chunks — that means the server is loading and ticking chunks in a 21×21 area around every player. With 4 GB of RAM and several players online, this is often the primary cause of lag.

Recommended settings in server.properties

# Default values — these cause lag on small servers:
view-distance=10
simulation-distance=10

# Recommended for a free 4GB server:
view-distance=6
simulation-distance=4

Open server.properties in your File Manager, change these two values, save, and restart. The difference is dramatic — many servers go from 14–16 TPS back to 20 TPS from this change alone.

Farms may stop working. If players have farms outside the simulation distance, they'll stop producing while those players are away. Moving farms closer to spawn (or wherever players spend most of their time) is the fix.

Fix 2: Control entity counts

Entities — mobs, dropped items, minecarts, armour stands, arrows — each take CPU time every tick. A farm that's been running for weeks can accumulate thousands of dropped items. Mob breeders can fill a chunk with hundreds of animals.

Clear dropped items and excess mobs

/kill @e[type=item]
# Kills all dropped items on the server instantly

/kill @e[type=!player]
# Kills everything except players — use with caution on survival servers

Set entity limits in spigot.yml

Edit spigot.yml in your File Manager and reduce mob caps per chunk. Lower values mean fewer mobs tick per chunk:

# In spigot.yml — world-settings.default section:
mob-spawn-range: 4 # default 8
entity-activation-range:
  animals: 16 # default 32
  monsters: 24 # default 32
  misc: 8 # default 16

Enable merge options for items

Also in spigot.yml, increasing the item-merge radius groups nearby dropped items into stacks, drastically reducing entity count in busy areas:

merge-radius:
  item: 4.0 # default 2.5
  exp: 6.0 # default 3.0

Fix 3: Find and remove laggy plugins

Plugins run code every server tick. A poorly optimised plugin — or one that scans large areas or makes database calls on the main thread — can single-handedly tank your TPS.

After running a Spark profile, look at the results for any plugin consuming a disproportionate share of tick time. Common offenders include:

To test if a plugin is the culprit, disable it temporarily by removing it from the /plugins folder and restarting. If TPS recovers, that's your answer.

Check your plugin list against our recommended plugins guide. Well-maintained plugins like EssentialsX, LuckPerms, and WorldGuard are highly optimised. Obscure one-off plugins from old forum posts often aren't.

Fix 4: Switch to Paper

If you're running a vanilla or Spigot server, switching to Paper is one of the most effective performance upgrades you can make — and it's free. Paper includes hundreds of performance patches over vanilla and Spigot, including:

In your FreeGameHost panel, go to Startup and change the server type to Paper, then restart. Your world data carries over — no rebuild needed.

Fix 5: Tune Paper and Spigot config files

Paper has its own config file (config/paper-global.yml and config/paper-world-defaults.yml on newer versions) with settings that make a significant difference. These are the most impactful ones:

# paper-world-defaults.yml

# Reduce how often entities outside active range tick:
entity-activation-range:
  wake-up-inactive:
    animals-max-per-tick: 4
    monsters-max-per-tick: 8

# Limit the TPS cost of hoppers:
hopper:
  disable-move-event: true
  cooldown-when-full: true

# Despawn ranges for mobs:
despawn-ranges:
  soft: 28
  hard: 48
Want the full optimised config? The minecraft-optimization guide on GitHub by YouHaveTrouble is the community's most comprehensive reference for Paper/Spigot settings — well maintained and updated for 2026 versions.

Fix 6: Adjust RAM and JVM flags

FreeGameHost gives you 4 GB of RAM on the free tier — enough for most friend-group servers. However, how that RAM is managed by Java's garbage collector matters too. Poorly tuned JVM flags cause "GC pauses" — brief freezes while Java cleans up memory — which show up as TPS spikes and lag bursts.

Use Aikar's JVM flags

Aikar's flags are the gold standard for Minecraft Java servers. In your FreeGameHost panel, go to Startup and check that your JVM arguments field contains these flags (or ask support to apply them):

-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
Don't allocate 100% of your RAM to the server. If your plan has 4 GB, allocate 3.5 GB max. The JVM and OS need headroom. Allocating too much causes the garbage collector to thrash.

Fix 7: Deal with farm and redstone lag

Automated farms are some of the biggest sources of server lag, especially once a world has been running for a while. Here's how to identify and manage them:

Quick fix
Item farms producing too fast

If a farm produces items faster than players can pick them up, thousands of item entities pile up. Add a despawn-time reduction in paper.yml, or build in item collection via hoppers directly so items never drop loose.

Quick fix
Redstone clocks running constantly

A 1-tick or 2-tick redstone clock fires thousands of times per minute. Add a button or lever to pause clocks when not in use, or replace fast clocks with observer chains where possible. Paper's disable-moved-wrongly-threshold setting also helps contain the overhead.

Moderate fix
Mob farms with hundreds of mobs

A mob farm that stacks 300+ mobs in a small area is extremely taxing. Set the max-entity-cramming gamerule to 8–10 (default 24) to automatically kill mobs beyond that count in a block: /gamerule maxEntityCramming 8. This caps farm size without breaking the mechanic.

Advanced fix
Flying machines or piston machines

Piston-based flying machines update hundreds of blocks per cycle and generate block update events on the main thread. If a specific machine is causing lag, Spark will show pistonMoveReaction or similar consuming tick time. Coordinate with the builder to add an off-switch, or use Chunk Limits plugins to cap activity in specific areas.

Frequently asked questions

My server shows 20 TPS but players still feel lag — what's wrong?

TPS is a server-side metric. If the server TPS is 20 but players feel lag, the issue is likely client-side (the player's internet connection or their PC struggling to render) or network latency (high ping between the player and the server). Check players' ping in-game with /ping PlayerName if you have EssentialsX installed.

Does pre-generating the world help with lag?

Yes — significantly. When players explore new terrain, the server has to generate new chunks on the fly, which is expensive. Pre-generating a border around spawn means all the chunk data already exists on disk and just needs to be loaded, not created. The Chunky plugin handles this cleanly. Run /chunky start after configuring a radius.

Will more RAM fix my lag?

Only if RAM is the bottleneck. Check your RAM usage in the FreeGameHost panel — if it's consistently hitting 90–100%, upgrading makes sense. If RAM is only at 60–70%, more RAM won't help — the issue is likely CPU-bound (too many entities, view distance, or a laggy plugin). Our premium plans offer additional RAM from €1/GB if you do need to scale up.

Can I fix lag without restarting the server?

Many fixes can be applied live: clearing entities with /kill commands, running /gamerule changes, disabling plugins with a plugin manager (like PlugMan), and changing view distance with /paper distance on some Paper versions. Config file changes (server.properties, spigot.yml, paper.yml) generally require a restart to take effect.

Running on a slow host? FreeGameHost gives you 4 GB RAM and optimised Paper servers — free forever.

Get a Free Server →

Related guides: Best Minecraft server plugins 2026  •  How to install mods on a Minecraft server  •  How to make a Minecraft server for friends  •  Free Minecraft Java Hosting