Skip to content

How to identify and remove bloatware from Windows 11

Brock Bingham candid headshot
Brock Bingham|Updated April 8, 2024
Illustration of computer desk and monitor with PDQ logo
Illustration of computer desk and monitor with PDQ logo

A new operating system used to offer a blank slate. But nowadays, most OSes come loaded with preinstalled apps — from TikTok to WhatsApp — that you may never use. They take up valuable space and bog down your processing power. And dare I say, they've earned their name: bloatware.

In this blog, I’ll walk you through how to remove bloatware from Windows 11 using several different methods.

What is bloatware?

Bloatware is an unnecessary and unwanted app that comes installed on an operating system. Bloatware apps take up valuable storage space on your hard drive and can make your device run more slowly — a frustrating scenario, especially if you don’t even use this preinstalled software. 

How to identify a bloatware app

I can’t list all the bloatware included with Windows 11 because bloatware is subjective. What’s bloatware to me may not be bloatware to you. For example, just because I don't want Microsoft Clipchamp on my workstations doesn't mean you agree.

For that reason, I recommend thoroughly inspecting a fresh installation of your version of Windows 11 and making a list of applications you don't want included with your OS. Remember that preinstalled software may vary between Windows 11 Home, Pro, and Enterprise editions.

The Windows 11 bloatware problem

Bloatware in Windows is nothing new. And maybe we’ve come to expect it from OEMs, but finding unnecessary third-party apps on our fresh OS installs is disappointing. However, bloatware isn’t even the root of the issue. Frankly, the real problem is Microsoft's lack of communication and transparency.

If you’ve done enough research, you’ll quickly realize that Microsoft doesn’t provide adequate documentation regarding this topic. Most of the relevant information on the web is from sysadmins documenting their processes through trial and error, which shouldn’t be the case. Hopefully, Microsoft will step up and provide better insights for the community since it should be the ultimate authority on the topic.

Here to learn how to remove bloatware from Windows 10?

A quick note before we get started: If you’re following along and plan to remove bloatware from Windows 10, proceed with caution. While some of the methods described below may help you remove bloatware in Windows 10, the steps I've outlined below for each method are only tried and true for Windows 11.

How to manually remove bloatware from Windows 11

  1. Click the Start button to open the Start menu.

  2. Right-click on the offending bloatware, then click Uninstall.

    Right-click and uninstall the unwanted application.

This surefire method gets those annoying Windows apps off your computer super quickly. However, there are a few things I should point out.

First, this method removes the bloatware only from the current user profile. Anyone else using that device will have to remove their own bloatware.

Another helpful bit of information I should point out is that many — but not all — “bloatware” apps aren’t actually installed. Many apps on the Start menu — including ESPN, Instagram, and TikTok — are just links to installers. I’ve heard them referred to as “quick installers” and “ghost apps.” You can test this for yourself by just clicking on the app icon. You’ll notice an installer progress bar appears under the icon. Once the installation finishes, you’ll receive a notification that the app has been installed. (So that’s not deceptive at all...)

The last thing I want to mention is that since many of these apps aren’t installed, you won’t find them in the All apps menu. Also, they won’t appear as an installed app when you search for them. They reside solely as a link pinned to the Start menu. However, if you click on them and go through the installation process, they appear in the All apps menu and search results.

How to remove bloatware using Local Group Policy

If uninstalling each app one by one doesn’t impress you, I don’t blame you. It’s not the most efficient method, nor does it divulge where each app or link comes from in the first place. To get to the root of our bloatware problem, we’ll use Local Group Policy along with some other IT foolery.

  1. Enter group policy into the Windows 11 search field, then click on the Edit group policy app.

    Open the group policy editor.

  2. Navigate to Computer Configuration > Administrative Templates > Windows Components > Cloud Content.

  3. Double-click the Turn off cloud optimized content policy.

    Open the "Turn off cloud optimized content" policy.

  4. Select Enabled, then click OK to save and close the policy.

    Enable the policy then click OK.

  5. Open File Explorer and navigate to C:\Users\<current_user>\AppData\Local\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy. You will need to show hidden items to navigate to this directory.

  6. Delete the LocalState folder. You can move this folder to a different directory if you’d rather save it, just in case.

    Delete the LocalState folder.

  7. Restart the PC.

Once the computer reboots and you log back in, your Start menu should be bloatware free. Remember that this removes only the bloatware links, such as ESPN, Spotify, and Messenger. This process won’t remove other APPX packages you may or may not want installed on your system. Also, this process only works for the current user and new user account. Microsoft’s approved bloatware will still appear for other existing users.

One last caveat I should mention before moving on: These changes may or may not last forever. Windows updates have a way of restoring things we’d rather not restore. While this is usually the case only with Windows feature updates, I’ve heard rumors that regular cumulative updates can also revert some of these changes, so keep an eye on your config settings after installing updates.

Windows 11 widgets annoying you too?

Read our step-by-step guide on how to remove widgets in Windows 11.

How to remove bloatware using Windows PowerShell

