MikroTik simple queue vs queue tree
Last updated: 2 October 2026
MikroTik has two places to limit speed: simple queues and the queue tree. Both use the same engine underneath. They differ in how you tell the router which traffic a limit applies to, and that decides which one suits your job.
Before you change a live router: take a backup (how) and turn on Safe Mode in Winbox, so a mistake that locks you out is undone by itself.
Simple queues
A simple queue names its traffic by a target: an address, a network or an interface. One line limits both directions.
/queue simple add name=ali-laptop target=192.168.88.10/32 max-limit=2M/5M
/queue simple add name=guests target=192.168.20.0/24 max-limit=5M/20Mmax-limit=2M/5M is upload/download for the target. Nothing else is needed: no firewall marks, no second rule for the other direction. More examples are in bandwidth limit per user.
Order matters in simple queues
Simple queues are read from the top, and a packet is handled by the first queue whose target matches. If a queue for the whole network sits above a queue for one address in it, the single address never reaches its own queue.
/queue simple print
/queue simple move [find name=ali-laptop] 0Rule of thumb: single addresses on top, networks below. The exception is a parent and its children: a queue with parent= set is checked inside its parent, not in the main list.
Queue tree
A queue tree does not look at addresses. It limits packets that carry a packet mark, which you put on them with firewall mangle rules. Each tree works in one direction only, so download and upload are built separately.
Example: a 50 Mbps line shared by an office network and a guest network. The office is guaranteed 30 Mbps of download and goes first; guests are guaranteed 10 Mbps; either may use the whole line when the other is quiet.
/ip firewall mangle
add chain=forward dst-address=192.168.10.0/24 action=mark-packet new-packet-mark=office-down passthrough=no
add chain=forward dst-address=192.168.20.0/24 action=mark-packet new-packet-mark=guest-down passthrough=no
/queue tree
add name=download parent=global max-limit=50M
add name=office-down parent=download packet-mark=office-down limit-at=30M max-limit=50M priority=1
add name=guest-down parent=download packet-mark=guest-down limit-at=10M max-limit=50M priority=8limit-at is the guaranteed speed, max-limit the most a queue may reach, and priority (1 is first, 8 is last) decides who gets the spare capacity first. Upload needs the same again with src-address marks and a second parent. The order of queue tree entries does not matter; the marks decide.
Side by side
| Simple queue | Queue tree | |
|---|---|---|
| Picks traffic by | Target address, network or interface | Packet marks from mangle rules |
| Directions | Both in one line | One per tree |
| Order of entries | Matters: first match wins | Does not matter |
| Setup effort | Low | Higher: marks plus queues |
| Limit by type of traffic (port, protocol) | Only with packet marks added | Natural |
| Used by hotspot and PPPoE logins | Yes, made automatically | No |
| Many hundreds of entries | Fine on current RouterOS; watch the processor | Fine; the mangle rules cost processor too |
Which to use
- A limit per device or per customer: simple queues.
- The same limit for everyone on a network: one simple queue with PCQ.
- Priorities between kinds of traffic, such as calls before downloads, or several networks sharing one line with guarantees: queue tree.
- Hotspot and PPPoE customers: neither by hand. The router makes a simple queue per session from the profile.
Both kinds are skipped by FastTrack. If a limit has no effect, read queues not working before changing anything else.
Where RadiusNest fits
For paying customers on hotspot or PPPoE you rarely build either kind yourself. With RadiusNest the speed belongs to the customer's package, and the router creates the simple queue at login and removes it at logout. A queue tree for priorities across your whole line is still yours to design on the router; RadiusNest does not touch it.
Start the free trial See pricing
Questions and answers
Is a queue tree faster than simple queues?
On old RouterOS versions it was for long lists. On current versions both cope with many entries; the mangle rules a queue tree needs also use processor.
Can I use simple queues and a queue tree together?
Yes, but a packet can then be limited twice and the result is hard to follow. Pick one method for each kind of traffic.
Why does my second simple queue never count any traffic?
A queue above it matches the same traffic first. Move the more specific queue to the top of the list.