diff --git a/app/views/admin/application_settings/_pages.html.haml b/app/views/admin/application_settings/_pages.html.haml
index 323e1e700770044f55c46ea6fd02a00456373e77..2eab3c922cfdadf591a5d6ba9156cfd11cc461bf 100644
--- a/app/views/admin/application_settings/_pages.html.haml
+++ b/app/views/admin/application_settings/_pages.html.haml
@@ -31,7 +31,7 @@
       = f.label :pages_extra_deployments_default_expiry_seconds, s_('AdminSettings|Default expiration time for parallel deployments (in seconds)'), class: 'label-bold'
       = f.number_field :pages_extra_deployments_default_expiry_seconds, class: 'form-control gl-form-input'
       .form-text.gl-text-subtle
-        - link = link_to('', help_page_path('user/project/pages/_index.md', anchor: 'parallel-deployments'), target: '_blank', rel: 'noopener noreferrer')
+        - link = link_to('', help_page_path('user/project/pages/parallel_deployments.md'), target: '_blank', rel: 'noopener noreferrer')
         = safe_format(s_('AdminSettings|Set the default time after which parallel deployments expire (0 for unlimited). %{link_start}What are parallel deployments%{link_end}?'), tag_pair(link, :link_start, :link_end))
     %h5
       = s_("AdminSettings|Configure Let's Encrypt")
diff --git a/doc/user/gitlab_com/_index.md b/doc/user/gitlab_com/_index.md
index 3d51714a495ff6ae59270f0b8065f7eedf9729fc..b57084fd6254e84e3f40c69cef670612b1e0e3b4 100644
--- a/doc/user/gitlab_com/_index.md
+++ b/doc/user/gitlab_com/_index.md
@@ -341,12 +341,12 @@ The limit varies depending on your plan and the number of seats in your subscrip
 
 ### Other limits
 