While everyone agrees that bloatware is annoying, several other default Windows 11 settings are just as problematic. If you’re looking for an easy way to remove bloatware and configure all these changes, PowerShell is the answer. 

There’s not much that PowerShell can’t do, so it’s no surprise that it can efficiently configure Windows 11 for you. Here are some of the changes these PowerShell scripts can make.

  • Remove bloatware (both quick installers and APPX packages)

  • Disable Microsoft Teams (🙏)

  • Disable Cortana (🙏🙏🙏)

  • Disable news and interests

  • Disable cloud content

  • Disable consumer experiences

  • Disable Windows Spotlight

Make sure you review and test these scripts to understand all the changes they make. If there are changes you’d rather not implement, feel free to modify these scripts to meet your users’ needs.

This first script removes APPX packages that many users consider bloatware. It uses an allow list to ensure necessary apps, like Notepad and Calculator, are not removed. Add any other APPX packages you want to keep to the allow list.

##Get appx Packages $Packages = Get-AppxPackage ##Create Your allowlist $AllowList = @( '*WindowsCalculator*', '*Office.OneNote*', '*Microsoft.net*', '*MicrosoftEdge*', '*WindowsStore*', '*WindowsTerminal*', '*WindowsNotepad*', '*Paint*' ) ###Get All Dependencies ForEach($Dependency in $AllowList){ (Get-AppxPackage -Name “$Dependency”).dependencies | ForEach-Object{ $NewAdd = "*" + $_.Name + "*" if($_.name -ne $null -and $AllowList -notcontains $NewAdd){ $AllowList += $NewAdd } } } ##View all applications not in your allowlist ForEach($App in $Packages){ $Matched = $false Foreach($Item in $AllowList){ If($App -like $Item){ $Matched = $true break } } ###Nonremovable attribute does not exist before 1809, so if you are running this on an earlier build, remove “-and $app.NonRemovable -eq $false” rt; it attempts to remove everything if($matched -eq $false -and $app.NonRemovable -eq $false){ Get-AppxPackage -AllUsers -Name $App.Name -PackageTypeFilter Bundle | Remove-AppxPackage -AllUsers } }

This second script removes the quick installer bloatware and configures several Windows 11 settings that are more appropriate for business use.

# modified from https://gist.github.com/redlttr/8b95df51fd472d459b5c3a3ae6c8f5ad #region install the PolicyFileEditor module to update local group policy Try { $null = Get-InstalledModule PolicyFileEditor -ErrorAction Stop } Catch { if ( -not ( Get-PackageProvider -ListAvailable | Where-Object Name -eq "Nuget" ) ) { $null = Install-PackageProvider “Nuget” -Force } $null = Install-Module PolicyFileEditor -Force } $null = Import-Module PolicyFileEditor -Force # help about_registryvaluesforadmintemplates # #endregion # Variables $ComputerPolicyFile = Join-Path $env:SystemRoot '\System32\GroupPolicy\Machine\registry.pol' $UserPolicyFile = Join-Path $env:SystemRoot '\System32\GroupPolicy\User\registry.pol' $WinVer = Get-CimInstance win32_operatingsystem # Define policies $ComputerPolicies = @( [PSCustomObject]@{Key = 'Software\Microsoft\Windows\CurrentVersion\Communications'; ValueName = 'ConfigureChatAutoInstall'; Data = '0'; Type = 'Dword' } # Disable Teams (personal) auto install (W11) [PSCustomObject]@{Key = 'Software\Policies\Microsoft\Windows\Windows Chat'; ValueName = 'ChatIcon'; Data = '2'; Type = 'Dword' } # Hide Chat icon by default (W11) [PSCustomObject]@{Key = 'Software\Policies\Microsoft\Windows\Windows Search'; ValueName = 'AllowCortana'; Data = '0'; Type = 'Dword' } # Disable Cortana [PSCustomObject]@{Key = 'Software\Policies\Microsoft\Windows\Windows Feeds'; ValueName = 'EnableFeeds'; Data = '0'; Type = 'Dword' } # Disable news/interests on taskbar [PSCustomObject]@{Key = 'Software\Policies\Microsoft\Windows\Windows Search'; ValueName = 'DisableWebSearch'; Data = '1'; Type = 'Dword' } # Disable web search in Start [PSCustomObject]@{Key = 'Software\Policies\Microsoft\Windows\Windows Search'; ValueName = 'AllowCloudSearch'; Data = '0'; Type = 'Dword' } # Disable web search in Start [PSCustomObject]@{Key = 'Software\Policies\Microsoft\Windows\CloudContent'; ValueName = 'DisableCloudOptimizedContent'; Data = '1'; Type = 'Dword' } # Disable cloud consumer content [PSCustomObject]@{Key = 'Software\Policies\Microsoft\Windows\CloudContent'; ValueName = 'DisableConsumerAccountStateContent'; Data = '1'; Type = 'Dword' } # Disable cloud consumer content [PSCustomObject]@{Key = 'Software\Policies\Microsoft\Windows\CloudContent'; ValueName = 'DisableWindowsConsumerFeatures'; Data = '1'; Type = 'Dword' } # Disable Consumer Experiences ) $UserPolicies = @( [PSCustomObject]@{Key = 'Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced'; ValueName = 'TaskbarMn'; Data = '0'; Type = 'Dword' } # Disable Chat Icon [PSCustomObject]@{Key = 'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer'; ValueName = 'HideSCAMeetNow'; Data = '1'; Type = 'Dword' } # Disable Meet Now icon (W10) [PSCustomObject]@{Key = 'Software\Microsoft\Windows\CurrentVersion\Search'; ValueName = 'SearchboxTaskbarMode'; Data = '1'; Type = 'Dword' } # Set Search in taskbar to show icon only [PSCustomObject]@{Key = 'Software\Policies\Microsoft\Windows\CloudContent'; ValueName = 'DisableWindowsSpotlightFeatures'; Data = '1'; Type = 'Dword' } # Disable Windows Spotlight ) # Set group policies try { Write-Output 'Setting local group policies...' $ComputerPolicies | Set-PolicyFileEntry -Path $ComputerPolicyFile -ErrorAction Stop $UserPolicies | Set-PolicyFileEntry -Path $UserPolicyFile -ErrorAction Stop gpupdate /force /wait:0 | Out-Null Write-Output 'Group policies set.' } catch { Write-Warning 'Unable to apply group policies.' Write-Output $_ } # Cleanup start menu & taskbar try { if ($WinVer.Caption -like '*Windows 11*') { # Reset existing start menu layouts $Layout = 'AppData\Local\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\LocalState' Get-ChildItem 'C:\Users' | ForEach-Object { Remove-Item "C:\Users\$($_.Name)\$Layout" -Recurse -Force -ErrorAction Ignore } } # Restart Explorer if ($env:USERNAME -ne 'defaultuser0') { Get-Process -Name Explorer -ErrorAction SilentlyContinue | Stop-Process -Force } } catch { Write-Warning 'Unable to complete start menu & taskbar cleanup tasks.' Write-Output $_ } <# Report on configured policies Get-PolicyFileEntry -Path $ComputerPolicyFile -All Get-PolicyFileEntry -Path $UserPolicyFile -All remove the policies Get-PolicyFileEntry -Path $ComputerPolicyFile -All | Remove-PolicyFileEntry -Path $ComputerPolicyFile Get-PolicyFileEntry -Path $UserPolicyFile -All | Remove-PolicyFileEntry -Path $UserPolicyFile #>

