diff --git a/app/assets/javascripts/terraform/components/empty_state.vue b/app/assets/javascripts/terraform/components/empty_state.vue
index a5a613b72820aedef6bb6ca414f7c0c407b43ffe..fd9177bef3f263d1fe9e9f3c59b5169e9b3feab5 100644
--- a/app/assets/javascripts/terraform/components/empty_state.vue
+++ b/app/assets/javascripts/terraform/components/empty_state.vue
@@ -16,7 +16,7 @@ export default {
   },
   computed: {
     docsUrl() {
-      return helpPagePath('user/infrastructure/terraform_state');
+      return helpPagePath('user/infrastructure/iac/terraform_state');
     },
   },
 };
diff --git a/data/removals/14_0/deprecation_bump_terraform_template_version.yml b/data/removals/14_0/deprecation_bump_terraform_template_version.yml
index 5bc8d7d66c9356fd6e732b0a170081a911dea14b..201c2efa8aa166333742c2ad2d98f05e69f15288 100644
--- a/data/removals/14_0/deprecation_bump_terraform_template_version.yml
+++ b/data/removals/14_0/deprecation_bump_terraform_template_version.yml
@@ -13,7 +13,7 @@
     At every major release of GitLab, the "latest version" template becomes the "major version" template, inheriting the "latest template" setup.
     As we have added many new features to the Terraform integration, the new setup for the "major version" template can be considered a breaking change.
 
-    The latest template supports the [Terraform Merge Request widget](https://docs.gitlab.com/ee/user/infrastructure/mr_integration.html) and
-    doesn't need additional setup to work with the [GitLab managed Terraform state](https://docs.gitlab.com/ee/user/infrastructure/terraform_state.html).
+    The latest template supports the [Terraform Merge Request widget](https://docs.gitlab.com/ee/user/infrastructure/iac/mr_integration.html) and
+    doesn't need additional setup to work with the [GitLab managed Terraform state](https://docs.gitlab.com/ee/user/infrastructure/iac/terraform_state.html).
 
     To check the new changes, see the [new "major version" template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Terraform.gitlab-ci.yml).
diff --git a/doc/update/removals.md b/doc/update/removals.md
index 3522e11bda04c312a22f727985901cc6a02d32d3..09c8d584e9bbdd2af9d9ef7aff838d5c90cbd7f9 100644
--- a/doc/update/removals.md
+++ b/doc/update/removals.md
@@ -569,8 +569,8 @@ As we continuously [develop GitLab's Terraform integrations](https://gitlab.com/
 At every major release of GitLab, the "latest version" template becomes the "major version" template, inheriting the "latest template" setup.
 As we have added many new features to the Terraform integration, the new setup for the "major version" template can be considered a breaking change.
 
-The latest template supports the [Terraform Merge Request widget](https://docs.gitlab.com/ee/user/infrastructure/mr_integration.html) and
-doesn't need additional setup to work with the [GitLab managed Terraform state](https://docs.gitlab.com/ee/user/infrastructure/terraform_state.html).
+The latest template supports the [Terraform Merge Request widget](https://docs.gitlab.com/ee/user/infrastructure/iac/mr_integration.html) and
+doesn't need additional setup to work with the [GitLab managed Terraform state](https://docs.gitlab.com/ee/user/infrastructure/iac/terraform_state.html).
 
 To check the new changes, see the [new "major version" template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Terraform.gitlab-ci.yml).
 
diff --git a/spec/frontend/terraform/components/empty_state_spec.js b/spec/frontend/terraform/components/empty_state_spec.js
index 1637ac2039ca9813406d757d5a9960980220b109..b1303cf2b5eabb960b588c36dfb6850acd97a24f 100644
--- a/spec/frontend/terraform/components/empty_state_spec.js
+++ b/spec/frontend/terraform/components/empty_state_spec.js
@@ -8,7 +8,7 @@ describe('EmptyStateComponent', () => {
   const propsData = {
     image: '/image/path',
   };
-  const docsUrl = '/help/user/infrastructure/terraform_state';
+  const docsUrl = '/help/user/infrastructure/iac/terraform_state';
   const findEmptyState = () => wrapper.findComponent(GlEmptyState);
   const findLink = () => wrapper.findComponent(GlLink);