diff --git a/doc/development/code_review.md b/doc/development/code_review.md
index 7724b183ad3f13bda32f42cb7ad9a191335eaabd..7ea4f798a09274ecf166e7ce21ef1d6c7ba11737 100644
--- a/doc/development/code_review.md
+++ b/doc/development/code_review.md
@@ -298,7 +298,7 @@ See the [test engineering process](https://handbook.gitlab.com/handbook/engineer
 ### The responsibility of the merge request author
 
 The responsibility to find the best solution and implement it lies with the
-merge request author. The author or [directly responsible individual](https://about.gitlab.com/handbook/people-group/directly-responsible-individuals/)
+merge request author. The author or [directly responsible individual](https://handbook.gitlab.com/handbook/people-group/directly-responsible-individuals/)
 (DRI) stays assigned to the merge request as the assignee throughout
 the code review lifecycle. If you are unable to set yourself as an assignee, ask a [reviewer](https://handbook.gitlab.com/handbook/engineering/workflow/code-review/#reviewer) to do this for you.
 
diff --git a/doc/development/documentation/site_architecture/automation.md b/doc/development/documentation/site_architecture/automation.md
index 35723a5623b65a62f7140858acf08601e4153734..f362f3db9be6b9654c3e4ef2e27add944d674e18 100644
--- a/doc/development/documentation/site_architecture/automation.md
+++ b/doc/development/documentation/site_architecture/automation.md
@@ -44,8 +44,8 @@ that are coded across multiple repositories.
 | [All feature flags in GitLab](../../../user/feature_flags.md) | [Generated during docs build](https://gitlab.com/gitlab-org/gitlab-docs/-/blob/main/doc/raketasks.md#generate-the-feature-flag-tables) | [Technical Writing](https://handbook.gitlab.com/handbook/product/ux/technical-writing/) |
 | [GitLab Runner feature flags](https://docs.gitlab.com/runner/configuration/feature-flags.html) | [Page source](https://gitlab.com/gitlab-org/gitlab-runner/-/blob/ec6e1797d2173a95c8ac7f726bd62f6f110b7211/docs/configuration/feature-flags.md?plain=1#L39) | [Runner](https://handbook.gitlab.com/handbook/engineering/development/ops/verify/runner/) |
 | [Deprecations and removals by version](../../../update/deprecations.md) | [Deprecating GitLab features](../../deprecation_guidelines/index.md) |  |
-| [GraphQL API resources](../../../api/graphql/reference/index.md) | [GraphQL API style guide](../../api_graphql_styleguide.md#documentation-and-schema) | [Import and Integrate](https://about.gitlab.com/handbook/engineering/development/dev/manage/import-and-integrate/) |
-| [Audit event types](../../../administration/audit_event_streaming/audit_event_types.md) | [Audit event development guidelines](../../audit_event_guide/index.md) | [Compliance](https://about.gitlab.com/handbook/engineering/development/sec/govern/compliance/) |
+| [GraphQL API resources](../../../api/graphql/reference/index.md) | [GraphQL API style guide](../../api_graphql_styleguide.md#documentation-and-schema) | [Import and Integrate](https://handbook.gitlab.com/handbook/engineering/development/dev/manage/import-and-integrate/) |
+| [Audit event types](../../../administration/audit_event_streaming/audit_event_types.md) | [Audit event development guidelines](../../audit_event_guide/index.md) | [Compliance](https://handbook.gitlab.com/handbook/engineering/development/sec/govern/compliance/) |
 | [Available custom role permissions](../../../user/custom_roles/abilities.md) | [Generated by Rake task](https://gitlab.com/gitlab-org/gitlab/-/blob/master/tooling/custom_roles/docs/templates/custom_abilities.md.erb) | [Authorization](https://handbook.gitlab.com/handbook/product/categories/#authorization-group)|
 | DAST vulnerability check documentation ([Example](../../../user/application_security/dast/checks/798.19.md)) | [How to generate the Markdown](https://gitlab.com/gitlab-org/security-products/dast-cwe-checks/-/blob/main/doc/how-to-generate-the-markdown-documentation.md) | [Dynamic Analysis](https://handbook.gitlab.com/handbook/product/categories/#dynamic-analysis-group) |
 | Blueprints ([Example](../../../architecture/blueprints/ci_data_decay/pipeline_partitioning.md)) |  |  |
diff --git a/doc/development/documentation/styleguide/word_list.md b/doc/development/documentation/styleguide/word_list.md
index d0b73da9941169c457cc48bb4bd57290426b01ea..51a8772519345c813d3fd600148246e59da12df9 100644
--- a/doc/development/documentation/styleguide/word_list.md
+++ b/doc/development/documentation/styleguide/word_list.md
@@ -11,7 +11,7 @@ To help ensure consistency in the documentation, the Technical Writing team
 recommends these word choices. In addition:
 
 - The GitLab handbook contains a list of
-  [top misused terms](https://about.gitlab.com/handbook/communication/top-misused-terms/).
+  [top misused terms](https://handbook.gitlab.com/handbook/communication/top-misused-terms/).
 - The documentation [style guide](../styleguide#language) includes details
   about language and capitalization.
 - The GitLab handbook provides guidance on the [use of third-party trademarks](https://handbook.gitlab.com/handbook/legal/policies/product-third-party-trademarks-guidelines/#process-for-adding-third-party-trademarks-to-gitlab).
@@ -782,7 +782,7 @@ Thereafter, use **Git suggestions** by itself.
 
 ## GitLab
 
-Do not make **GitLab** possessive (GitLab's). This guidance follows [GitLab Trademark Guidelines](https://about.gitlab.com/handbook/marketing/brand-and-product-marketing/brand/brand-activation/trademark-guidelines/).
+Do not make **GitLab** possessive (GitLab's). This guidance follows [GitLab Trademark Guidelines](https://handbook.gitlab.com/handbook/marketing/brand-and-product-marketing/brand/brand-activation/trademark-guidelines/).
 
 ## GitLab Dedicated
 
diff --git a/doc/development/feature_flags/controls.md b/doc/development/feature_flags/controls.md
index 2ea5ecd272aa0ae519054d9688c392ba2189ce3d..fdb17234d87d8fb07936346b680e4c5a65968f64 100644
--- a/doc/development/feature_flags/controls.md
+++ b/doc/development/feature_flags/controls.md
@@ -104,7 +104,7 @@ Guidelines:
 - Consider notifying `#support_gitlab-com` beforehand. So in case if the feature has any side effects on user experience, they can mitigate and disable the feature flag to reduce some impact.
 - If the feature meets the requirements for creating a [Change Management](https://handbook.gitlab.com/handbook/engineering/infrastructure/change-management/#feature-flags-and-the-change-management-process) issue, create a Change Management issue per [criticality guidelines](https://handbook.gitlab.com/handbook/engineering/infrastructure/change-management/#change-request-workflows).
 - For simple, low-risk, easily reverted features, proceed and [enable the feature in `#production`](#process).
-- For support requests to toggle feature flags for specific groups or projects, follow the process outlined in the [support workflows](https://about.gitlab.com/handbook/support/workflows/saas_feature_flags.html).
+- For support requests to toggle feature flags for specific groups or projects, follow the process outlined in the [support workflows](https://handbook.gitlab.com/handbook/support/workflows/saas_feature_flags/).
 
 #### Guideline for which percentages to choose during the rollout
 
@@ -463,7 +463,7 @@ Changes to the issue format can be submitted in the
 
 Any feature flag change that affects any GitLab instance is automatically logged in
 [features_json.log](../../administration/logs/index.md#features_jsonlog).
-You can search the change history in [Kibana](https://about.gitlab.com/handbook/support/workflows/kibana.html).
+You can search the change history in [Kibana](https://handbook.gitlab.com/handbook/support/workflows/kibana/).
 You can also access the feature flag change history for GitLab.com [in Kibana](https://log.gprd.gitlab.net/goto/d060337c017723084c6d97e09e591fc6).
 
 ## Cleaning up
diff --git a/doc/development/integrations/secure_partner_integration.md b/doc/development/integrations/secure_partner_integration.md
index d0a2c8b828fb6a236265b741e14c7e5b59a5264b..50e24c87c7e54dfbc0bc073215d398eeda101d84 100644
--- a/doc/development/integrations/secure_partner_integration.md
+++ b/doc/development/integrations/secure_partner_integration.md
@@ -20,7 +20,7 @@ integration as well as linking to more detailed resources for how to do so.
 ## Integration Tiers
 
 The security offerings in GitLab are designed for GitLab Ultimate users, and the
-[DevSecOps](https://about.gitlab.com/handbook/use-cases/#4-devsecops-shift-left-security)
+[DevSecOps](https://handbook.gitlab.com/handbook/use-cases/#3-continuous-software-security-assurancehandbookmarketingbrand-and-product-marketingproduct-and-solution-marketingusecase-gtmdevsecops)
 use case. All the features are in those tiers. This includes the APIs and standard reporting
 framework needed to provide a consistent experience for users to easily bring their preferred
 security tools into GitLab. We ask that our integration partners focus their work on those license
diff --git a/doc/development/internal_analytics/index.md b/doc/development/internal_analytics/index.md
index a36180e703c7de13e8d64fd382fcc103bb152768..efd98f8a1362f0bd65e35b02d20ec2186983df7c 100644
--- a/doc/development/internal_analytics/index.md
+++ b/doc/development/internal_analytics/index.md
@@ -78,7 +78,7 @@ On self-managed this depends on the particular instance. In general, only the me
 
 Event and metrics data is ultimately stored in our [Snowflake data warehouse](https://handbook.gitlab.com/handbook/business-technology/data-team/platform/snowflake/).
 It can either be accessed directly via SQL in Snowflake for [ad-hoc analyses](https://handbook.gitlab.com/handbook/business-technology/data-team/platform/#snowflake-analyst) or visualized in our data visualization tool
-[Tableau](https://about.gitlab.com/handbook/business-technology/data-team/platform/tableau/), which has access to Snowflake.
+[Tableau](https://handbook.gitlab.com/handbook/business-technology/data-team/platform/tableau/), which has access to Snowflake.
 Both platforms need an access request ([Snowflake](https://handbook.gitlab.com/handbook/business-technology/data-team/platform/#warehouse-access), [Tableau](https://handbook.gitlab.com/handbook/business-technology/data-team/platform/tableau/#tableau-online-access)).
 
 ### Tableau
@@ -136,7 +136,7 @@ WHERE metrics_path = 'counts.users_visiting_dashboard_weekly' --set to metric of
 ORDER BY ping_created_at DESC
 ```
 
-For a list of other metrics tables refer to the [Data Models Cheat Sheet](https://about.gitlab.com/handbook/product/product-analysis/data-model-cheat-sheet/#commonly-used-data-models).
+For a list of other metrics tables refer to the [Data Models Cheat Sheet](https://handbook.gitlab.com/handbook/product/product-analysis/data-model-cheat-sheet/#commonly-used-data-models).
 
 ## Data flow
 
diff --git a/doc/development/internal_analytics/internal_event_instrumentation/event_definition_guide.md b/doc/development/internal_analytics/internal_event_instrumentation/event_definition_guide.md
index 97b992350a5169b47f72d4d43bf9f7cbaf63c6d1..62acdddd2b9f4c2f8cf4b84e27743cea7ec3c26c 100644
--- a/doc/development/internal_analytics/internal_event_instrumentation/event_definition_guide.md
+++ b/doc/development/internal_analytics/internal_event_instrumentation/event_definition_guide.md
@@ -33,8 +33,8 @@ Each event is defined in a separate YAML file consisting of the following fields
 | `product_group`        | yes      | The [group](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/stages.yml) that owns the event.                                                                                  |
 | `milestone`            | no       | The milestone when the event is introduced.                                                                                                                                                 |
 | `introduced_by_url`    | no       | The URL to the merge request that introduced the event.                                                                                                                                     |
-| `distributions`        | yes      | The [distributions](https://about.gitlab.com/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/tiers/#definitions) where the tracked feature is available. Can be set to one or more of `ce` or `ee`.  |
-| `tiers`                | yes      | The [tiers](https://about.gitlab.com/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/tiers/) where the tracked feature is available. Can be set to one or more of `free`, `premium`, or `ultimate`. |
+| `distributions`        | yes      | The [distributions](https://handbook.gitlab.com/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/tiers/#definitions) where the tracked feature is available. Can be set to one or more of `ce` or `ee`.  |
+| `tiers`                | yes      | The [tiers](https://handbook.gitlab.com/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/tiers/) where the tracked feature is available. Can be set to one or more of `free`, `premium`, or `ultimate`. |
 
 ### Example event definition
 
diff --git a/doc/development/internal_analytics/metrics/metrics_dictionary.md b/doc/development/internal_analytics/metrics/metrics_dictionary.md
index 6c6bea1e0a26d52cbec99d2a705f7ab8f1170c4c..3126a50cf2cae2eb096c8e1909dc2c192c186804 100644
--- a/doc/development/internal_analytics/metrics/metrics_dictionary.md
+++ b/doc/development/internal_analytics/metrics/metrics_dictionary.md
@@ -42,9 +42,9 @@ Each metric is defined in a separate YAML file consisting of a number of fields:
 | `data_source`       | yes      | `string`; may be set to a value like `database`, `redis`, `redis_hll`, `prometheus`, `system`, `license`, `internal_events`.                                                                                                                                                                                                          |
 | `data_category`     | yes      | `string`; [categories](#data-category) of the metric, may be set to `operational`, `optional`, `subscription`, `standard`. The default value is `optional`.                                                                                                                                                                           |
 | `instrumentation_class` | no       | `string`; used for metrics with `data_source` other than `internal_events`. See [the class that implements the metric](metrics_instrumentation.md).                                                                                                                                                                   |
-| `distribution`      | yes      | `array`; may be set to one of `ce, ee` or `ee`. The [distribution](https://about.gitlab.com/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/tiers/#definitions) where the tracked feature is available.                                                                                                 |
+| `distribution`      | yes      | `array`; may be set to one of `ce, ee` or `ee`. The [distribution](https://handbook.gitlab.com/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/tiers/#definitions) where the tracked feature is available.                                                                                                 |
 | `performance_indicator_type`  | no       | `array`; may be set to one of [`gmau`, `smau`, `paid_gmau`, `umau` or `customer_health_score`](https://about.gitlab.com/handbook/business-technology/data-team/data-catalog/xmau-analysis/).                                                                                                                                          |
-| `tier`              | yes      | `array`; may contain one or a combination of `free`, `premium` or `ultimate`. The [tier](https://about.gitlab.com/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/tiers/#definitions) where the tracked feature is available. This should be verbose and contain all tiers where a metric is available. |
+| `tier`              | yes      | `array`; may contain one or a combination of `free`, `premium` or `ultimate`. The [tier](https://handbook.gitlab.com/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/tiers/#definitions) where the tracked feature is available. This should be verbose and contain all tiers where a metric is available. |
 | `milestone`         | yes      | The milestone when the metric is introduced and when it's available to self-managed instances with the official GitLab release.                                                                                                                                                                                                       |
 | `milestone_removed` | no       | The milestone when the metric is removed. Required for removed metrics.                                                                                                                                                                                                                                                               |
 | `introduced_by_url` | no       | The URL to the merge request that introduced the metric to be available for self-managed instances.                                                                                                                                                                                                                                   |
diff --git a/doc/development/internal_analytics/service_ping/index.md b/doc/development/internal_analytics/service_ping/index.md
index 5ae7594dbea8eb2d5de8920556ec008d73ff77c7..22d351599ce5c7d8098db69f0afdd88e57c829b8 100644
--- a/doc/development/internal_analytics/service_ping/index.md
+++ b/doc/development/internal_analytics/service_ping/index.md
@@ -395,6 +395,6 @@ Service Ping reporting process state is monitored with [internal SiSense dashboa
 ## Related topics
 
 - [Analytics Instrumentation Direction](https://about.gitlab.com/direction/analytics/analytics-instrumentation/)
-- [Data Analysis Process](https://about.gitlab.com/handbook/business-technology/data-team/#data-analysis-process/)
-- [Data for Product Managers](https://about.gitlab.com/handbook/business-technology/data-team/programs/data-for-product-managers/)
-- [Data Infrastructure](https://about.gitlab.com/handbook/business-technology/data-team/platform/infrastructure/)
+- [Data Analysis Process](https://handbook.gitlab.com/handbook/business-technology/data-team/organization/analytics/#data-analysis-process)
+- [Data for Product Managers](https://handbook.gitlab.com/handbook/business-technology/data-team/programs/data-for-product-managers/)
+- [Data Infrastructure](https://handbook.gitlab.com/handbook/business-technology/data-team/platform/infrastructure/)
diff --git a/doc/development/labels/index.md b/doc/development/labels/index.md
index 403755d7a1be493b8cdf3f406f0a31726343882e..47e2984e0cdd5408da182e25edd4d50a079c782a 100644
--- a/doc/development/labels/index.md
+++ b/doc/development/labels/index.md
@@ -132,7 +132,7 @@ For instance, the "DevOps Reports" category is represented by the
 `devops_reports.name` value is "DevOps Reports".
 
 If a category's label doesn't respect this naming convention, it should be specified
-with [the `label` attribute](https://about.gitlab.com/handbook/marketing/digital-experience/website/#category-attributes)
+with [the `label` attribute](https://handbook.gitlab.com/handbook/marketing/digital-experience/website/#category-attributes)
 in <https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/categories.yml>.
 
 ## Feature labels
diff --git a/doc/development/pipelines/index.md b/doc/development/pipelines/index.md
index cb3d177cd6e231c43ef24c3ae7d4efb506d0d3d9..ade47da610d1d17c63c7d00f35ff3b6b2e9719d8 100644
--- a/doc/development/pipelines/index.md
+++ b/doc/development/pipelines/index.md
@@ -332,9 +332,9 @@ The intent is to ensure that a change doesn't introduce a failure after
 
 #### What it is
 
-This pipeline is also called [JiHu validation pipeline](https://about.gitlab.com/handbook/ceo/chief-of-staff-team/jihu-support/jihu-validation-pipelines.html),
+This pipeline is also called [JiHu validation pipeline](https://handbook.gitlab.com/handbook/ceo/chief-of-staff-team/jihu-support/jihu-validation-pipelines/),
 and it's currently allowed to fail. When that happens, follow
-[What to do when the validation pipeline fails](https://about.gitlab.com/handbook/ceo/chief-of-staff-team/jihu-support/jihu-validation-pipelines.html#what-to-do-when-the-validation-pipeline-failed).
+[What to do when the validation pipeline fails](https://handbook.gitlab.com/handbook/ceo/chief-of-staff-team/jihu-support/jihu-validation-pipelines/#what-to-do-when-the-validation-pipeline-failed).
 
 #### How we run it
 
diff --git a/doc/development/pipelines/internals.md b/doc/development/pipelines/internals.md
index a887bea02e37170f4e5b02a6361aa1f505f1823a..cab1ee39b610f20e00c44fe7bc49925546b38558 100644
--- a/doc/development/pipelines/internals.md
+++ b/doc/development/pipelines/internals.md
@@ -45,7 +45,7 @@ Some more context and background can be found at:
 Here's a list of where we're using this right now, and should try to move away
 from using `$FORCE_GITLAB_CI`.
 
-- [JiHu validation pipeline](https://about.gitlab.com/handbook/ceo/chief-of-staff-team/jihu-support/jihu-validation-pipelines.html)
+- [JiHu validation pipeline](https://handbook.gitlab.com/handbook/ceo/chief-of-staff-team/jihu-support/jihu-validation-pipelines/)
 
 See the next section for how we can enable pipelines without using
 `$FORCE_GITLAB_CI`.
diff --git a/doc/development/product_qualified_lead_guide/index.md b/doc/development/product_qualified_lead_guide/index.md
index 47568c97e2ba15e4015c3a6a04121a24f80f522f..9087cdcb0e397d2cb518acd3f624cd1d1262eb65 100644
--- a/doc/development/product_qualified_lead_guide/index.md
+++ b/doc/development/product_qualified_lead_guide/index.md
@@ -119,7 +119,7 @@ The flow of a PQL lead is as follows:
 1. A user triggers a [`HandRaiseLeadButton` component](#embed-a-hand-raise-lead-form) on `gitlab.com`.
 1. The `HandRaiseLeadButton` submits any information to the following API endpoint: `/-/subscriptions/hand_raise_leads`.
 1. That endpoint reposts the form to the CustomersDot `trials/create_hand_raise_lead` endpoint.
-1. CustomersDot records the form data to the `leads` table and posts the form to [Workato](https://about.gitlab.com/handbook/marketing/marketing-operations/workato/).
+1. CustomersDot records the form data to the `leads` table and posts the form to [Workato](https://handbook.gitlab.com/handbook/marketing/marketing-operations/workato/).
 1. Workato sends the form to Marketo.
 1. Marketo does scoring and sends the form to Salesforce.
 1. Our Sales team uses Salesforce to connect to the leads.
diff --git a/doc/development/stage_group_observability/dashboards/index.md b/doc/development/stage_group_observability/dashboards/index.md
index 6f72943a845301eb3551476bf0704dbfe7548d6d..fa4645408b21a38e47b60b40772315c792eae704 100644
--- a/doc/development/stage_group_observability/dashboards/index.md
+++ b/doc/development/stage_group_observability/dashboards/index.md
@@ -37,7 +37,7 @@ Some generated dashboards are already available:
 ![Default time filter](img/stage_group_dashboards_time_filter.png)
 
 By default, all the times are in UTC time zone.
-[We use UTC when communicating in Engineering.](https://about.gitlab.com/handbook/communication/#writing-style-guidelines)
+[We use UTC when communicating in Engineering.](https://handbook.gitlab.com/handbook/communication/#writing-style-guidelines)
 
 All metrics recorded in the GitLab production system have
 [one-year retention](https://gitlab.com/gitlab-cookbooks/gitlab-prometheus/-/blob/31526b03fef823e2f9b3cda7c75dcd28a12418a3/attributes/prometheus.rb#L40).
diff --git a/doc/development/testing_guide/end_to_end/running_tests_that_require_special_setup.md b/doc/development/testing_guide/end_to_end/running_tests_that_require_special_setup.md
index e65c5a5c72d9abcf218ac9bb1dbe2d88442681f1..1d33fb6a2588865536cd3009b3e35a269af4ee9c 100644
--- a/doc/development/testing_guide/end_to_end/running_tests_that_require_special_setup.md
+++ b/doc/development/testing_guide/end_to_end/running_tests_that_require_special_setup.md
@@ -679,7 +679,7 @@ In order to run Product Analytics services, devkit can be used. Instructions to
 Additionally, the following setup is required on the GDK:
 
 - Ultimate license applied.
-  - [How to request the license](https://about.gitlab.com/handbook/developer-onboarding/#working-on-gitlab-ee-developer-licenses).
+  - [How to request the license](https://handbook.gitlab.com/handbook/developer-onboarding/#working-on-gitlab-ee-developer-licenses).
   - [How to activate GitLab EE with a license file or key](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/administration/license_file.md#activate-gitlab-ee-with-a-license-file-or-key).
 - Product Analytics feature flags enabled. The list of feature flags can be [found here](https://gitlab.com/gitlab-org/gitlab/-/tree/master/doc/user/product_analytics#enable-product-analytics).
 - Simulate SaaS enabled. Instructions can be [found here](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ee_features.md#simulate-a-saas-instance).
diff --git a/doc/integration/advanced_search/elasticsearch.md b/doc/integration/advanced_search/elasticsearch.md
index 1bfec3330bea30fcbdd8200c02b406ddd0f73367..9456e94f69b2e2b82ab0687f24041a6bd4123a24 100644
--- a/doc/integration/advanced_search/elasticsearch.md
+++ b/doc/integration/advanced_search/elasticsearch.md
@@ -27,7 +27,7 @@ Advanced search works with the following versions of Elasticsearch.
 | GitLab 14.0 to 14.10  | Elasticsearch 6.8 to 7.x    |
 
 Advanced search follows the [Elasticsearch end-of-life policy](https://www.elastic.co/support/eol).
-When we change Elasticsearch supported versions in GitLab, we announce them in [deprecation notes](https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations) in monthly release posts
+When we change Elasticsearch supported versions in GitLab, we announce them in [deprecation notes](https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#update-the-deprecations-doc) in monthly release posts
 before we remove them.
 
 ### OpenSearch version requirements
diff --git a/doc/security/email_verification.md b/doc/security/email_verification.md
index 25d4b76c07c5b398c4c19c562aac7702bd808241..3f21bfffc13097d42cb717aae463b21d150b7d81 100644
--- a/doc/security/email_verification.md
+++ b/doc/security/email_verification.md
@@ -51,4 +51,4 @@ To unlock an account manually, reset your password.
 
 ## Related topics
 
-- [Locked and blocked account support](https://about.gitlab.com/handbook/support/workflows/reinstating-blocked-accounts.html)
+- [Locked and blocked account support](https://handbook.gitlab.com/handbook/support/workflows/reinstating-blocked-accounts/)
diff --git a/doc/security/unlock_user.md b/doc/security/unlock_user.md
index 1286ab3da37f2c036030b54521ae0dab2395cf52..a5abe3101275044b17687409d207c83dbab8fbff 100644
--- a/doc/security/unlock_user.md
+++ b/doc/security/unlock_user.md
@@ -35,7 +35,7 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab
 If 2FA is not enabled users are locked after three failed sign-in attempts within 24 hours. These users remain locked until:
 
 - Their next successful sign-in, at which point they are sent an email with a six-digit unlock code and redirected to a verification page where they can unlock their account by entering the code.
-- GitLab Support [manually unlock](https://about.gitlab.com/handbook/support/workflows/reinstating-blocked-accounts/#manual-unlock) the account after account ownership is verified.
+- GitLab Support [manually unlock](https://handbook.gitlab.com/handbook/support/workflows/reinstating-blocked-accounts/#manual-unlock) the account after account ownership is verified.
 
 If 2FA is enabled, users are locked after three failed sign-in attempts. Accounts are unlocked automatically after 30 minutes.
 
diff --git a/doc/subscriptions/community_programs.md b/doc/subscriptions/community_programs.md
index a7b95c784918e0834a6e933e23c5957b21439fe0..111c097c11102223b71ba618cdad29087b677428 100644
--- a/doc/subscriptions/community_programs.md
+++ b/doc/subscriptions/community_programs.md
@@ -11,11 +11,11 @@ GitLab provides the following community program subscriptions.
 
 ## GitLab for Education
 
-For qualifying non-profit educational institutions, the [GitLab for Education Program](https://about.gitlab.com/solutions/education/) provides GitLab Ultimate, plus 50,000 compute minutes per month. The subscription granted under GitLab for Education can only be used for instructional use or non-commercial academic research. For more information—including instructions for applying to the program and renewing program membership—see the [GitLab for Education Program page](https://about.gitlab.com/solutions/education/) and the [GitLab handbook](https://about.gitlab.com/handbook/marketing/community-relations/community-programs/education-program/).
+For qualifying non-profit educational institutions, the [GitLab for Education Program](https://about.gitlab.com/solutions/education/) provides GitLab Ultimate, plus 50,000 compute minutes per month. The subscription granted under GitLab for Education can only be used for instructional use or non-commercial academic research. For more information—including instructions for applying to the program and renewing program membership—see the [GitLab for Education Program page](https://about.gitlab.com/solutions/education/) and the [GitLab handbook](https://handbook.gitlab.com/handbook/marketing/developer-relations/community-programs/education-program/).
 
 ## GitLab for Open Source
 
-For qualifying open source projects, the [GitLab for Open Source Program](https://about.gitlab.com/solutions/open-source/) provides GitLab Ultimate, plus 50,000 compute minutes per month. For more information—including instructions for applying to the program and renewing program membership—see the [GitLab for Open Source Program page](https://about.gitlab.com/solutions/open-source/) and the [GitLab handbook](https://about.gitlab.com/handbook/marketing/community-relations/community-programs/opensource-program/).
+For qualifying open source projects, the [GitLab for Open Source Program](https://about.gitlab.com/solutions/open-source/) provides GitLab Ultimate, plus 50,000 compute minutes per month. For more information—including instructions for applying to the program and renewing program membership—see the [GitLab for Open Source Program page](https://about.gitlab.com/solutions/open-source/) and the [GitLab handbook](https://handbook.gitlab.com/handbook/marketing/developer-relations/community-programs/open-source-program/).
 
 ### Meeting GitLab for Open Source Program requirements
 
@@ -78,4 +78,4 @@ Exceptions to this public visibility requirement apply in select circumstances (
 
 ## GitLab for Startups
 
-For qualifying startups, the [GitLab for Startups](https://about.gitlab.com/solutions/startups/) program provides GitLab Ultimate, plus 50,000 compute minutes per month for 12 months. For more information—including instructions for applying to the program and renewing program membership—see the [GitLab for Startups Program page](https://about.gitlab.com/solutions/startups/) and the [GitLab handbook](https://about.gitlab.com/handbook/marketing/community-relations/community-programs/startups-program/).
+For qualifying startups, the [GitLab for Startups](https://about.gitlab.com/solutions/startups/) program provides GitLab Ultimate, plus 50,000 compute minutes per month for 12 months. For more information—including instructions for applying to the program and renewing program membership—see the [GitLab for Startups Program page](https://about.gitlab.com/solutions/startups/) and the [GitLab handbook](https://handbook.gitlab.com/handbook/marketing/developer-relations/community-programs/startups-program/).
diff --git a/doc/update/index.md b/doc/update/index.md
index 45b912e9970be5b27adc1c7c3183918fa109d38f..030e719a58770ca39e83d9d5a537ae35f56f6db2 100644
--- a/doc/update/index.md
+++ b/doc/update/index.md
@@ -188,7 +188,7 @@ Upgrading across multiple GitLab versions in one go is *only possible by accepti
 If you don't want any downtime, read how to [upgrade with zero downtime](zero_downtime.md).
 
 For a dynamic view of examples of supported upgrade paths, try the [Upgrade Path tool](https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/)
-maintained by the [GitLab Support team](https://about.gitlab.com/handbook/support/#about-the-support-team). To share
+maintained by the [GitLab Support team](https://handbook.gitlab.com/handbook/support/#about-the-support-team). To share
 feedback and help improve the tool, create an issue or MR in the [upgrade-path project](https://gitlab.com/gitlab-com/support/toolbox/upgrade-path).
 
 When upgrading:
diff --git a/doc/update/terminology.md b/doc/update/terminology.md
index 56d5b13461ad7f8f74cb993d7dbbb97e5e1019b1..28fbaaa269330bf52e882e6bffc30e1f134d655f 100644
--- a/doc/update/terminology.md
+++ b/doc/update/terminology.md
@@ -24,7 +24,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
 - Will be removed in a future major release.
 - Begins after an end-of-support date has passed.
 
-[Announcing an End of Support period](https://about.gitlab.com/handbook/marketing/blog/release-posts/#announcing-an-end-of-support-period)
+[Announcing an End of Support period](https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#announcing-an-end-of-support-period)
 should only be used in special circumstances and is not recommended for general use.
 Most features should be deprecated and then removed.
 
diff --git a/doc/update/versions/gitlab_14_changes.md b/doc/update/versions/gitlab_14_changes.md
index a51fa45905438524698bca2c362e40eb833f68d8..b7c304f2ba2011c247ffc34eef991906362252d2 100644
--- a/doc/update/versions/gitlab_14_changes.md
+++ b/doc/update/versions/gitlab_14_changes.md
@@ -573,7 +573,7 @@ DETAILS:
       sudo gitlab-rake "gitlab:password:reset[user_handle]"
       ```
 
-- If you encounter the error, `I18n::InvalidLocale: :en is not a valid locale`, when starting the application, follow the [patching](https://about.gitlab.com/handbook/support/workflows/patching_an_instance.html) process. Use [122978](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122978) as the `mr_iid`.
+- If you encounter the error, `I18n::InvalidLocale: :en is not a valid locale`, when starting the application, follow the [patching](https://handbook.gitlab.com/handbook/support/workflows/patching_an_instance/) process. Use [122978](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122978) as the `mr_iid`.
 
 ### Self-compiled installations
 
@@ -683,7 +683,7 @@ DETAILS:
   end
   ```
 
-- If you encounter the error, `I18n::InvalidLocale: :en is not a valid locale`, when starting the application, follow the [patching](https://about.gitlab.com/handbook/support/workflows/patching_an_instance.html) process. Use [123476](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123476) as the `mr_iid`.
+- If you encounter the error, `I18n::InvalidLocale: :en is not a valid locale`, when starting the application, follow the [patching](https://handbook.gitlab.com/handbook/support/workflows/patching_an_instance/) process. Use [123476](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123476) as the `mr_iid`.
 
 ### Geo installations
 
@@ -766,7 +766,7 @@ DETAILS:
   [This bug](https://gitlab.com/gitlab-org/gitlab/-/issues/329261) was fixed in
   GitLab 14.5.0 and backported into 14.4.3 and 14.3.5.
 
-- If you encounter the error, `I18n::InvalidLocale: :en is not a valid locale`, when starting the application, follow the [patching](https://about.gitlab.com/handbook/support/workflows/patching_an_instance.html) process. Use [123475](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123475) as the `mr_iid`.
+- If you encounter the error, `I18n::InvalidLocale: :en is not a valid locale`, when starting the application, follow the [patching](https://handbook.gitlab.com/handbook/support/workflows/patching_an_instance/) process. Use [123475](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123475) as the `mr_iid`.
 
 ### Geo installations
 
diff --git a/doc/user/ai_features.md b/doc/user/ai_features.md
index 32f3fabd0ddbe87429fe59b4e6b05e5c142ba793..91a6c605c7b1677ea2e08edb3bc5d38713af8de1 100644
--- a/doc/user/ai_features.md
+++ b/doc/user/ai_features.md
@@ -14,7 +14,7 @@ GitLab is creating AI-assisted features across our DevSecOps platform. These fea
 
 Some features are still in development. View details about [support for each status](../policy/experiment-beta-support.md#experiment) (Experiment, Beta, Generally Available).
 
- As features become Generally Available, GitLab is [transparent](https://about.gitlab.com/handbook/content/handbook/values/index.md/#transparency) and updates the documentation to clearly state how and where you can access these capabilities.
+ As features become Generally Available, GitLab is [transparent](https://handbook.gitlab.com/handbook/values/#transparency) and updates the documentation to clearly state how and where you can access these capabilities.
 
 | Goal | Feature | Tier/Offering/Status |
 |---|---|---|
@@ -268,7 +268,7 @@ All of these AI providers are under data protection agreements with GitLab that
 
 ### Telemetry
 
-GitLab Duo collects aggregated or de-identified first-party usage data through our [Snowplow collector](https://about.gitlab.com/handbook/business-technology/data-team/platform/snowplow/). This usage data includes the following metrics:
+GitLab Duo collects aggregated or de-identified first-party usage data through our [Snowplow collector](https://handbook.gitlab.com/handbook/business-technology/data-team/platform/snowplow/). This usage data includes the following metrics:
 
 - Number of unique users
 - Number of unique instances
diff --git a/doc/user/application_security/api_fuzzing/configuration/index.md b/doc/user/application_security/api_fuzzing/configuration/index.md
index e2e0032190122a489816807c906202bb3c9a2ca9..189ef14929cf010056f41e8e62e2b2288599ec9a 100644
--- a/doc/user/application_security/api_fuzzing/configuration/index.md
+++ b/doc/user/application_security/api_fuzzing/configuration/index.md
@@ -1,7 +1,7 @@
 ---
 stage: Secure
 group: Dynamic Analysis
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+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
 type: reference, howto
 ---
 
diff --git a/doc/user/application_security/api_fuzzing/configuration/overriding_analyzer_jobs.md b/doc/user/application_security/api_fuzzing/configuration/overriding_analyzer_jobs.md
index 48053fda15d5180923dba215d84e175281211824..6cbfef904c601d6b9657306883e8d2ffdd137af8 100644
--- a/doc/user/application_security/api_fuzzing/configuration/overriding_analyzer_jobs.md
+++ b/doc/user/application_security/api_fuzzing/configuration/overriding_analyzer_jobs.md
@@ -1,7 +1,7 @@
 ---
 stage: Secure
 group: Dynamic Analysis
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+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
 type: reference, howto
 ---
 
diff --git a/doc/user/application_security/api_fuzzing/configuration/requirements.md b/doc/user/application_security/api_fuzzing/configuration/requirements.md
index 2e615a5081cca6b0d9427c6223d2c334fa48012b..372c4875c62de5053c6b17af7eb08346096cd415 100644
--- a/doc/user/application_security/api_fuzzing/configuration/requirements.md
+++ b/doc/user/application_security/api_fuzzing/configuration/requirements.md
@@ -1,7 +1,7 @@
 ---
 stage: Secure
 group: Dynamic Analysis
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+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
 type: reference, howto
 ---
 
diff --git a/doc/user/application_security/dast_api/configuration/index.md b/doc/user/application_security/dast_api/configuration/index.md
index e2e0032190122a489816807c906202bb3c9a2ca9..189ef14929cf010056f41e8e62e2b2288599ec9a 100644
--- a/doc/user/application_security/dast_api/configuration/index.md
+++ b/doc/user/application_security/dast_api/configuration/index.md
@@ -1,7 +1,7 @@
 ---
 stage: Secure
 group: Dynamic Analysis
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+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
 type: reference, howto
 ---
 
diff --git a/doc/user/application_security/dast_api/configuration/overriding_analyzer_jobs.md b/doc/user/application_security/dast_api/configuration/overriding_analyzer_jobs.md
index 949f02809fa18b90068faaa9a606875309f03b9c..09636b1f968c1f1bf413aefafc8f05d974e705a6 100644
--- a/doc/user/application_security/dast_api/configuration/overriding_analyzer_jobs.md
+++ b/doc/user/application_security/dast_api/configuration/overriding_analyzer_jobs.md
@@ -1,7 +1,7 @@
 ---
 stage: Secure
 group: Dynamic Analysis
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+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
 type: reference, howto
 ---
 
diff --git a/doc/user/application_security/dast_api/configuration/requirements.md b/doc/user/application_security/dast_api/configuration/requirements.md
index df98ff306af1d029219639658b4915c1f7d1e8dc..7b3a60596fa320f9eaa457fde8e8a1dcab7a6434 100644
--- a/doc/user/application_security/dast_api/configuration/requirements.md
+++ b/doc/user/application_security/dast_api/configuration/requirements.md
@@ -1,7 +1,7 @@
 ---
 stage: Secure
 group: Dynamic Analysis
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+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
 type: reference, howto
 ---
 
diff --git a/doc/user/group/epics/manage_epics.md b/doc/user/group/epics/manage_epics.md
index 427b720bf56b541cfab81685dcb03b3476894f93..eab6a99827c17aaea58707a6e0ef54e639109018 100644
--- a/doc/user/group/epics/manage_epics.md
+++ b/doc/user/group/epics/manage_epics.md
@@ -467,7 +467,7 @@ You can create a spreadsheet template to manage a pattern of consistently repeat
 <i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
 For an introduction to epic templates, see [GitLab Epics and Epic Template Tip](https://www.youtube.com/watch?v=D74xKFNw8vg).
 
-For more on epic templates, see [Epic Templates - Repeatable sets of issues](https://about.gitlab.com/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/getting-started/104/).
+For more on epic templates, see [Epic Templates - Repeatable sets of issues](https://handbook.gitlab.com/handbook/marketing/brand-and-product-marketing/product-and-solution-marketing/getting-started/104/).
 
 ## Multi-level child epics
 
diff --git a/doc/user/group/saml_sso/troubleshooting_scim.md b/doc/user/group/saml_sso/troubleshooting_scim.md
index e214198e94bce77ef9b8002ea9a689e4621b8804..b8265ebcc208f0fe80de7beb4368b12f4ceeca44 100644
--- a/doc/user/group/saml_sso/troubleshooting_scim.md
+++ b/doc/user/group/saml_sso/troubleshooting_scim.md
@@ -146,7 +146,7 @@ DETAILS:
 **Offering:** SaaS
 
 GitLab.com administrators can search for SCIM requests in the `api_json.log` using the `pubsub-rails-inf-gprd-*` index in
-[Kibana](https://about.gitlab.com/handbook/support/workflows/kibana.html#using-kibana). Use the following filters based
+[Kibana](https://handbook.gitlab.com/handbook/support/workflows/kibana/#using-kibana). Use the following filters based
 on the internal [group SCIM API](../../../development/internal_api/index.md#group-scim-api):
 
 - `json.path`: `/scim/v2/groups/<group-path>`
diff --git a/doc/user/profile/index.md b/doc/user/profile/index.md
index 3f546d8cf8418f6b9087dabab334a8aa9e93792a..600af57f4a8e58490ce7fd60ba3ba6427a43fdb7 100644
--- a/doc/user/profile/index.md
+++ b/doc/user/profile/index.md
@@ -40,7 +40,7 @@ Prerequisites:
 - Your namespace must not:
   - Contain a project with [Container Registry](../packages/container_registry/index.md) tags.
   - Have a project that hosts [GitLab Pages](../project/pages/index.md). For more information,
-  see [changing your username in the GitLab Team Handbook](https://about.gitlab.com/handbook/tools-and-tips/#change-your-username-at-gitlabcom).
+  see [changing your username in the GitLab Team Handbook](https://handbook.gitlab.com/handbook/tools-and-tips/#change-your-username-at-gitlabcom).
 - Your username must be between 2 and 255 characters in length, and must not:
   - Contain special characters or emoji.
   - End with `.<reserved file extension>`, for example `jon.png`. However, `jonpng` is valid.
diff --git a/doc/user/project/repository/code_suggestions/index.md b/doc/user/project/repository/code_suggestions/index.md
index 03eb9131c6d1ff3a662e185861df048abbac7b8b..4f5a3c93b52d7810fe9485b16136758d9dae7c15 100644
--- a/doc/user/project/repository/code_suggestions/index.md
+++ b/doc/user/project/repository/code_suggestions/index.md
@@ -116,7 +116,7 @@ GitLab selects the best-in-class large-language models for specific tasks. We us
 
 ### Telemetry
 
-For self-managed instances that have enabled Code Suggestions and for SaaS accounts, we collect aggregated or de-identified first-party usage data through our [Snowplow collector](https://about.gitlab.com/handbook/business-technology/data-team/platform/snowplow/). This usage data includes the following metrics:
+For self-managed instances that have enabled Code Suggestions and for SaaS accounts, we collect aggregated or de-identified first-party usage data through our [Snowplow collector](https://handbook.gitlab.com/handbook/business-technology/data-team/platform/snowplow/). This usage data includes the following metrics:
 
 - Language the code suggestion was in (for example, Python)
 - Editor being used (for example, VS Code)