As I mentioned in the previous section, Windows updates have a way of reverting changes made to the OS. To ensure these changes endure, you may consider configuring these scripts to run every time users log on. Keep in mind that it may take a few minutes for these scripts to run the first time you execute them. However, each subsequent run should execute almost immediately.

Want to increase your PowerShell knowledge?

Tune into The PowerShell Podcast, where PowerShell experts share their tips, tricks, and best practices.

Other resources to help manage bloatware

While the methods we’ve covered effectively remove bloatware in Windows 11, the best strategy is to start with an image that already has bloatware removed and the correct settings configured. A properly configured OS image ensures all user profiles get the necessary settings and apps. Check out our guide on configuring default profiles in Windows 11 to build the best image for your users.

If you’re more of a visual learner, our Windows 11 bloatware webcast walks you through removing Windows 11 bloatware and answers many common questions about the process.

Finally, if you’re looking for a way to deploy the scripts used in this article, check out PDQ Deploy. If most of your devices are remote, PDQ Connect, our agent-based solution, can deploy PowerShell scripts to devices anywhere in the world with an internet connection. You can try both products free for 14 days.

How to remove bloatware FAQs

What’s the easiest way to remove bloatware?

It’s subjective, but I recommend using PowerShell to remove bloatware from your device. Not only can you use scripts to remove unwanted programs, but you can take it a step further and change other default Windows settings that are (arguably) just as annoying as bloatware.

Is it safe to remove bloatware?

Yes, it’s totally safe to remove bloatware from your device — as long as you define bloatware as unwanted applications that serve no real purpose on your operating system. Now, if you consider the registry to be bloatware ... we may need to talk before you run scripts or crack open Local Group Policy. 😅

Is there an app or tool that removes bloatware automatically?

Yes, there are apps and tools that remove bloatware automatically — but we don’t recommend using them. Bloatware is a highly subjective concept, and the last thing you want to do is use a "bloatware remover” only to see it delete programs you actually need or want to keep. By using one of the methods described in this blog, you can get rid of bloatware just as fast — all without relying on a third-party tool.

Does Windows 11 still have bloatware?

Unfortunately, yes, the most current version of Windows 11 still contains bloatware. But by using one of the removal methods described in this blog, you can get rid of bloatware in a flash.

Brock Bingham candid headshot
Brock Bingham

Born in the '80s and raised by his NES, Brock quickly fell in love with everything tech. With over 15 years of IT experience, Brock now enjoys the life of luxury as a renowned tech blogger and receiver of many Dundie Awards. In his free time, Brock enjoys adventuring with his wife, kids, and dogs, while dreaming of retirement.

Related articles