Delete all of your Tumblr posts without closing your blog (updated)

I got into a situation where I wanted to wipe all of the posts in my Tumblr blog but I didn’t want to close it and lose all of the people I was following.  After doing some poking around (thanks to this post by Louis Li) I found out that Tumblr uses Prototype, which actually seems like a way cool Javascript library.

Anyway this is a bit technical but here’s the trick (working as of August 2013, and May 2015).

Click on your Posts and go to Mass Post Editor, this will bring up http://www.tumblr.com/mega-editor/[[YOURBLOGNAME]]


Update: mozilla-firefox Firefox specific (but will probably work in Chrome somehow) – I ended up writing an interesting script that incorporates this code into an easy to use button.  When you get to your Mass Post Editor page hit CTRL+SHIFT+Q to bring up the Inspect Element dashboard, go to the console, and paste in the following at the bottom > prompt;

$.getScript('https://foozwak.net/js/mkbtn.js');

On your top-right you will now see a “Mass Delete” button that will prompt you to delete the first 99 posts visible in your editor.

Update 2 May 16th 2015: This part above doesn’t work anymore :(  BUT, you can still copy and paste the lines below and that works like a charm.  When you get to your Mass Post Editor page hit CTRL+SHIFT+Q to bring up the Inspect Element dashboard, go to the console, and paste in the lines below that start with “javascript”.


If the above method fails you… in Firefox right click on this page and go to “Inspect Element”.  On the fancy dashboard that comes up, click on Console.   Paste this into the very bottom and hit enter.   In Chrome, you can paste this line into the search bar, but you’ll have to add “javascript:” back to the front because it takes that out.

You will be asked if you want to delete the selected posts.

javascript:var count=0; $('.brick').each(function() { count++; if(count<100) { $(this).addClass('highlighted'); }; }); delete_selected_posts();

Tumblr will only delete 100 posts at a time probably to stop users from crashing their systems with insane numbers of operations.

Here’s a quick formula to do about 790 posts(!!), you’ll have to babysit it a little but it works.

javascript:var count=0; $('.brick').each(function() { count++; if(count<100) { $(this).addClass('highlighted'); }; }); delete_selected_posts(); alert('wait 5 seconds');
javascript:var count=0; $('.brick').each(function() { count++; if(count<100) { $(this).addClass('highlighted'); }; }); delete_selected_posts(); alert('wait 5 seconds');
javascript:var count=0; $('.brick').each(function() { count++; if(count<100) { $(this).addClass('highlighted'); }; }); delete_selected_posts(); alert('wait 5 seconds');
javascript:var count=0; $('.brick').each(function() { count++; if(count<100) { $(this).addClass('highlighted'); }; }); delete_selected_posts(); alert('wait 5 seconds');
javascript:var count=0; $('.brick').each(function() { count++; if(count<100) { $(this).addClass('highlighted'); }; }); delete_selected_posts(); alert('wait 5 seconds');
javascript:var count=0; $('.brick').each(function() { count++; if(count<100) { $(this).addClass('highlighted'); }; }); delete_selected_posts(); alert('wait 5 seconds');
javascript:var count=0; $('.brick').each(function() { count++; if(count<100) { $(this).addClass('highlighted'); }; }); delete_selected_posts(); alert('wait 5 seconds');
javascript:var count=0; $('.brick').each(function() { count++; if(count<100) { $(this).addClass('highlighted'); }; }); delete_selected_posts(); alert('We will now reload'); location.reload();
    • I haven’t tried it in a few months, so something may have changed :( Unfortunately the only place I can test is my own blog which I don’t want to wipe at the moment!

  1. The second code

    javascript:var count=0; $(‘.brick’).each(function() { count++; if(count<100) { $(this).addClass('highlighted'); }; }); delete_selected_posts();

    worked for me on chrome for Mac

    Thanks heaps!

    • Sorry about the late reply; I’m sure the script could be modified to do that but it’d take some digging in the Javascript to figure out how they handle tag renames, and then you’d just apply it the same way.

  2. The $.getScript(‘http://foozwak.net/js/mkbtn.js’); does not work for me, I get this error: “[blocked] The page at ‘https://www.tumblr.com/mega-editor/[my url]/2012/5′ was loaded over HTTPS, but ran insecure content from ‘http://foozwak.net/js/mkbtn.js?_=1421631177779′: this content should also be loaded over HTTPS.”

    • You *might* be able to try $.getScript(‘https://foozwak.net/js/mkbtn.js’);
      but please note that I don’t have a valid certificate so it may still freak out. And also sorry about the late reply :)

  3. Hello! I tried to delete my posts today but it only deletes 100 posts per session. Is there a way for me to delete 72,000 posts all at once? I tried to use your code but it just deletes 100 posts. I really want a fresh start. :( Thanks!

    • The 100 post limit is actually on Tumblr’s end :( They won’t let you delete more than that many posts at any one time. I feel you on that BTW, the first time I ran through this process it was to remove 30,000 or so reblogs. Took a while to say the least.

Leave a Reply