-| Setting                                                        | Default for GitLab.com |
-|:---------------------------------------------------------------|:-----------------------|
-| Number of webhooks                                             | 100 for each project, 50 for each group (subgroup webhooks are not counted towards parent group limits ) |
-| Maximum payload size                                           | 25 MB                  |
-| Timeout                                                        | 10 seconds             |
-| [Multiple Pages deployments](../project/pages/_index.md#limits) | 100 extra deployments (Premium tier), 500 extra deployments (Ultimate tier) |
+| Setting                                                             | Default for GitLab.com |
+|:--------------------------------------------------------------------|:-----------------------|
+| Number of webhooks                                                  | 100 for each project, 50 for each group (subgroup webhooks are not counted towards parent group limits ) |
+| Maximum payload size                                                | 25 MB                  |
+| Timeout                                                             | 10 seconds             |
+| [Parallel Pages deployments](../project/pages/parallel_deployments.md#limits) | 100 extra deployments (Premium tier), 500 extra deployments (Ultimate tier) |
 
 For self-managed instance limits, see:
 
diff --git a/doc/user/project/pages/_index.md b/doc/user/project/pages/_index.md
index 3ef4053f5276780c5c4746e27f223b6789fbb70b..44d89067be92b96adea1230b47acbaff6aee5439 100644
--- a/doc/user/project/pages/_index.md
+++ b/doc/user/project/pages/_index.md
@@ -205,13 +205,6 @@ Prerequisites:
 
 ## Expiring deployments
 
-{{< details >}}
-
-- Tier: Premium, Ultimate
-- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
-
-{{< /details >}}
-
 {{< history >}}
 
 - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162826) in GitLab 17.4.
@@ -233,10 +226,6 @@ deploy-pages:
       - public
 ```
 
-By default, [parallel deployments](#parallel-deployments) expire
-automatically after 24 hours.
-To disable this behavior, set `pages.expire_in` to `never`.
-
 Expired deployments are stopped by a cron job that runs every 10 minutes.
 Stopped deployments are subsequently deleted by another cron job that also
 runs every 10 minutes. To recover it, follow the steps described in
@@ -263,169 +252,6 @@ To recover a stopped deployment that has not yet been deleted:
    list.
 1. Expand the deployment you want to recover and select **Restore**.
 
-## Parallel deployments
-
-{{< details >}}
-
-- Tier: Premium, Ultimate
-
-{{< /details >}}
-
-{{< history >}}
-
-- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129534) in GitLab 16.7 as an [experiment](../../../policy/development_stages_support.md) [with a flag](../../feature_flags.md) named `pages_multiple_versions_setting`. Disabled by default.
-- [Renamed](https://gitlab.com/gitlab-org/gitlab/-/issues/480195) from "multiple deployments" to "parallel deployments" in GitLab 17.4.
-- [Enabled on GitLab.com, GitLab Self-Managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/issues/422145) in GitLab 17.4.
-- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/502219) to remove the project setting in GitLab 17.7.
-- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/507423) to allow periods in `path_prefix` in GitLab 17.8.
-- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/500000) to allow variables when passed to `publish` property in GitLab 17.9.
-- [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/487161) in GitLab 17.9. Feature flag `pages_multiple_versions_setting` removed.
-
-{{< /history >}}
-
-Use the [`pages.path_prefix`](../../../ci/yaml/_index.md#pagespagespath_prefix) CI/CD option to configure a prefix for the GitLab Pages URL.
-A prefix allows you to differentiate between multiple GitLab Pages deployments:
-
-- Main deployment: a Pages deployment created with a blank `path_prefix`.
-- Parallel deployment: a Pages deployment created with a non-blank `path_prefix`
-
-The value of `pages.path_prefix` is:
-
-- Converted to lowercase.
-- Shortened to 63 bytes.
-- Any character except numbers (`0-9`), letters (`a-z`) and periods (`.`) is replaced with a hyphen (`-`).
-- Leading and trailing hyphens (`-`) and period (`.`) are removed.
-
-### Example configuration
-
-Consider a project such as `https://gitlab.example.com/namespace/project`. By default, its main Pages deployment can be accessed through:
-
-- When using a [unique domain](#unique-domains): `https://project-123456.gitlab.io/`.
-- When not using a unique domain: `https://namespace.gitlab.io/project`.
-
-If a `pages.path_prefix` is configured to the project branch names,
-like `path_prefix = $CI_COMMIT_BRANCH`, and there's a
-branch named `username/testing_feature`, this parallel Pages deployment would be accessible through:
-
-- When using a [unique domain](#unique-domains): `https://project-123456.gitlab.io/username-testing-feature`.
-- When not using a unique domain: `https://namespace.gitlab.io/project/username-testing-feature`.
-
-### Limits
-
-The number of parallel deployments is limited by the root-level namespace. For
-specific limits for:
-
-- GitLab.com, see [Other limits](../../gitlab_com/_index.md#other-limits).
-- GitLab Self-Managed, see
-  [Number of parallel Pages deployments](../../../administration/instance_limits.md#number-of-parallel-pages-deployments).
-
-To immediately reduce the number of active deployments in your namespace,
-delete some deployments. For more information, see
-[Delete a deployment](#delete-a-deployment).
-
-To configure an expiry time to automatically
-delete older deployments, see
-[Expiring deployments](#expiring-deployments).
-
-### Expiration
-
-By default, parallel deployments expire after 24 hours, after which they are
-deleted. If you're using a self-hosted instance, your instance admin can
-[configure a different default duration](../../../administration/pages/_index.md#configure-the-default-expiry-for-parallel-deployments).
-
-To customize the expiry time, [configure `pages.expire_in`](#expiring-deployments).
-
-To prevent deployments from automatically expiring, set `pages.expire_in` to
-`never`.
-
-### Path clash
-
-`pages.path_prefix` can take dynamic values from [CI/CD variables](../../../ci/variables/_index.md)
-that can create pages deployments which could clash with existing paths in your site.
-For example, given an existing GitLab Pages site with the following paths:
-
-```plaintext
-/index.html
-/documents/index.html
-```
-
-If a `pages.path_prefix` is `documents`, that version will override the existing path.
-In other words, `https://namespace.gitlab.io/project/documents/index.html` will point to the
-`/index.html` on the `documents` deployment of the site, instead of `documents/index.html` of the
-`main` deployment of the site.
-
-Mixing [CI/CD variables](../../../ci/variables/_index.md) with other strings can reduce the path clash
-possibility. For example:
-
-```yaml
-deploy-pages:
-  stage: deploy
-  script:
-    - echo "Pages accessible through ${CI_PAGES_URL}"
-  variables:
-    PAGES_PREFIX: "" # No prefix by default (main)
-  pages:  # specifies that this is a Pages job
-    path_prefix: "$PAGES_PREFIX"
-  artifacts:
-    paths:
-    - public
-  rules:
-    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run on default branch (with default PAGES_PREFIX)
-    - if: $CI_COMMIT_BRANCH == "staging" # Run on main (with default PAGES_PREFIX)
-      variables:
-        PAGES_PREFIX: '_stg' # Prefix with _stg for the staging branch
-    - if: $CI_PIPELINE_SOURCE == "merge_request_event" # Conditionally change the prefix for Merge Requests
-      when: manual # Run pages manually on Merge Requests
-      variables:
-        PAGES_PREFIX: 'mr-$CI_MERGE_REQUEST_IID' # Prefix with the mr-<iid>, like `mr-123`
-```
-
-Some other examples of mixing [variables](../../../ci/variables/_index.md) with strings for dynamic prefixes:
-
-- `pages.path_prefix: 'mr-$CI_COMMIT_REF_SLUG'`: Branch or tag name prefixed with `mr-`, like `mr-branch-name`.
-- `pages.path_prefix: '_${CI_MERGE_REQUEST_IID}_'`: Merge request number
-  prefixed ans suffixed with `_`, like `_123_`.
-
-The previous YAML example uses [user-defined job names](#user-defined-job-names).
-
-### Use parallel deployments to create Pages environments
-
-You can use parallel GitLab Pages deployments to create a new [environment](../../../ci/environments/_index.md).
-For example:
-
-```yaml
-deploy-pages:
-  stage: deploy
-  script:
-    - echo "Pages accessible through ${CI_PAGES_URL}"
-  variables:
-    PAGES_PREFIX: "" # no prefix by default (master)
-  pages:  # specifies that this is a Pages job
-    path_prefix: "$PAGES_PREFIX"
-  environment:
-    name: "Pages ${PAGES_PREFIX}"
-    url: $CI_PAGES_URL
-  artifacts:
-    paths:
-    - public
-  rules:
-    - if: $CI_COMMIT_BRANCH == "staging" # ensure to run on master (with default PAGES_PREFIX)
-      variables:
-        PAGES_PREFIX: '_stg' # prefix with _stg for the staging branch
-    - if: $CI_PIPELINE_SOURCE == "merge_request_event" # conditionally change the prefix on Merge Requests
-      when: manual # run pages manually on Merge Requests
-      variables:
-        PAGES_PREFIX: 'mr-$CI_MERGE_REQUEST_IID' # prefix with the mr-<iid>, like `mr-123`
-```
-
-With this configuration, users will have the access to each GitLab Pages deployment through the UI.
-When using [environments](../../../ci/environments/_index.md) for pages, all pages environments are
-listed on the project environment list.
-
-You can also [group similar environments](../../../ci/environments/_index.md#group-similar-environments) together.
-
-The previous YAML example uses [user-defined job names](#user-defined-job-names).
-
 ### Delete a Deployment
 
 To delete a deployment:
@@ -442,11 +268,6 @@ Stopped deployments are deleted by a cron job running every 10 minutes.
 To restore a stopped deployment that has not been deleted yet, see
 [Recover a stopped deployment](#recover-a-stopped-deployment).
 
-#### Auto-clean
-
-Parallel Pages deployments, created by a merge request with a `path_prefix`, are automatically deleted when the
-merge request is closed or merged.
-
 ## User-defined job names
 
 {{< history >}}
@@ -493,3 +314,8 @@ deployment is triggered:
 pages:
   pages: false
 ```
+
+## Parallel deployments
+
+To create multiple deployments for your project at the same time, for example to
+create review apps, view the documentation on [Parallel Deployments](parallel_deployments.md).
diff --git a/doc/user/project/pages/parallel_deployments.md b/doc/user/project/pages/parallel_deployments.md
new file mode 100644
index 0000000000000000000000000000000000000000..f58699a1f17323a954c1ec522aca649af4e25559
--- /dev/null
+++ b/doc/user/project/pages/parallel_deployments.md
@@ -0,0 +1,240 @@
+---
+stage: Plan
+group: Knowledge
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+title: GitLab Pages parallel deployments
+---
+
+{{< details >}}
+
+- Tier: Premium, Ultimate
+- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
+
+{{< /details >}}
+
+{{< history >}}
+
+- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129534) in GitLab 16.7 as an [experiment](../../../policy/development_stages_support.md) [with a flag](../../feature_flags.md) named `pages_multiple_versions_setting`. Disabled by default.
+- [Renamed](https://gitlab.com/gitlab-org/gitlab/-/issues/480195) from "multiple deployments" to "parallel deployments" in GitLab 17.4.
+- [Enabled on GitLab.com, GitLab Self-Managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/issues/422145) in GitLab 17.4.
+- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/502219) to remove the project setting in GitLab 17.7.
+- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/507423) to allow periods in `path_prefix` in GitLab 17.8.
+- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/500000) to allow variables when passed to `publish` property in GitLab 17.9.
+- [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/487161) in GitLab 17.9. Feature flag `pages_multiple_versions_setting` removed.
+
+{{< /history >}}
+
+With parallel deployments, you can publish multiple versions of your [GitLab Pages](_index.md)
+site at the same time. Each version has its own unique URL based on a path prefix you specify.
+
+Use parallel deployments to:
+
+- Enhance your workflow for testing changes in development branches before merging
+  to production.
+- Share working previews with stakeholders for feedback.
+- Maintain documentation for multiple software versions simultaneously.
+- Publish localized content for different audiences.
+- Create staging environments for review before final publication.
+
+Each version of your site gets its own URL based on a path prefix that you specify.
+Control how long these parallel deployments exist.
+They expire after 24 hours by default, but you can customize this duration to fit your review timeline.
+
+### Create a parallel deployment
+
+Prerequisites:
+
+- The root-level namespace must have available [parallel deployment slots](../../gitlab_com/_index.md#other-limits).
+
+To create a parallel deployment:
+
+1. In your `.gitlab-ci.yml` file, add a Pages job with a `path_prefix`:
+
+   ```yaml
+   pages:
+     stage: deploy
+     script:
+       - echo "Pages accessible through ${CI_PAGES_URL}/${CI_COMMIT_BRANCH}"
+     pages:
+       path_prefix: "$CI_COMMIT_BRANCH"
+     artifacts:
+       paths:
+         - public
+   ```
+
+   The `path_prefix` value:
+
+   - Is converted to lowercase.
+   - Can contain numbers (`0-9`), letters (`a-z`), and periods (`.`).
+   - Is replaced with hyphens (`-`) for any other characters.
+   - Cannot start or end with hyphens (`-`) or periods (`.`), so they are removed.
+   - Must be 63 bytes or shorter. Anything longer is trimmed.
+
+1. Optional. If you want dynamic prefixes, use
+   [CI/CD variables](../../../ci/variables/where_variables_can_be_used.md#gitlab-ciyml-file) in your `path_prefix`.
+   For example:
+
+   ```yaml
+   pages:
+     path_prefix: "mr-$CI_MERGE_REQUEST_IID" # Results in paths like mr-123
+   ```
+
+1. Optional. To set an expiry time for the deployment, add `expire_in`:
+
+   ```yaml
+   pages:
+     pages:
+       path_prefix: "$CI_COMMIT_BRANCH"
+       expire_in: 1 week
+   ```
+
+   By default, parallel deployments [expire](#expiration) after 24 hours.
+
+1. Commit your changes and push to your repository.
+
+The deployment is accessible at:
+
+- With a [unique domain](_index.md#unique-domains): `https://project-123456.gitlab.io/your-prefix-name`.
+- Without a unique domain: `https://namespace.gitlab.io/project/your-prefix-name`.
+
+The URL path between the site domain and public directory is determined by the `path_prefix`.
+For example, if your main deployment has content at `/index.html`, a parallel deployment with prefix
+`staging` can access that same content at `/staging/index.html`.
+
+To prevent path clashes, avoid using path prefixes that match the names of existing folders in your site.
+For more information, see [Path clash](#path-clash).
+
+### Example configuration
+
+Consider a project such as `https://gitlab.example.com/namespace/project`. By default, its main Pages deployment can be accessed through:
+
+- When using a [unique domain](_index.md#unique-domains): `https://project-123456.gitlab.io/`.
+- When not using a unique domain: `https://namespace.gitlab.io/project`.
+
+If a `pages.path_prefix` is configured to the project branch names,
+like `path_prefix = $CI_COMMIT_BRANCH`, and there's a
+branch named `username/testing_feature`, this parallel Pages deployment would be accessible through:
+
+- When using a [unique domain](_index.md#unique-domains): `https://project-123456.gitlab.io/username-testing-feature`.
+- When not using a unique domain: `https://namespace.gitlab.io/project/username-testing-feature`.
+
+### Limits
+
+The number of parallel deployments is limited by the root-level namespace. For
+specific limits for:
+
+- GitLab.com, see [Other limits](../../gitlab_com/_index.md#other-limits).
+- GitLab Self-Managed, see
+  [Number of parallel Pages deployments](../../../administration/instance_limits.md#number-of-parallel-pages-deployments).
+
+To immediately reduce the number of active deployments in your namespace,
+delete some deployments. For more information, see
+[Delete a deployment](_index.md#delete-a-deployment).
+
+To configure an expiry time to automatically
+delete older deployments, see
+[Expiring deployments](_index.md#expiring-deployments).
+
+### Expiration
+
+By default, parallel deployments [expire](_index.md#expiring-deployments) after 24 hours,
+after which they are deleted. If you're using a self-hosted instance, your instance admin can
+[configure a different default duration](../../../administration/pages/_index.md#configure-the-default-expiry-for-parallel-deployments).
+
+To customize the expiry time, [configure `pages.expire_in`](_index.md#expiring-deployments).
+
+To prevent deployments from automatically expiring, set `pages.expire_in` to
+`never`.
+
+### Path clash
+
+`pages.path_prefix` can take dynamic values from [CI/CD variables](../../../ci/variables/_index.md)
+that can create pages deployments which could clash with existing paths in your site.
+For example, given an existing GitLab Pages site with the following paths:
+
+```plaintext
+/index.html
+/documents/index.html
+```
+
+If a `pages.path_prefix` is `documents`, that version overrides the existing path.
+In other words, `https://namespace.gitlab.io/project/documents/index.html` points to the
+`/index.html` on the `documents` deployment of the site, instead of `documents/index.html` of the
+`main` deployment of the site.
+
+Mixing [CI/CD variables](../../../ci/variables/_index.md) with other strings can reduce the path clash
+possibility. For example:
+
+```yaml
+deploy-pages:
+  stage: deploy
+  script:
+    - echo "Pages accessible through ${CI_PAGES_URL}"
+  variables:
+    PAGES_PREFIX: "" # No prefix by default (main)
+  pages:  # specifies that this is a Pages job
+    path_prefix: "$PAGES_PREFIX"
+  artifacts:
+    paths:
+    - public
+  rules:
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run on default branch (with default PAGES_PREFIX)
+    - if: $CI_COMMIT_BRANCH == "staging" # Run on main (with default PAGES_PREFIX)
+      variables:
+        PAGES_PREFIX: '_stg' # Prefix with _stg for the staging branch
+    - if: $CI_PIPELINE_SOURCE == "merge_request_event" # Conditionally change the prefix for Merge Requests
+      when: manual # Run pages manually on Merge Requests
+      variables:
+        PAGES_PREFIX: 'mr-$CI_MERGE_REQUEST_IID' # Prefix with the mr-<iid>, like `mr-123`
+```
+
+Some other examples of mixing [variables](../../../ci/variables/_index.md) with strings for dynamic prefixes:
+
+- `pages.path_prefix: 'mr-$CI_COMMIT_REF_SLUG'`: Branch or tag name prefixed with `mr-`, like `mr-branch-name`.
+- `pages.path_prefix: '_${CI_MERGE_REQUEST_IID}_'`: Merge request number
+  prefixed ans suffixed with `_`, like `_123_`.
+
+The previous YAML example uses [user-defined job names](_index.md#user-defined-job-names).
+
+### Use parallel deployments to create Pages environments
+
+You can use parallel GitLab Pages deployments to create a new [environment](../../../ci/environments/_index.md).
+For example:
+
+```yaml
+deploy-pages:
+  stage: deploy
+  script:
+    - echo "Pages accessible through ${CI_PAGES_URL}"
+  variables:
+    PAGES_PREFIX: "" # no prefix by default (master)
+  pages:  # specifies that this is a Pages job
+    path_prefix: "$PAGES_PREFIX"
+  environment:
+    name: "Pages ${PAGES_PREFIX}"
+    url: $CI_PAGES_URL
+  artifacts:
+    paths:
+    - public
+  rules:
+    - if: $CI_COMMIT_BRANCH == "staging" # ensure to run on master (with default PAGES_PREFIX)
+      variables:
+        PAGES_PREFIX: '_stg' # prefix with _stg for the staging branch
+    - if: $CI_PIPELINE_SOURCE == "merge_request_event" # conditionally change the prefix on Merge Requests
+      when: manual # run pages manually on Merge Requests
+      variables:
+        PAGES_PREFIX: 'mr-$CI_MERGE_REQUEST_IID' # prefix with the mr-<iid>, like `mr-123`
+```
+
+With this configuration, users will have the access to each GitLab Pages deployment through the UI.
+When using [environments](../../../ci/environments/_index.md) for pages, all pages environments are
+listed on the project environment list.
+
+You can also [group similar environments](../../../ci/environments/_index.md#group-similar-environments) together.
+
+The previous YAML example uses [user-defined job names](_index.md#user-defined-job-names).
+
+#### Auto-clean
+
+Parallel Pages deployments, created by a merge request with a `path_prefix`, are automatically deleted when the
+merge request is closed or merged.
diff --git a/ee/app/assets/javascripts/usage_quotas/pages/components/stats.vue b/ee/app/assets/javascripts/usage_quotas/pages/components/stats.vue
index 794beae76d2ed41aa3c143a34a014bf313b4cc3a..a24c20f5fac4e482b9220fc2a9cac7625fbb7c88 100644
--- a/ee/app/assets/javascripts/usage_quotas/pages/components/stats.vue
+++ b/ee/app/assets/javascripts/usage_quotas/pages/components/stats.vue
@@ -23,7 +23,7 @@ export default {
     'domain',
   ],
   static: {
-    helpLink: `${DOCS_URL_IN_EE_DIR}/user/project/pages/#limits`,
+    helpLink: `${DOCS_URL_IN_EE_DIR}/user/project/pages/parallel_deployments#limits`,
   },
   i18n: {
     description: s__('PagesUsageQuota|Active parallel deployments'),
diff --git a/ee/lib/ee/gitlab/pages/deployment_validations.rb b/ee/lib/ee/gitlab/pages/deployment_validations.rb
index 6d0b2491a603e06fbf5fc4523e7c412e30e58d20..d9b97649128bcd2c8b5f6a2c934d673a94e2b50b 100644
--- a/ee/lib/ee/gitlab/pages/deployment_validations.rb
+++ b/ee/lib/ee/gitlab/pages/deployment_validations.rb
@@ -27,7 +27,7 @@ def validate_versioned_deployments_limit
           return if project.pages_parallel_deployments_limit > project.pages_domain_level_parallel_deployments_count
 
           docs_link = Rails.application.routes.url_helpers.help_page_url(
-            'user/project/pages/_index.md',
+            'user/project/pages/parallel_deployments.md',
             anchor: 'limits'
           )
 
diff --git a/ee/spec/frontend/usage_quotas/pages/components/stats_spec.js b/ee/spec/frontend/usage_quotas/pages/components/stats_spec.js
index befb248cad3eb154c2528046a549e6bb0a289416..a72008a065e14230704d5b78f410c993ac57032f 100644
--- a/ee/spec/frontend/usage_quotas/pages/components/stats_spec.js
+++ b/ee/spec/frontend/usage_quotas/pages/components/stats_spec.js
@@ -123,7 +123,9 @@ describe('PagesDeploymentsStats', () => {
     it('displays the help link', () => {
       const link = wrapper.getComponent(GlLink);
 
-      expect(link.attributes('href')).toBe(`${DOCS_URL_IN_EE_DIR}/user/project/pages/#limits`);
+      expect(link.attributes('href')).toBe(
+        `${DOCS_URL_IN_EE_DIR}/user/project/pages/parallel_deployments#limits`,
+      );
       expect(link.attributes('title')).toBe('Learn about limits for Pages deployments');
       expect(link.attributes('aria-label')).toBe('Learn about limits for Pages deployments');
     });
diff --git a/ee/spec/lib/ee/gitlab/pages/deployment_validations_spec.rb b/ee/spec/lib/ee/gitlab/pages/deployment_validations_spec.rb
index 3897786ee5c19ee79bd1d8b7f4343828c085b9b2..b81ab65f2edd3f0c90c8ae4bd12df27989575650 100644
--- a/ee/spec/lib/ee/gitlab/pages/deployment_validations_spec.rb
+++ b/ee/spec/lib/ee/gitlab/pages/deployment_validations_spec.rb
@@ -126,14 +126,14 @@
         let(:pages_unique_domain_enabled) { false }
 
         include_examples "invalid pages deployment",
-          message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/_index.md#limits"
+          message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/parallel_deployments.md#limits"
       end
 
       context "when unique domains are enabled" do
         let(:pages_unique_domain_enabled) { true }
 
         include_examples "invalid pages deployment",
-          message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/_index.md#limits"
+          message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/parallel_deployments.md#limits"
       end
     end
 
@@ -153,7 +153,7 @@
         let(:pages_unique_domain_enabled) { false }
 
         include_examples "invalid pages deployment",
-          message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/_index.md#limits"
+          message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/parallel_deployments.md#limits"
       end
 
       context "when unique domains are enabled" do