Mark Archived Gmail Messages as Read Automatically

You can use Google Script to mark all archived unread emails messages as read automatically. The script runs every hour and looks for email messages in your Gmail mailbox that are unread and are not in your inbox. If there no Gmail label assigned to a thread, it is marked as Read.

To install this Gmail script, go to script.google.com and copy-paste this snippet. Next choose Run -> createTrigger to set the time-driven trigger that runs every hour automatically.

function markGmailAsRead() {
  // Find Gmail Messages that are unread but not in inbox
  var threads = GmailApp.search('is:unread -in:inbox', 0, 50);
  for (var i=0; i<threads.length; i++) {
    // Does the message thread have any user-assigned labels
    var labels = threads[i].getLabels();
    if (labels.length == 0) {
      // Mark the entire thread as read
      threads[i].markRead();
    }
  }
}

// Create a trigger that execute every hour and processes 50 messages in a batch
function createTrigger() {
  ScriptApp.newTrigger("markGmailAsRead")
  .timeBased().everyHours(1).create();
}