diff --git a/ee/app/models/ee/users/banned_user.rb b/ee/app/models/ee/users/banned_user.rb
index e1c489ce645782091871f115435bfaa0bdd5a8d2..838de1bfef109e0f40a5c19e911ccddb6b196e15 100644
--- a/ee/app/models/ee/users/banned_user.rb
+++ b/ee/app/models/ee/users/banned_user.rb
@@ -12,13 +12,7 @@ module BannedUser
       private
 
       def reindex_issues_and_merge_requests
-        associations = [:issues]
-
-        if ::Elastic::DataMigrationService.migration_has_finished?(:add_hidden_to_merge_requests)
-          associations << :merge_requests
-        end
-
-        ElasticAssociationIndexerWorker.perform_async(user.class.name, user.id, associations)
+        ElasticAssociationIndexerWorker.perform_async(user.class.name, user.id, %i[issues merge_requests])
       end
     end
   end
diff --git a/ee/elastic/docs/20230426195404_add_hidden_to_merge_requests.yml b/ee/elastic/docs/20230426195404_add_hidden_to_merge_requests.yml
index 4dddf933f9241d6ee56fe56c8621a16aa2a9b1a1..a8b11c066991b8e4719c87fa1d4a3e7bdce612cb 100644
--- a/ee/elastic/docs/20230426195404_add_hidden_to_merge_requests.yml
+++ b/ee/elastic/docs/20230426195404_add_hidden_to_merge_requests.yml
@@ -5,6 +5,6 @@ description: AddHiddenToMergeRequests
 group: group::global search
 milestone: '16.0'
 introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118842
-obsolete: false
-marked_obsolete_by_url:
-marked_obsolete_in_milestone:
+obsolete: true
+marked_obsolete_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/152977
+marked_obsolete_in_milestone: '17.1'
diff --git a/ee/elastic/migrate/20230426195404_add_hidden_to_merge_requests.rb b/ee/elastic/migrate/20230426195404_add_hidden_to_merge_requests.rb
index 729c11c3b008c5378ceb82a11df24a33b2a836ea..0a86499e3ba0426ed3351b441f4a1630942eae08 100644
--- a/ee/elastic/migrate/20230426195404_add_hidden_to_merge_requests.rb
+++ b/ee/elastic/migrate/20230426195404_add_hidden_to_merge_requests.rb
@@ -15,3 +15,5 @@ def new_mappings
     }
   end
 end
+
+AddHiddenToMergeRequests.prepend ::Elastic::MigrationObsolete
diff --git a/ee/lib/elastic/latest/merge_request_instance_proxy.rb b/ee/lib/elastic/latest/merge_request_instance_proxy.rb
index 7f9a031ce8cac709103251969991e113f944e2a7..d7490902e4a27f95d79af8f8fb7790ff8e69a361 100644
--- a/ee/lib/elastic/latest/merge_request_instance_proxy.rb
+++ b/ee/lib/elastic/latest/merge_request_instance_proxy.rb
@@ -32,11 +32,9 @@ def as_indexed_json(options = {})
         data['merge_requests_access_level'] = safely_read_project_feature_for_elasticsearch(:merge_requests)
         data['hashed_root_namespace_id'] = target_project.namespace.hashed_root_namespace_id
 
-        if ::Elastic::DataMigrationService.migration_has_finished?(:add_hidden_to_merge_requests)
-          # Use target.hidden? once the FF hide_merge_requests_from_banned_users is fully rolled out
-          # https://gitlab.com/gitlab-org/gitlab/-/issues/410671
-          data['hidden'] = target.author&.banned?
-        end
+        # Use target.hidden? once the FF hide_merge_requests_from_banned_users is fully rolled out
+        # https://gitlab.com/gitlab-org/gitlab/-/issues/410671
+        data['hidden'] = target.author&.banned?
 
         if ::Elastic::DataMigrationService.migration_has_finished?(:add_archived_to_merge_requests)
           data['archived'] = target.project.archived?
diff --git a/ee/spec/elastic/migrate/20230426195404_add_hidden_to_merge_requests_spec.rb b/ee/spec/elastic/migrate/20230426195404_add_hidden_to_merge_requests_spec.rb
index e83b48d4fc57194377348c93ad7cf1b1af0ac9b7..91b207b99cc89b6b36b15294b7ca4f1ac6df6c3e 100644
--- a/ee/spec/elastic/migrate/20230426195404_add_hidden_to_merge_requests_spec.rb
+++ b/ee/spec/elastic/migrate/20230426195404_add_hidden_to_merge_requests_spec.rb
@@ -3,8 +3,6 @@
 require 'spec_helper'
 require File.expand_path('ee/elastic/migrate/20230426195404_add_hidden_to_merge_requests.rb')
 
