diff --git a/services/web/migrations/20231101153447_partial_last_opened_index.js b/services/web/migrations/20231101153447_partial_last_opened_index.js
new file mode 100644
index 0000000000..0b7a7ec45f
--- /dev/null
+++ b/services/web/migrations/20231101153447_partial_last_opened_index.js
@@ -0,0 +1,26 @@
+const Helpers = require('./lib/helpers')
+
+exports.tags = ['server-ce', 'server-pro', 'saas']
+
+const OLD_INDEX = {
+  name: 'active_1_lastOpened_1',
+  key: { active: 1, lastOpened: 1 },
+}
+
+const NEW_INDEX = {
+  name: 'lastOpened_1',
+  key: { lastOpened: 1 },
+  partialFilterExpression: { active: true },
+}
+
+exports.migrate = async client => {
+  const { db } = client
+  await Helpers.addIndexesToCollection(db.projects, [NEW_INDEX])
+  await Helpers.dropIndexesFromCollection(db.projects, [OLD_INDEX])
+}
+
+exports.rollback = async client => {
+  const { db } = client
+  await Helpers.addIndexesToCollection(db.projects, [OLD_INDEX])
+  await Helpers.dropIndexesFromCollection(db.projects, [NEW_INDEX])
+}