getapps.cafe
← Back to the Blog
windowswindows-appstroubleshootingdisk-spacenative-appslocal-firstproductivitymaintenance

How to Uninstall Programs on Windows (Leftover Files Included)

Windows removes the program and leaves the rest: caches, settings folders, ghost rows in the app list. Where the leftovers live, which ones are safe to delete, and which to leave alone.

You uninstall a video editor that took up 4 GB. The progress bar finishes in eleven seconds. Explorer then reports that the drive gained 900 MB.

The other three gigabytes are still on the disk, sitting in folders the uninstaller never owned. Every Windows app writes to two places: the install folder, which the uninstaller knows about, and your user profile, which it mostly ignores. Learning where that second pile lives is most of the job.

What the uninstaller actually removes

A normal uninstaller deletes the program files, the shortcuts, the file associations, and its own bookkeeping. On an app that behaves, it also stops and removes the services it installed.

What it leaves behind is everything the app created while you used it: caches, logs, settings, downloaded updates, thumbnails, saved sessions, and sometimes a licence file. That data sits in your profile because Windows expects per-user data there, and an uninstaller running inside your account rarely asks to sweep it.

The four folders where leftovers live

All four are reachable from the Run box. Press Win+R, type the variable, press Enter.

  • %LOCALAPPDATA% opens C:\Users\your-name\AppData\Local. This is the big one: caches, local databases, downloaded updates, and the working folders of anything built on Electron or Chromium.
  • %APPDATA% opens the Roaming folder one level up. Settings, profiles, licence files, and the config an app would carry to another machine if it had the chance.
  • %PROGRAMDATA% opens C:\ProgramData. Data shared by every account on the machine, hidden by default, and safe to look through.
  • Program Files and Program Files (x86). The shell of the app. A folder still here after an uninstall usually means the uninstaller gave up partway.

Each window opens in Explorer sorted by name. Switch to Details view and click Date modified twice so the newest lands at the top. Anything removed yesterday collects there, and folders named after the app, its vendor, or its updater are the ones to open first.

AppData is hidden at the profile level, so browsing there by hand means turning on View > Show > Hidden items. Typing the variable skips that step, which is why it's worth learning the four names.

The registry tells the same story one level down: uninstall records under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, plus a matching branch under HKEY_CURRENT_USER. That's where the app list reads its rows from.

Read the folder before you delete it

Four checks, each a few seconds long, save you a reinstall.

Shared runtimes. A folder named Microsoft, Google, Mozilla, NVIDIA, Intel, Package Cache, .NET, or Visual C++ belongs to software you still use. Leave every one of them alone.

Vendors ship several products under one name. If you removed one app from a maker and kept another, the vendor folder holds data for both, so open it and delete only the subfolder that matches the departed app.

Games keep saves in %LOCALAPPDATA% or in Documents\My Games. Deleting those deletes progress, and Steam, Epic and GOG may or may not hold a cloud copy.

Rename before deleting. Add -old to the folder name, use the machine normally for a day, then delete it when nothing complains. A rename is reversible in a way that Shift+Delete isn't.

Deleted items also land in the Recycle Bin when you use the ordinary Delete key, so a wrong folder costs a restore rather than a reinstall.

Ghost entries and the things that keep running

Removing the files doesn't always remove the row in Settings, because those rows come from the uninstall records above. An app whose uninstaller skips that cleanup leaves an entry that opens an error message when clicked.

A leftover startup item matters more, because it runs on every boot. Open Task Manager with Ctrl+Shift+Esc, go to Startup apps, and look for an entry with no publisher, or one you no longer recognize. Disable it and reboot first. If the machine behaves, delete the matching value under HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.

Services come next. Type services.msc into the Run box and sort by name. One left by a removed app shows as stopped with a path pointing at a file that no longer exists. From an administrator Command Prompt, sc delete followed by the service name removes it. That command is unforgiving, so read the name twice.

Scheduled tasks are the quietest of the three. Type taskschd.msc, open Task Scheduler Library, and look for update checkers that fire a "file not found" notification once a week. Deleting the task is safe.

