A Patient Asks: “How do you know if an infection is bacterial or viral?”

The question: When you have an upper respiratory infection, how can you tell if it’s bacterial and you need antibiotics or if it’s viral and antibiotics won’t help?

The science: Statistics show that by far the majority of infections in the respiratory tract (sinuses, nose, throat, lungs) are viral. Bacteria are responsible for sinusitis, for example, in only 0.5-2% of all cases. Bacteria (specifically strep infections) are responsible for pharyngitis (sore throats) in only 5-15% of cases. Rarer bacteria are responsible in less than 5% of cases. Viral infections account for sore throats in 80% of cases. Bacterial infections are responsible for bronchitis in only 1-5% of cases.

In general, viral infections are less severe than bacterial infections, meaning patients may feel lousy but can still mostly function. There may be fevers initially in viral infections but they tend to be lower and more self-limited than with bacterial infections, which in general impair patients’ ability to function far more significantly. One final big clue that an infection is viral rather than bacterial is that most bacterial infections only involve one part of the respiratory system (sinuses or throat or lungs or ears) while viruses can and commonly do involve multiple locations in the respiratory tract.

Importantly, the presence of colored mucus doesn’t suggest a bacterial infection is more likely than a viral infection. Colored mucus comes from dead white blood cells, which swarm to engulf and kill bacteria and viruses both. Colored mucus, in other words, only indicates infection, not which kind of infection you have.

My recommendation: Most upper respiratory tract infections are viral, but it’s not always so easy to tell. In general, if you continue to be significantly symptomatic with no improvement after 7 days, the likelihood you’re dealing with a bacterial infection rises high enough that you should contact your doctor.

[jetpack_subscription_form title=” subscribe_text=’Sign up to get notified when a new blog post has been published.’ subscribe_button=’Sign Me Up’ show_subscribers_total=’0′]

Leave A Comment

Your email address will not be published. Required fields are marked *