diff --git a/storage/entry.go b/storage/entry.go
index e713bd8775573bb8e93d7d0b1f7de43e47d872c4..d956c38cf679692c30e148826694fc8e01edb005 100644
--- a/storage/entry.go
+++ b/storage/entry.go
@@ -221,7 +221,7 @@ func (s *Storage) ArchiveEntries(status string, days int) (int64, error) {
 		SET
 			status='removed'
 		WHERE
-			id=ANY(SELECT id FROM entries WHERE status=$1 AND starred is false AND share_code='' AND published_at < now () - '%d days'::interval LIMIT 5000)
+			id=ANY(SELECT id FROM entries WHERE status=$1 AND starred is false AND share_code='' AND published_at < now () - '%d days'::interval ORDER BY published_at ASC LIMIT 5000)
 	`
 
 	result, err := s.db.Exec(fmt.Sprintf(query, days), status)