How to Bulk-Delete Tweets by Date Range (Clean Up 2018–2020 Posts)
You want to wipe the tweets you posted between 2018 and 2020, but X's interface only lets you delete them one at a time. Halfway through, you give up. That's normal. Manually deleting a few hundred old tweets eats an entire afternoon just in scroll-loading.
Here's the good part: cleaning by date range is doable, and you don't have to click through every single post. Below are three methods that actually work, plus the mistakes that trip most people up.
Why delete by date instead of one by one
Old tweets tend to cluster in certain years. The stuff from around your 2019 job change, the emotional retweets during 2020, the things you'd never post now. You rarely look at them after that phase passes. Targeting a specific window is more efficient than nuking everything, and it lets you keep the parts you still care about.
There's a practical reason too: X only lets you delete the most recent ~3,200 tweets through the interface. Anything older is locked inside your archive file, where the UI can't reach it. So "delete by date" almost always means going through the archive. If you try to do it by hand, you'll hit the wall at 3,200 and the rest stays up.
Method 1: Download the archive and filter by year on your device
In X settings, request your "data archive." You get a ZIP, and inside it tweets.js or tweets.csv holds your entire tweet history with timestamps. The file includes the tweet text, the posted time, and often the media links.
An on-device privacy tool can parse that file, filter the tweets you want gone by year or exact date range, and produce a deletion list. The whole process runs on your computer; your credentials never leave it. You review the list, approve it, and the tool sends the delete requests through your own logged-in session.
| Step | What you do | Watch out for |
|---|---|---|
| 1 | Request and download your X archive | It can take hours to a day to arrive |
| 2 | Parse tweets.js / tweets.csv with a tool | Check whether timestamps are UTC or local |
| 3 | Filter by date range | Export the list and review before deleting |
| 4 | Run the deletion, keep a log | Save a record of what was removed |
This method is the most reliable for large histories because it doesn't depend on the 3,200 limit. You're working from the source file, not the interface.
Method 2: Third-party tools with a date range option
Several deletion tools let you set "delete tweets before / between dates." These usually need read and delete permissions on your account. When you configure them, look at three things: whether the range is inclusive or exclusive, whether retweets and replies are included, and what happens if a deletion fails mid-way.
Keep the permission scope tight. Grant only what deletion needs. Don't casually check boxes like "post on your behalf" or "read your DMs." A tool that only needs to read and delete shouldn't be asking for more.
Local tool or cloud tool: which to pick
Tools for date-based deletion fall into two groups. One runs on your computer: it reads your archive, builds the deletion list, and never sends your data to someone else's server. The other is a web or cloud service that operates your account from its side after you authorize it.
| Factor | Local tool | Cloud tool |
|---|---|---|
| Where data goes | Stays on your computer | Passes through their server |
| Permissions needed | Read the archive file | Account read and write |
| Best for | Large batches, privacy-minded | Occasional small cleanups |
| Risk | Almost no leak risk | Depends on their security |
If you care about privacy and need to delete hundreds or thousands, the local tool is safer. A cloud tool is convenient, but check first what permissions it takes and whether it uploads your archive.
Will deleting a lot at once get you rate-limited
A common worry is that removing many tweets in a short span will flag your account, throttle it, or get it suspended. In practice, deleting through the official API at a steady pace rarely triggers punishment. What actually causes trouble is firing thousands of delete requests at the same instant, which can hit the API rate limit and fail part of the batch.
The safe approach is batched deletion with gaps: a few hundred per batch, a few minutes between batches. That avoids the rate limit and gives you time to check for mistakes.
What to do when a deletion request errors out
Errors usually fall into three types. A network drop means rerun that batch. A single tweet already gone (deleted by you or the platform earlier) means skip it and continue. An expired authorization means the tool logged out, so re-authorize and run again. Most deletion tools support resume: note where you stopped and pick up from there instead of starting over.
Common traps: the 3,200 limit, time zones, and drafts
- The 3,200 cap: interface deletion only reaches the most recent 3,200. Older ones must go through the archive.
- Time zone drift: archive timestamps are often UTC, 8 hours off your local time. Filtering "January 2020" might pull in December 2019 tweets or miss some.
- Drafts count too: some tools count drafts and already-deleted tweets in their totals, so the number looks off. Confirm which file it's reading.
After you delete: confirm it actually worked
Deletion requests can silently fail. A day later, search your own profile for a phrase you thought was gone. If it's still there, check the tool's log for errors and re-run that batch. Don't assume a "completed" progress bar means every tweet is gone.
Also remember that deletion on X removes the tweet from your account, but copies may live elsewhere: screenshots, Google's cache, other sites that quoted you. Date-range deletion cleans your own account; it can't unpublish the rest of the internet.
Combine date range with keyword filtering
Date-only deletion has a blind spot: sensitive content doesn't always sit in one window. Your phone number might show up in 2017 too, and again in 2015. A more reliable approach is to narrow by date range first, then layer keyword filtering on top (phone, WeChat, address) to pull out the genuinely high-risk tweets for separate deletion. Date handles "which period"; keywords handle "which type of content." Using both beats either alone.
Does deleting old tweets hurt your followers or reach
Plenty of people worry that removing a few hundred old tweets will get them shadowbanned, drop followers, or reset their account age. None of that happens. Deletion only removes specific posts. It doesn't touch your follower count, doesn't change when you joined, and doesn't trigger throttling. You're deleting content, not the account. The only thing that changes is how much history others can scroll through.
Before deleting, keep one backup copy
Export the tweets you're about to delete and store them somewhere safe. Keep a copy so that on the day you need to prove "yes, I did post that back then," you have the record and save hours of hassle.
A cleanup pace that doesn't blow up
Don't delete thousands at once. Batch it: remove the most sensitive category first (phone numbers, home addresses), then the emotional stuff a day or two later, then the harmless leftovers. Batching lets you stop and verify anytime, and lowers the odds of nuking something you needed.
A note on very large archives
If your archive is huge (hundreds of thousands of tweets), parsing it can take a while and the deletion list gets long. Split the work by year: parse once, then run deletion per year so each batch stays manageable and you can verify one year at a time. There's no prize for finishing fastest; a clean, verified clear-out beats a fast, sloppy one.
Not sure where your account stands? Run a privacy check on your own device first, then decide which batch to delete based on risk level.
Frequently Asked Questions
Can I delete tweets by date directly?
X native interface does not support date-based bulk deletion; you can only remove the most recent ~3,200 tweets one at a time. To clean by date range, use your data archive with an on-device tool, or a third-party tool that supports time ranges.
How do I delete tweets beyond the 3,200 limit?
Request your data archive from Settings. Once you have tweets.js / tweets.csv, parse it with an on-device tool, filter by year, and bulk-delete. The archive is the only place that holds your full history.
Can deleted tweets be recovered?
No. Deletion on X is permanent with no trash folder. Always export the tweets you plan to delete before removing them.
Are third-party deletion tools safe?
Only check the permissions they ask for: deleting tweets needs read + delete access, not "post tweets" or "read DMs". Prefer tools that run on your own device so data is not uploaded.
Can time zones cause wrong deletions?
Yes. Archive timestamps are often UTC, an 8-hour gap from local time. Convert everything to one time zone before filtering by date.
Check your own X/Twitter footprint
Free on-device scan. Your archive never leaves your computer.
Start Free CheckRelated Reads
Bulk Delete Tweets by Keyword: Advanced Filtering in 2026
The dumb way to delete tweets is one by one. Filtering by keyword cuts the work by about 90%, but deleting the wrong ones and missing a batch are the two traps. This post covers a three-layer filter, keyword plus date plus exclude, and a re-check checklist.
Delete Tweets by Year: Clean Out Everything Before 2020
Do not want to scroll forever? Deleting tweets by year is the most painless cleanup. This guide covers why year-based deletion works, how the filter behaves, how to back up first, and common mistakes to avoid.
Are X's Native Deletion Tools Enough? Native vs Third-Party Cleanup
X ships with deletion, archiving and mute tools, all free. Here is the volume at which they stop being enough, and the clear line where third-party tools become necessary.