How to Bulk Delete All Passwords from Google Password Manager (No App Required)
The Problem: Google Won’t Let You Delete All Passwords at Once
If you’ve ever tried to clear out your Google Password Manager, you’ll already know the frustration. There’s no “Select All” option. No “Delete All” button. No bulk management tool of any kind. The only option Google gives you is to open each password entry one by one and delete them individually.
With hundreds of saved passwords, that’s simply not realistic.
After finding myself staring down 631 passwords with no way to clear them quickly, I decided to find a solution. What follows is a step-by-step guide, including a JavaScript script you can run yourself directly in your browser, completely free.
No third-party apps. No downloads. No data leaving your machine.
Before You Start: Export Your Passwords First
If you want to keep a record of your passwords before deleting them, export them first.
- Go to passwords.google.com
- Click the Settings icon (top right)
- Select Export passwords
- Save the CSV file somewhere safe
Once you’ve done that (or if you’re happy to delete without a backup), you’re ready to go.
What You’ll Need
- Google Chrome
- Access to passwords.google.com
- About 2 minutes to set up, then patience while it runs
Step-by-Step Guide
Step 1: Go to Google Password Manager
Open Chrome and navigate to:
https://passwords.google.com
Make sure you’re logged into the correct Google account and that your passwords are visible in the list.
Step 2: Open the Chrome Developer Console
Press F12 on your keyboard (or right-click anywhere on the page and choose Inspect), then click the Console tab.
This is where you’ll paste and run the script.
Step 3: Paste and Run the Script
Copy the entire script below, paste it into the console, and press Enter.
{
async function sleep(ms) {
return new Promise(r => setTimeout(r, ms));
}
async function deleteAll() {
let deleted = 0;
while (true) {
await sleep(2000);
// Check if Google has asked you to re-authenticate
if (window.location.href.includes('accounts.google.com') ||
window.location.href.includes('signin')) {
console.warn(`π Google asked for re-login after ${deleted} deletions. Log back in, return to https://passwords.google.com and run the script again.`);
alert(`π Google needs you to log in again.\n\nDeleted so far: ${deleted}\n\nAfter logging in, go back to passwords.google.com and run the script again.`);
break;
}
// Get all password entry links (skip the "Change passwords" row)
const links = [...document.querySelectorAll('.VfPpkd-ksKsZd-XxIAqe.i3FRte a.RlFDUe')]
.filter(a => a.getAttribute('href') && a.getAttribute('href').startsWith('password/'));
if (links.length === 0) {
console.log(`β
All done! Deleted ${deleted} passwords.`);
alert(`β
All done! Deleted ${deleted} passwords.`);
break;
}
// Click the first entry to open its detail page
links[0].click();
await sleep(3000);
// Find the Delete button (the one with an aria-label, not the confirm dialog)
const deleteBtn = [...document.querySelectorAll('button')]
.find(b => b.textContent.trim() === 'Delete' && b.getAttribute('aria-label'));
if (!deleteBtn) {
console.warn('β οΈ No Delete button found β going back.');
history.back();
await sleep(2000);
continue;
}
deleteBtn.click();
await sleep(1500);
// Confirm the deletion dialog (this Delete button has no aria-label)
const confirmBtn = [...document.querySelectorAll('button')]
.find(b => b.textContent.trim() === 'Delete' && !b.getAttribute('aria-label'));
if (confirmBtn) {
confirmBtn.click();
deleted++;
console.log(`ποΈ Deleted #${deleted}`);
} else {
console.warn('β οΈ No confirm button found β going back.');
history.back();
}
await sleep(2000);
// Return to the main list
history.back();
await sleep(2500);
}
}
deleteAll();
}
What the Script Does
The script works by:
- Scanning the page for all password entry links
- Clicking each one to open the detail panel
- Clicking the Delete button
- Confirming the deletion dialog
- Navigating back to the list and repeating
It runs at a deliberate pace (roughly 5 to 6 seconds per entry) to give the page time to load and respond correctly. For 630+ passwords, expect the process to take around 50 to 60 minutes in total.
You’ll see a counter in the console as it works:
ποΈ Deleted #1
ποΈ Deleted #2
ποΈ Deleted #3
...
β
All done! Deleted 631 passwords.
Important: Google Will Ask You to Re-Login
This is probably the most important thing to be aware of. After every 20 to 30 deletions, Google’s security system detects the repeated activity and asks you to verify your identity again.
The script handles this automatically. When it detects you’ve been redirected to a login page, it stops and shows you an alert popup telling you how many passwords have been deleted and what to do next.
When this happens:
- Log back into your Google account
- Navigate back to passwords.google.com
- Open the console again (
F12β Console) - Paste and run the script again
- It will pick up from wherever the remaining passwords are
You may need to do this 10 to 20 times depending on how many passwords you have. It’s a bit repetitive, but still vastly quicker than deleting each entry manually.
Tips for a Smooth Run
- Don’t click anywhere in the tab while the script is running. Interacting with the page can break the loop.
- Keep the tab active and visible. Some browsers throttle JavaScript in background tabs, which can cause timing issues.
- Don’t close the console. You can minimise the DevTools panel, but keep it open.
- If the script stops unexpectedly, just paste and run it again β it will continue with whatever passwords remain.
Frequently Asked Questions
Is this safe to run?
Yes. The script runs entirely within your own browser and only performs actions you could do manually (opening a password entry and clicking Delete). Nothing is sent externally. You are the one running the script, not a third party.
Will this delete passwords from my other devices too?
Yes. Google Password Manager syncs across all devices signed into your Google account, so deletions will be reflected everywhere.
What if the script stops working in the future?
Google occasionally updates the class names and structure of passwords.google.com. If the script stops detecting entries or buttons, the selectors may need updating. The key ones to check are .VfPpkd-ksKsZd-XxIAqe.i3FRte for the password rows and the Delete button logic.
Can I use this on a different browser?
The script itself will work in any browser with a developer console (Firefox, Edge, etc.), but the page structure of passwords.google.com is designed for Chrome and may behave differently elsewhere.
Why doesn’t Google just provide a bulk delete option?
That’s a very good question. As of 2026, they still haven’t. Hopefully this guide saves you the time and frustration of finding that out the hard way.
Summary
Google Password Manager’s lack of a bulk delete feature is a genuine inconvenience, but it’s one you can work around with a bit of JavaScript and some patience. The script above has been tested on a live account with 631 passwords and works reliably, with the only interruption being Google’s own re-authentication prompts every 20 to 30 deletions.
Save this page, bookmark the script, and share it with anyone else who’s been pulling their hair out over the same problem.