Rough idle on a modern fuel-injected engine usually traces back to one of six things. In rough order of likelihood: dirty throttle body or carbon buildup, vacuum leak, worn spark plugs or coils, failing O2 sensor or MAF, dirty fuel injectors, or PCV/EGR valve issues. Most of these are under $300 to fix.

Here’s how to find which one you’ve got.

What “rough idle” means in numbers

A normal warm idle sits around 600 to 800 RPM and stays steady within plus or minus 50 RPM. Rough idle means RPM swings 100+ RPM, the engine shakes the steering wheel or shifter, or you can see the tach needle hunting.

If the idle is rough only when cold, that’s normal for the first 30 to 60 seconds (high idle warm-up). If it stays rough after the engine is warm, you have something to fix.

Most common causes, ranked

1. Dirty throttle body

Carbon buildup on the throttle plate and idle bypass restricts the idle airflow the ECM expects. The car compensates by hunting for the right idle speed.

Test: pull off the intake duct, look at the throttle plate with a flashlight. Black carbon buildup means it’s dirty.

Fix: clean per our throttle body guide. $10 in cleaner and 20 minutes.

2. Vacuum leak

A cracked vacuum hose, leaking intake gasket, or torn PCV hose lets unmetered air into the intake. The mixture leans out at idle (when the ECM has the least authority to compensate), and the engine stumbles.

Test: with the engine idling, spray short bursts of carb cleaner or propane around vacuum hoses and gasket seams. RPM jumping when you hit a specific area = leak there.

Fix: replace the leaking hose or gasket. Often $20 to $80 in parts. Intake manifold gaskets are harder, $200 to $600.

3. Worn spark plugs or coil packs

Plugs fire weak, one cylinder misfires intermittently. At idle, where each combustion event matters more (fewer per second), a misfire is felt as shake.

Test: pull codes with an OBD2 scanner. P0300 is a random misfire, P0301 to P0308 point to a specific cylinder. Pull the plug from a misfiring cylinder and look at it: oily, fouled, or wide gap means time to replace.

Fix: spark plugs $30 to $150 for a set. Coils $50 to $200 each. Plug wires (older cars) $30 to $80.

4. Failing MAF or O2 sensor

The mass airflow sensor measures air entering the engine. Dirty MAF = bad data = bad fuel mix. O2 sensors do the closed-loop adjustment after combustion.

Test: spray a few squirts of CRC MAF cleaner (not brake cleaner, not throttle body cleaner) onto the MAF element. Reinstall, drive. If idle improves, the MAF was dirty. For O2, pull codes and watch live data.

Fix: MAF cleaning is free. MAF replacement $80 to $400. O2 sensor $30 to $250.

5. Dirty fuel injectors

Each injector sprays a metered amount of fuel. A clogged injector dribbles or sprays in a poor pattern, causing a partial misfire.

Test: difficult without removing them. P0301-P0308 misfire codes that don’t move when you swap plugs and coils between cylinders point to injectors.

Fix: a good fuel system cleaner (Techron, BG44K, Red Line SI-1) in the tank can resolve mild clogs over a couple of tanks. Heavy carbon (direct-injection engines especially) often needs intake walnut blasting, $300 to $800. Injector replacement $80 to $300 per cylinder including labor.

6. PCV / EGR valve

PCV valve stuck open creates a vacuum leak. EGR valve stuck open at idle dumps exhaust into the intake when it shouldn’t.

Test: PCV is usually a quick part swap, $15 part. EGR codes (P0400 to P0408) point to the valve.

Fix: PCV valve $15 to $60. EGR valve $80 to $400 plus labor.

Less common but worth checking

  • Compression problem. Burned valve, broken ring, or head gasket. Compression test on all cylinders. Expensive.
  • Cam timing off. Stretched timing chain, especially common on 2.0L Ecoboost Fords, certain VW TSI, and Hyundai/Kia Theta II engines. Specific timing-related codes.
  • Idle air control valve (older cars). Pre-2005ish drive-by-cable engines have a separate IAC stepper motor that fails. Clean or replace.
  • Carburetor (very old cars). Dirty jets, worn float needle. Rebuild or replace.

A quick triage flow

  1. Read codes with an OBD2 scanner. Misfire codes (P0300+) narrow it down.
  2. Look at the throttle body. Dirty? Clean it.
  3. Listen for vacuum hiss with the engine idling. Find and fix.
  4. How old are the plugs and coils? Past 60,000 miles, replace.
  5. Try a tank of Techron or BG44K and see if it improves.
  6. If nothing, pull live data on the scan tool: short-term fuel trim, long-term fuel trim, MAF reading, O2 sensor voltage. Anomalies point to the system.

Don’t ignore it

A rough idle from misfires sends raw fuel through the cats and can destroy them. P0420 cat efficiency codes often follow ignored P0301-P0308 codes. The misfire fix is $100 to $300, the cat is $500 to $2,500.