When importing a load of messages into Gmail they have all been marked as unread. I don't want to have to go through 15000 emails page by page to mark them as read, is there any way to do this in bulk?

6 Answers 6


Search for string before:date (date in format yyyy-mm-dd) and then choose More > Mark all as read.

Watch out: This will select also emails from this date! I.e. before:2012-07-12 will select email received before 12 July 2012, but also emails received on 12 July 2012.

  • I have to go page by page to do this. Not sure if this still works?
    – aug
    Aug 3, 2016 at 17:32
  • 2
    @aug Per my answer here, a link should appear at the top of the search results that will allow you to select everything matching the search. Worked in my Gmail just now when I tested it.
    – hBy2Py
    Aug 31, 2016 at 11:27
  • 1
    Note that after you enter the search, the first "select all" option will only select 50 items. However, there will be a link at the top and just below the search bar which allows you to select all matching items, instead of just 50.
    – xji
    Jul 19, 2018 at 8:42

Search your email with


And then select them all and mark as read



I used

label:unread AND before:DATE

in the search bar.


label:unread AND before:2016-09-30

Then click on the checkbox (top left) above the message and select ALL.

Click the "Select all conversations that match this search" link that appears above the first message.

Click More> Mark as Read.


You could also use this Google script which automatically marks emails in any Gmail label (inbox also) as read when they become older than N days. Google script to mark old emails as read.

Please note that it is not a one time activity but rather a continuous "check and mark as read" script.

  • How do you do it if you want to apply this to ALL labels?
    – dan12345
    Mar 24, 2016 at 10:42

Open the label (or, your Inbox, or Sent Mail, etc) containing the messages you'd like to select. Click the Select: All link above your messages. Click the link that says Select all [number] conversations in [current view]. Select the action you'd like to do

How to mark all emails as read on a certain label with several sub labels


If you want to automatically mark emails older than a certain number of days old create a filter with the older_than parameter.



for emails older than 5 days or 1 year respectively.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.