
The most common reason your car heater isn't working is a low coolant level. The heater in your car works by blowing air over a small radiator called a heater core, which is filled with hot engine coolant. If the coolant level is low, there isn't enough hot liquid to circulate through the heater core, resulting in cold air. Other frequent culprits include a stuck thermostat (which prevents the engine from reaching its proper operating temperature) or air trapped in the cooling system.
Before assuming the worst, check your coolant reservoir. With the engine completely cool, look at the markings on the side of the translucent plastic reservoir; the fluid level should be between the "MIN" and "MAX" lines. If it's low, top it off with a 50/50 mix of coolant and distilled water. This simple fix resolves a majority of heater issues.
If the coolant level is fine, the problem could be more complex. A faulty thermostat that's stuck open will cause the engine to run too cool, especially in cold weather. You might notice your temperature gauge never reaching the middle. Air pockets in the system can also block flow to the heater core; this often happens after recent cooling system work. Finally, a clogged heater core or a malfunctioning blend door actuator (the part that directs air flow) inside your dashboard could be to blame. For these issues, a professional diagnosis is often necessary.
Here is a quick reference for common symptoms and their likely causes:
| Symptom | Most Likely Cause | Other Possible Causes |
|---|---|---|
| Blows cold air, engine temp gauge is low | Stuck Open Thermostat | Low Coolant |
| Blows cold air, engine temp is normal | Low Coolant | Airlock in System, Clogged Heater Core |
| Heat only works at high RPMs | Low Coolant | Failing Water Pump |
| No air flow from vents, or only from defrost | Blend Door Actuator Failure | Vacuum Leak (in older cars) |
| Sweet smell inside cabin, foggy windows | Leaking Heater Core | - |

First, check if your engine is getting up to temperature. If the gauge stays near "C," the thermostat is probably stuck open. That's a pretty easy and cheap fix. If the engine is hot but you're still getting cold air, pop the hood and check the coolant level in the overflow tank. It's the most common reason. If it's low, fill it up with the correct coolant mix. If that doesn't work, you might have air in the system or a clog, and it's time to see a mechanic.

I had this exact problem last winter. My engine was warming up fine, but the air from the vents was icy. I was worried it was going to be a huge repair. My brother, who's handy with cars, had me check the coolant. Sure enough, the reservoir was almost empty. We filled it up, burped the system to get the air out, and the heat came roaring back. It cost me nothing but a bottle of coolant. Always start with the simple stuff.

As a mechanic, I see this daily when it gets cold. Nine times out of ten, it's a low coolant level from normal evaporation or a tiny leak. People forget the heater runs on hot coolant. If the level is good, my next check is the thermostat. A bad thermostat is cheap part, but if you ignore it, your engine will run inefficiently. A clogged heater core is the worst-case scenario; the repair is labor-intensive because the dashboard often has to come out.

Don't overlook the cabin air filter. While a dirty filter won't stop heat entirely, it can severely restrict airflow, making it feel like the heater is weak. It's located behind the glove box in most cars and is a simple, inexpensive DIY replacement. Check your owner's manual for the location and type. It's a good first step, especially if you also notice weak airflow from the AC. Pair this with a coolant level check for a thorough basic diagnosis.