-RSpec.describe AddHiddenToMergeRequests, :elastic, :sidekiq_inline, feature_category: :global_search do
-  let(:version) { 20230426195404 }
-
-  include_examples 'migration adds mapping'
+RSpec.describe AddHiddenToMergeRequests, feature_category: :global_search do
+  it_behaves_like 'a deprecated Advanced Search migration', 20230426195404
 end
diff --git a/ee/spec/models/concerns/elastic/merge_request_spec.rb b/ee/spec/models/concerns/elastic/merge_request_spec.rb
index 7cf4d937f42a40934b129af316aba73423978ed9..f667255a71978e092281c39c8b154f92a52caccf 100644
--- a/ee/spec/models/concerns/elastic/merge_request_spec.rb
+++ b/ee/spec/models/concerns/elastic/merge_request_spec.rb
@@ -91,11 +91,6 @@
       merge_request.project.update!(visibility_level: Gitlab::VisibilityLevel::INTERNAL)
     end
 
-    it 'does not include hidden if add_hidden_to_merge_requests is not finished' do
-      set_elasticsearch_migration_to :add_hidden_to_merge_requests, including: false
-      expect(merge_request.__elasticsearch__.as_indexed_json).to eq(expected_hash.except('hidden', 'archived', 'schema_version'))
-    end
-
     it 'does not include archived if add_archived_to_merge_requests is not finished' do
       set_elasticsearch_migration_to :add_archived_to_merge_requests, including: false
       expect(merge_request.__elasticsearch__.as_indexed_json).to eq(expected_hash.except('archived', 'schema_version'))
diff --git a/ee/spec/models/ee/users/banned_user_spec.rb b/ee/spec/models/ee/users/banned_user_spec.rb
index b39ac7d76b0fb01532e1715db89dfd956edc2982..6adf1e6f0160e75245a747813702310cce00d971 100644
--- a/ee/spec/models/ee/users/banned_user_spec.rb
+++ b/ee/spec/models/ee/users/banned_user_spec.rb
@@ -16,49 +16,36 @@
     end
 
     it 'calls reindex_issues on create' do
-      expect(ElasticAssociationIndexerWorker).to receive(:perform_async).with(user.class.name, user.id, [:issues])
+      expect(ElasticAssociationIndexerWorker).to receive(:perform_async).with(user.class.name, user.id,
+        %i[issues merge_requests])
       banned_user
     end
 
     it 'calls reindex_issues on destroy' do
       banned_user
-      expect(ElasticAssociationIndexerWorker).to receive(:perform_async).with(user.class.name, user.id, [:issues])
+      expect(ElasticAssociationIndexerWorker).to receive(:perform_async).with(user.class.name, user.id,
+        [:issues, :merge_requests])
       banned_user.destroy!
     end
 
-    context 'when add_hidden_to_merge_requests migration is not finished' do
-      it 'does not call reindex on merge_requests association' do
-        set_elasticsearch_migration_to :add_hidden_to_merge_requests, including: false
-        expect(ElasticAssociationIndexerWorker).not_to receive(:perform_async).with(user.class.name, user.id,
-          array_including(:merge_requests))
-        banned_user
-      end
+    it 'does not call reindex on merge_requests association for update' do
+      banned_user
+      expect(ElasticAssociationIndexerWorker).not_to receive(:perform_async).with(user.class.name, user.id,
+        array_including(:merge_requests))
+      banned_user.touch
     end
 
-    context 'when add_hidden_to_merge_requests migration is finished' do
-      before do
-        set_elasticsearch_migration_to :add_hidden_to_merge_requests, including: true
-      end
-
-      it 'does not call reindex on merge_requests association for update' do
-        banned_user
-        expect(ElasticAssociationIndexerWorker).not_to receive(:perform_async).with(user.class.name, user.id,
-          array_including(:merge_requests))
-        banned_user.touch
-      end
-
-      it 'calls reindex on merge_requests association for create' do
-        expect(ElasticAssociationIndexerWorker).to receive(:perform_async).with(user.class.name, user.id,
-          array_including(:merge_requests))
-        banned_user
-      end
+    it 'calls reindex on merge_requests association for create' do
+      expect(ElasticAssociationIndexerWorker).to receive(:perform_async).with(user.class.name, user.id,
+        array_including(:merge_requests))
+      banned_user
+    end
 
-      it 'calls reindex on merge_requests association for destroy' do
-        banned_user
-        expect(ElasticAssociationIndexerWorker).to receive(:perform_async).with(user.class.name, user.id,
-          array_including(:merge_requests))
-        banned_user.destroy!
-      end
+    it 'calls reindex on merge_requests association for destroy' do
+      banned_user
+      expect(ElasticAssociationIndexerWorker).to receive(:perform_async).with(user.class.name, user.id,
+        array_including(:merge_requests))
+      banned_user.destroy!
     end
   end
 end