When I use MS uninstall for an app deletion, such as, Mozilla
Firefox I run a search scan only to find a plethora of remaining
folders, and registry keys. What does uninstall really uninstall? And
how do I safely purge the remaining clutter?
What we have here in front of us is a can of worms.
Uninstallers do uninstall most things, but not everything. Sometimes
they could uninstall more, sometimes they should uninstall
more, but sometimes you don’t want them to uninstall more, and
sometimes they can’t uninstall more.
Confused yet? Well, that’s how the uninstaller would feel, if it had
Become a Patron of Ask Leo! and go ad-free!
On the surface, it seems very simple – an uninstall should remove
all files, folders and registry settings that are associated with the
program that’s being uninstalled.
On the surface.
Let’s look at why that’s so rarely true.
If you’re like me, you probably spend some time customizing the
applications you use to your taste. Those settings are likely kept in
Many applications will leave those customizations in the registry
when they are uninstalled, just in case you might re-install the
application at some time in the future. After that reinstall you might
find all your settings remembered. Yes, an uninstaller could ask, but
most do not since it’s more work for what most would consider an edge
messier, problematic parts of software management.”
Quite often also, additional registry entries are created as the
program is being used, sometimes not even by the program itself. Unless
a program takes special care to keep track of absolutely
everything it’s created there’s no way for the uninstaller to know
with certainty everything that should be removed.
So, yes, it’s very common that stuff gets left in the registry.
Now the purest might say that the additional work of keeping track,
or the additional analysis at uninstall time is worth it, and that all
“leftovers” should be removed.
And the purist might well be right.
In fact, the entire genre of registry cleaner applications attempts to fill in this gap. The problem, of course,
is that particularly when the application itself can’t keep track of
what needs to be removed it’s nearly impossible to expect a third party
application to be able to.
In a very practical sense leaving orphaned entries in the registry
doesn’t really impact performance that much until or unless it becomes
truly overwhelming. And for the vast majority of users that time never
And that’s a practical reality that’s allowed, and even encouraged,
uninstall programs to be careless or sloppy when it comes to the
Most applications include files that can be shared with other
applications. For example, Firefox might share some common files with
Thunderbird, both Mozilla products. (Not saying that they specifically
do, just theorizing an example.)
When you install the first application all required files are
installed. When you install the second, those shared files are already
there, and may, or may not, be installed or updated.
Uninstall one of the applications. Naturally it cannot uninstall the
shared files, or it’ll break the other application.
Now, uninstall the second application. What should happen? Ideally
it would somehow “know” that the shared files are no longer in use by
anyone else and remove them. In reality this is typically a much more
complex problem and as a result many uninstallers take the safer
approach of leaving behind any files that still might be
shared by other programs.
The result is that you might find files and folders on your machine
that are no longer in use, simply because the uninstaller chose not to
take the risk of removing them, in case some other program was using
it. Whether it could have, or should have, or even been able to tell
will vary, of course, from scenario to scenario.
Files In Use
It’s not uncommon for an application you’ve installed to have
components that are actually running at the time you uninstall it. Whether
it’s a tray notification application or a system service or something
else, it’s very common for a portion of the application to be “in use”
come removal time.
Once again, ideally the uninstaller would terminate the running
component, or ask you to terminate it. Sometimes it does. Sometimes it
doesn’t. Sometimes it can’t, because either the application refuses to
terminate, or the uninstaller simply can’t know what applications apply
or how to “ask” them to terminate.
And as we know, a file that’s in use cannot be deleted.
Some uninstallers get around this by asking you to reboot, which
forces the application to terminate, and by adding delete instructions
that kick in at system boot time. In cases like this, you’ll often not
see the files actually disappear until you perform that reboot.
Some uninstallers don’t even try, and leave the files that were in
So just what DO they uninstall?
The examples above are just that, examples. Perhaps they are the
most common, but there are actually many other reasons that an uninstaller
might well leave behind files, folders and registry entries.
So, given all the things that might get left behind, it’s a fair
question to ask what they do uninstall. What’s the short answer?
They uninstall what they can. Mostly.
There’s no doubt about it, uninstalling software is one of the
messier, problematic parts of software management. Depending on the
scenario and the quality of the software, results are often all over the
In fact, there’s even a term for it: “Software Rot”. There are other
things that contribute to software rot, but incomplete uninstalls are a
major contributing factor.
What to do
My approach is actually pretty simple. Unless I’m experiencing an
actual problem that can be traced to or is likely to have been caused
by an incomplete uninstall, I do nothing.
Let me say that again: I do nothing.
You can spend a lot of time (and sometimes money) trying to clean up
your system, often with little impact on the usefulness or performance
of your machine, and often with questionable tools that sometimes
themselves cause more problems than they’re worth. The practical
reality is that incomplete uninstalls are messy but what they leave
behind rarely actually causes a real problem.
That being said, the cumulative effect over time does happen. Systems
can sometimes become more and more unstable due to software rot
depending on how often you install and uninstall software, and what
kinds of other things you do with your computer.
I know that there are alternatives that we’ll likely hear about in
comments to this article, but my position is that the best way to truly
clean your system over time is to periodically reformat and reinstall
what you do use, from scratch. And I’ll even say it’s the only
definitive and complete way to clean it up.
I do it perhaps every two years, either as a side effect of getting
a new machine, repairing a machine, or having a machine finally reach a
point where it’s the right thing to do.