How to Stop Windows Search Slowing down the computer
Reduce Windows Search is slowing down the computer.
If you find that sometimes your computer is running slow, and you try to find out, and you see Windows Search is running or indexing, and it's impacting you, I work in computer servicing and I commonly see complaints such as:
Windows Search is slowing down my laptop.
Why is my laptop so slow?
Windows Searcgh high CPU usage in the task manager
Here, I've documented some steps to manage Windows search , including lighter options through the Windows settings, as well as a more comprehensive approach to ensure that Windows search runs only in the areas that need to be searched.
Under setttings -> Privacy & Secuirty -> Search
Ensure Classic search is used as Enhance will do the entire PC/Laptop all the areas you never normally search.
The "Add an Excluded Folder" is very useful. This is a list which you should see; if not, it's worth adding.
%SystemRoot%
%HomeDrive%%HomePath%\AppData
%ProgramData%
%ProgramFiles%
%ProgramFiles(x86)%
It's worth looking with Windows File Explorer, as everyone's setup is the same. If you have some custom locations or see some odd folders called temp or working, like adobeTemp, which is an internal working of an application and not your user-created documents or photos.
Set Windows Search to Low Priority and use only 1 CPU/Core.
This seems like an extreme option, but the only way to ensure that once you have a real background service, it will be installed at a very low-priority job in the background is to have a process which sets this for you. There are many ways to accomplish this, but here is an explained, simple approach that utilises built-in Windows features and a script.
Which Windows Search events are being logged?
We can trigger an event, so we need to first get a picture of what Windows Search puts in the system event logs, from which we can trigger a script to set the priority.
Use Windows Event Viewer to find window Search events
Press
Windows + R, type eventvwr.msc, then hit Enter You open "Windows Logs" > "Application". Either find a mention under "Source" = "Search" in the by hand or use the right-hand menu "Filter Current Log" to Event Sources = "Search"
The three key pieces of information that trigger an event are the source, which is this is under "WIndows Logs", it's an "Application" log , and the event ID, which we can see is used in event IDs 1000,1006,1009 & 1015.
- [1000] = Search service started → indexing resumes
- [1006] Indexing started/resumed (status change)
- [1009] Full index rebuild started
- [1015] Catalog reset → indexing restart triggered
VB Script to lower service window update priority and affinity.
We need a script to take any found Windows Search process and set it to low priority, and will only use 1 CPU/CORE by setting the process affinity for us.
This script will also check if there is a subprocess, also known as a child process, from the Windows search service and ensure it has the same enforcement of low priority, etc.
I suggest you have a dedicated folder if you don't already have one for your scripts.
e.g.
C:\Users\YourUserName\Documents\MyScripts
This script will create a log file in the same directory when it runs; in this example, it would be called "ServiceEnforcer_[Wsearch]LOG.txt"
Setting up Windows task scheduler to help deprioritise Windows updates.
This built-in window task scheduling tool can be triggered by the Windows event ID we found in the Windows update service, and call this script to enforce the lower priority for us.
There are always multiple ways to achieve this, and you can have one script triggered by many events in one, but I recommend setting up a job for each one. In this example, repeat steps 4 four times foreach event 1000,1006,1009 & 1015.
These are the steps for 1st one. event ID = 1000
Click on the Windows start button and type "Task Scheduler", then launch.
Step 1: On the right-hand menu, select "Create Task"
Step 2: Then complete the 1st tab, known as "General"
A Name: ServiceEnforcer [Wsearch] [1000]
Description: Check for server [Wsearch] triggered from the event [1000] and run a script to enforce the service is LOW priority and can only use 1 CPU core.
Selected: Run only when the user is logged on
Selected: Run with the highest privileges
Step 3: Then on 2nd tab "Triggers" press "New..."
Begin this task: On an event
Log: Application
Source : Search
Event ID: 1000 (for this example)
Selected: Enabled.
Press Ok
Step 4: In the next tab, "Action", press "New..."
Action: Start a program
Program/script: %windir%\System32\wscript.exe
Add Arguments: ServiceEnforcer.VBS Wsearch 1000
Start in: C:\Users\UserName\Documents\MyScripts (location your storing ServiceEnforcer.VBS)
check:
Ensure deselected: Start the task only if the computer is connected to AC power.
Step 6: The last tab "Settings"
Complete for this Event
You have now created a trigger to call the script for the 1st event, do this same step for the next 3 events, you should have a list of task scheduled.
You can right-click each one and choose run to ensure the log file in the directory where you stored the script is getting created and showing it working.
Here is an example log output:
16/02/2026 13:42:43 >>> Started Service [Wsearch] Background Enforcer (note Event ID [1000])
16/02/2026 13:42:44 >>> Check for service [Wsearch] found PID:3480
16/02/2026 13:42:44 >>> Yes service [Wsearch] PID [3480] Set to LOW priority
16/02/2026 13:42:45 >>> Yes service [Wsearch] AFFINITY [3480] Set to CPU 1
16/02/2026 13:42:46 >>> Yes service [Wsearch] PID [3480] Has a child sub process [2868]
16/02/2026 13:42:46 >>> Yes service [Wsearch] PID [2868] Set to LOW priority
16/02/2026 13:42:47 >>> Yes service [Wsearch] AFFINITY [2868] Set to CPU 1
16/02/2026 13:42:47 >>> Yes service [Wsearch] PID [3480] Has a child sub process [13996]
16/02/2026 13:42:47 >>> Yes service [Wsearch] PID [13996] Set to LOW priority
16/02/2026 13:42:48 >>> Yes service [Wsearch] AFFINITY [13996] Set to CPU 1
16/02/2026 13:42:48 >>> Finished Service [Wsearch] Background Enforcer
Conclusion
Managing Windows Search doesn’t need to be a frustrating or disruptive experience. With the right approach, you can control what is searched, prevent CPU spikes, and keep a system stable and performance smooth. These strategies aren’t just about convenience; they’re about maintaining productivity, particularly for small businesses where every bit of computing power counts.
At Optimised Computing, we understand the nuances of Windows maintenance—from registry tweaks to Group Policy configuration—and we routinely implement tailored solutions to help our customers stay ahead of disruptive updates. Whether you're a home user or a growing business, we make sure your systems update on your terms, not Microsoft's.
If you'd rather focus on running your business than troubleshooting update hiccups, let Optimised Computing handle the heavy lifting

Comments
Post a Comment