The built-in routes that do more

  1. Settings > Apps > Installed apps on Windows 11, or Apps & features on Windows 10. Sort by size to see what is worth removing.
  2. Type appwiz.cpl into the Run box for the old Programs and Features list. It still surfaces classic desktop installers that the newer list hides.
  3. Type winget list, then winget uninstall with the package id. The package manager ships with Windows 11 and removes apps whose own uninstaller has stopped working, including programs it never installed, because it reads the same uninstall records.
  4. Settings > System > Storage > Temporary files, with Storage Sense as the automatic version. This clears the Temp folders and upgrade leftovers, which is often where the largest single number sits.
  5. Reset this PC with Keep my files. A last resort, and a fair one for a machine carrying years of half-removed software.

What registry cleaners are worth

Registry leftovers are measured in kilobytes. A cleaner promises to remove them and charges for the promise. The measurable gain is close to nothing, and the failure mode is a machine that boots to an error. Skip the whole category.

Two exceptions, both narrow: the uninstall record behind a ghost row in the app list, and the Run value behind a startup item you have already tested by disabling it. Export the key before editing (Registry Editor > File > Export), which turns a mistake into a file you can double-click to undo.

Where the space actually is

On a laptop that has been in service for two years, the ranking usually goes like this: browser caches and profiles, chat apps holding years of images, game launchers with shader caches, IDE indexes, WSL or Docker virtual disks, then the Downloads folder.

Two entries deserve their own line. A WSL distribution lives inside a single .vhdx file that grows and never shrinks on its own, so deleting 30 GB inside Linux frees nothing until the virtual disk is compacted. Virtual machines behave the same way: one file, sixty gigabytes, and a delete that barely moves the number.

Windows.old is the other one. It shows up after a feature update, holds the previous installation at 10 to 30 GB, and Windows removes it on its own after ten days. Until then, Disk Cleanup or Storage > Temporary files takes it sooner.

Three apps that finish the job

DiskBrew draws a drive or a directory as rings sized by what each one really occupies, so the 40 GB offender announces itself instead of hiding four levels down. Double-click a slice to drill in, right-click one to send it to the bin, and anything DiskBrew wasn't allowed to read gets marked as such, so a total never hides a gap. It runs on Windows in x64 and arm64 builds, and scanning the same place twice is instant because the results are remembered. There's a DiskBrew page with the screenshots.

DripCleaner takes the same job in categories. Caches, logs and leftover app data are grouped so you can expand a group, look at it, and clear only the part you trust. It lists large files over 100 MB across your personal folders, reports the reclaimable total up front, and deletes nothing until you tick a box. The Windows builds are x64 and arm64, and the DripCleaner page covers what each category touches.

DiskSpeed answers a different question. When the free space is fine and the machine still feels slow, it measures the drive itself: sequential throughput in MB/s and random 4K IOPS, with a history so two runs a month apart mean something. A drive that sits well below its own numbers is a candidate for replacement rather than another cleanup.

All three sit on the Espresso shelf, with DiskSpeed on Pour Over.

The habit worth keeping

The uninstaller removes the program. You remove the data. That division of labour has held for twenty years of Windows and shows no sign of changing.

Two habits cover most of it. Uninstall the moment you decide an app isn't for you, while its name is still fresh, rather than in a January sweep when every folder is a guess. And glance at the free-space figure before installing something large, so the arithmetic at the end is a measurement instead of a feeling.

If the folder that won't shrink is on a Windows machine you also use for work, the guide to freeing up disk space on Windows covers the built-in tools for that side of the job. The Mac version of this post, how to uninstall apps on Mac with the leftover files, follows the same logic through ~/Library. And if the two machines share a desk, Two Machines, One Menu covers which apps travel between them.

The menu is 128 native apps for macOS and Windows, from $3.99 a month, or $1.99 a month billed yearly at $23.88. Family Roast covers five computers for $7.99 a month, or $3.99 a month billed yearly at $47.88. The 7-day free trial adds a card when it starts and charges nothing until it ends.