diff --git a/doc/development/multi_version_compatibility.md b/doc/development/multi_version_compatibility.md
index aedd5c1ffb7865710f7e60b33859c223d79ac9d8..001517d44eaa3c795076e6c767f74829b013ece2 100644
--- a/doc/development/multi_version_compatibility.md
+++ b/doc/development/multi_version_compatibility.md
@@ -45,7 +45,7 @@ and set this column to `false`. The old servers were still updating the old colu
 that updated the new column from the old one. For the new servers though, they were only updating the new column and that same trigger
 was now working against us and setting it back to the wrong value.
 
-For more information, see [the relevant issue](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/9176).
+For more information, see this [confidential issue](../user/project/issues/confidential_issues.md) `https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/9176`.
 
 ### Sidebar wasn't loading for some users
 
diff --git a/doc/development/new_fe_guide/development/performance.md b/doc/development/new_fe_guide/development/performance.md
index edb2eed982da2eaf3d3aa00f06ef03fd56693125..7b58a80576a42fd76839d585863cc96e97364150 100644
--- a/doc/development/new_fe_guide/development/performance.md
+++ b/doc/development/new_fe_guide/development/performance.md
@@ -9,7 +9,7 @@ Any frontend engineer can contribute to this dashboard. They can contribute by a
 
 There are 3 recommended high impact metrics to review on each page:
 
-- [First visual change](https://developers.google.com/web/tools/lighthouse/audits/first-meaningful-paint)
+- [First visual change](https://web.dev/first-meaningful-paint/)
 - [Speed Index](https://sites.google.com/a/webpagetest.org/docs/using-webpagetest/metrics/speed-index)
 - [Visual Complete 95%](https://sites.google.com/a/webpagetest.org/docs/using-webpagetest/metrics/speed-index)
 
diff --git a/doc/development/secure_coding_guidelines.md b/doc/development/secure_coding_guidelines.md
index d7cd3d3cd2af7c3e42ea4ea3e4cabcd42c96e9dc..912b8fbf0430164909ae032871949c0c7ab597a8 100644
--- a/doc/development/secure_coding_guidelines.md
+++ b/doc/development/secure_coding_guidelines.md
@@ -48,7 +48,7 @@ Be careful to **also test [visibility levels](https://gitlab.com/gitlab-org/gitl
 
 Some example of well implemented access controls and tests:
 
-1. [example1](https://dev.gitlab.org/gitlab/gitlab-ee/merge_requests/710/diffs?diff_id=13750#af40ef0eaae3c1e018809e1d88086e32bccaca40_43_43)
+1. [example1](https://dev.gitlab.org/gitlab/gitlab-ee/-/merge_requests/710/diffs?diff_id=13750#af40ef0eaae3c1e018809e1d88086e32bccaca40_43_43)
 1. [example2](https://dev.gitlab.org/gitlab/gitlabhq/-/merge_requests/2511/diffs#ed3aaab1510f43b032ce345909a887e5b167e196_142_155)
 1. [example3](https://dev.gitlab.org/gitlab/gitlabhq/-/merge_requests/3170/diffs?diff_id=17494)
 
diff --git a/doc/development/testing_guide/index.md b/doc/development/testing_guide/index.md
index 62e6fcb2aa175a4b1a4fb9076c115ec824a857bf..0d470e0e737a7b6d7b5b00542dfac5be494fc345 100644
--- a/doc/development/testing_guide/index.md
+++ b/doc/development/testing_guide/index.md
@@ -20,7 +20,7 @@ Following are two great articles that everyone should read to understand what
 automated testing means, and what are its principles:
 
 - [Five Factor Testing](https://madeintandem.com/blog/five-factor-testing/): Why do we need tests?
-- [Principles of Automated Testing](http://www.lihaoyi.com/post/PrinciplesofAutomatedTesting.html): Levels of testing. Prioritize tests. Cost of tests.
+- [Principles of Automated Testing](https://www.lihaoyi.com/post/PrinciplesofAutomatedTesting.html): Levels of testing. Prioritize tests. Cost of tests.
 
 ## [Testing levels](testing_levels.md)
 
diff --git a/doc/development/testing_guide/review_apps.md b/doc/development/testing_guide/review_apps.md
index 342d470c392457d82da0a2ec216a8933b646d6c1..2a252d0ca6dffadadd519f5d8f87d92a6ab5f184 100644
--- a/doc/development/testing_guide/review_apps.md
+++ b/doc/development/testing_guide/review_apps.md
@@ -212,7 +212,7 @@ If [Review App Stability](https://app.periscopedata.com/app/gitlab/496118/Engine
 dips this may be a signal that the `review-apps-ce/ee` cluster is unhealthy.
 Leading indicators may be health check failures leading to restarts or majority failure for Review App deployments.
 
-The [Review Apps Overview dashboard](https://app.google.stackdriver.com/dashboards/6798952013815386466?project=gitlab-review-apps&timeDomain=1d)
+The [Review Apps Overview dashboard](https://console.cloud.google.com/monitoring/classic/dashboards/6798952013815386466?project=gitlab-review-apps&timeDomain=1d)
 aids in identifying load spikes on the cluster, and if nodes are problematic or the entire cluster is trending towards unhealthy.
 
 ### Release failed with `ImagePullBackOff`
diff --git a/doc/gitlab-basics/start-using-git.md b/doc/gitlab-basics/start-using-git.md
index 8dc019d3fe1d1c682e7f3e70c8040efc707b8d76..21f43e359e02f8fc46c88b216863958b047ad090 100644
--- a/doc/gitlab-basics/start-using-git.md
+++ b/doc/gitlab-basics/start-using-git.md
@@ -50,7 +50,7 @@ prompt, terminal, and command line) of your preference. Here are some suggestion
   - [iTerm2](https://www.iterm2.com/), which you can integrate with [zsh](https://git-scm.com/book/id/v2/Appendix-A%3A-Git-in-Other-Environments-Git-in-Zsh) and [oh my zsh](https://ohmyz.sh/) for color highlighting, among other handy features for Git users.
 - For Windows users:
   - Built-in: **cmd**. Click the search icon on the bottom navbar on Windows and type "cmd" to find it.
-  - [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-windows-powershell?view=powershell-7): a Windows "powered up" shell, from which you can execute a greater number of commands.
+  - [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/install/installing-windows-powershell): a Windows "powered up" shell, from which you can execute a greater number of commands.
   - Git Bash: it comes built into [Git for Windows](https://gitforwindows.org/).
 - For Linux users:
   - Built-in: [Linux Terminal](https://www.howtogeek.com/140679/beginner-geek-how-to-start-using-the-linux-terminal/).
diff --git a/doc/install/azure/index.md b/doc/install/azure/index.md
index fbc81da20d4227520af021798e907e6d96606658..3cf963bdf57910c17978a3985c0f9dbe36fcc051 100644
--- a/doc/install/azure/index.md
+++ b/doc/install/azure/index.md
@@ -177,7 +177,7 @@ Click **"Save"** for the changes to take effect.
 domain registrar which points to the public IP address of your Azure VM. If you do this, you'll need
 to make sure your VM is configured to use a _static_ public IP address (i.e. not a _dynamic_ one)
 or you will have to reconfigure the DNS `A` record each time Azure reassigns your VM a new public IP
-address. Read [IP address types and allocation methods in Azure](https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-ip-addresses-overview-arm) to learn more.
+address. Read [Public IP addresses](https://docs.microsoft.com/en-us/azure/virtual-network/public-ip-addresses) to learn more.
 
 ## Let's open some ports
 
diff --git a/doc/install/requirements.md b/doc/install/requirements.md
index 45b9ed5f6afa0b81dfd9f3a042da8122c4f3b100..23c61f54375b4bc2a712ce14f4032aafb6250c40 100644
--- a/doc/install/requirements.md
+++ b/doc/install/requirements.md
@@ -275,11 +275,11 @@ You can provide feedback [on this issue](https://gitlab.com/gitlab-org/gitlab/-/
 
 GitLab supports the following web browsers:
 
-- [Mozilla Firefox](https://www.mozilla.org/firefox/new/)
+- [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/)
 - [Google Chrome](https://www.google.com/chrome/)
 - [Chromium](https://www.chromium.org/getting-involved/dev-channel)
 - [Apple Safari](https://www.apple.com/safari/)
-- [Microsoft Edge](https://www.microsoft.com/edge)
+- [Microsoft Edge](https://www.microsoft.com/en-us/edge)
 
 For the listed web browsers, GitLab supports:
 
diff --git a/doc/integration/vault.md b/doc/integration/vault.md
index 46e33d05b6d7b7c4c0e435116606f3f0826d96c2..f26c3df93f8e21125eaa1879924227ef64f87b63 100644
--- a/doc/integration/vault.md
+++ b/doc/integration/vault.md
@@ -21,7 +21,7 @@ The following assumes you already have Vault installed and running.
    First you'll need to create a GitLab application to obtain an application ID and secret for authenticating into Vault. To do this, sign in to GitLab and follow these steps:
 
    1. On GitLab, click your avatar on the top-right corner, and select your user **Settings > Applications**.
-   1. Fill out the application **Name** and [**Redirect URI**](https://www.vaultproject.io/docs/auth/jwt/#redirect-uris),
+   1. Fill out the application **Name** and [**Redirect URI**](https://www.vaultproject.io/docs/auth/jwt#redirect-uris),
       making sure to select the **OpenID** scope.
    1. Save application.
    1. Copy client ID and secret, or keep the page open for reference.
diff --git a/doc/ssh/README.md b/doc/ssh/README.md
index ba4ea49adc85c0d4fe2e92ea5440946ff9a2701e..595c426d1dbdc225766dba3b71aed62e446bdb01 100644
--- a/doc/ssh/README.md
+++ b/doc/ssh/README.md
@@ -141,7 +141,7 @@ You can assign the directory and file name of your choice.
 You can also dedicate that SSH key pair to a [specific host](#working-with-non-default-ssh-key-pair-paths).
 
 After assigning a file to save your SSH key, you'll get a chance to set up
-a [passphrase](https://www.ssh.com/ssh/passphrase) for your SSH key:
+a [passphrase](https://www.ssh.com/ssh/passphrase/) for your SSH key:
 
 ```plaintext
 Enter passphrase (empty for no passphrase):
@@ -412,7 +412,7 @@ are *explicitly not supported* and may stop working at any time.
 
 ### Options for Microsoft Windows
 
-If you're running Windows 10, the [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/en-us/windows/wsl/install-win10), and its latest [WSL 2](https://docs.microsoft.com/en-us/windows/wsl/wsl2-install) version,
+If you're running Windows 10, the [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/en-us/windows/wsl/install-win10), and its latest [WSL 2](https://docs.microsoft.com/install-win10) version,
 support the installation of different Linux distributions, which include the Git and SSH clients.
 
 For current versions of Windows, you can also install the Git and SSH clients with
diff --git a/doc/topics/authentication/index.md b/doc/topics/authentication/index.md
index 2ba5c6017e96dfac03310de9debc6405bb7c3713..eca37b5f73a7a2c8ba05c3d3cb58d6a87955ce27 100644
--- a/doc/topics/authentication/index.md
+++ b/doc/topics/authentication/index.md
@@ -44,5 +44,5 @@ This page gathers all the resources for the topic **Authentication** within GitL
 
 - [Kanboard Plugin GitLab Authentication](https://github.com/kanboard/plugin-gitlab-auth)
 - [Jenkins GitLab OAuth Plugin](https://wiki.jenkins.io/display/JENKINS/GitLab+OAuth+Plugin)
-- [How to customize GitLab to support OpenID authentication](http://eric.van-der-vlist.com/blog/2013/11/23/how-to-customize-gitlab-to-support-openid-authentication/)
+- [How to customize GitLab to support OpenID authentication](https://eric.van-der-vlist.com/blog/2013/11/23/how-to-customize-gitlab-to-support-openid-authentication//)
 - [OKD - Configuring Authentication and User Agent](https://docs.okd.io/3.11/install_config/configuring_authentication.html#GitLab)
diff --git a/doc/topics/autodevops/stages.md b/doc/topics/autodevops/stages.md
index d2f2b8e5183c456f26c9958f0555f79fa8226729..61023449e3bdc938535bf9c410d5e68db81e8fbb 100644
--- a/doc/topics/autodevops/stages.md
+++ b/doc/topics/autodevops/stages.md
@@ -497,7 +497,7 @@ traffic within a local namespace, and from the `gitlab-managed-apps`
 namespace. All other inbound connections are blocked. Outbound
 traffic (for example, to the Internet) is not affected by the default policy.
 
-You can also provide a custom [policy specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#networkpolicyspec-v1-networking-k8s-io)
+You can also provide a custom [policy specification](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
 in the `.gitlab/auto-deploy-values.yaml` file, for example:
 
 ```yaml
diff --git a/doc/topics/web_application_firewall/index.md b/doc/topics/web_application_firewall/index.md
index 9f3289cd79763cfb80966b411247818aa1e9ae27..57043bf73b35a36e4485f17a7b7258a2b836748e 100644
--- a/doc/topics/web_application_firewall/index.md
+++ b/doc/topics/web_application_firewall/index.md
@@ -70,7 +70,7 @@ more advanced rules around threat detection.
 
 ## Features
 
-ModSecurity is enabled with the [OWASP Core Rule Set (CRS)](https://modsecurity.org/crs/) by
+ModSecurity is enabled with the [OWASP Core Rule Set (CRS)](https://github.com/coreruleset/coreruleset/) by
 default. The OWASP CRS logs attempts to the following attacks:
 
 - [SQL Injection](https://wiki.owasp.org/index.php/OWASP_Periodic_Table_of_Vulnerabilities_-_SQL_Injection)
@@ -87,7 +87,7 @@ It is good to have a basic knowledge of the following:
 - [Kubernetes](https://kubernetes.io/docs/home/)
 - [Ingress](https://kubernetes.github.io/ingress-nginx/)
 - [ModSecurity](https://www.modsecurity.org/)
-- [OWASP Core Rule Set](https://modsecurity.org/crs/)
+- [OWASP Core Rule Set](https://github.com/coreruleset/coreruleset/)
 
 ## Roadmap
 
diff --git a/doc/topics/web_application_firewall/quick_start_guide.md b/doc/topics/web_application_firewall/quick_start_guide.md
index 79435d6a11d4c52efd0fe79baecf19aee0d23d72..ec6702bb457613239ec97d26670077e0cf7ac761 100644
--- a/doc/topics/web_application_firewall/quick_start_guide.md
+++ b/doc/topics/web_application_firewall/quick_start_guide.md
@@ -254,5 +254,5 @@ You can explore them in more detail:
 
 - [GitLab Defend Vision](https://about.gitlab.com/direction/defend/#waf)
 - [ModSecurity](https://www.modsecurity.org/)
-- [OWASP Core Rule Set](https://modsecurity.org/crs/)
+- [OWASP Core Rule Set](https://github.com/coreruleset/coreruleset/)
 - [AutoDevOps](../autodevops/index.md)
diff --git a/doc/university/README.md b/doc/university/README.md
index 1296e178ef04da55ca254fb92c1d6a5868860c50..1b13f9af584a6619085f9b4d6e160930f7c17f05 100644
--- a/doc/university/README.md
+++ b/doc/university/README.md
@@ -76,7 +76,6 @@ The GitLab University curriculum is composed of GitLab videos, screencasts, pres
    - Getting Technical Support
    - Being part of our Great Community and Contributing to GitLab
 1. [Getting Started with the GitLab Development Kit (GDK)](https://about.gitlab.com/blog/2016/06/08/getting-started-with-gitlab-development-kit/)
-1. [Contributing Technical Articles to the GitLab Blog](https://about.gitlab.com/blog/2016/01/26/call-for-writers/)
 1. [GitLab Training Workshops](training/end-user/README.md)
 1. [GitLab Professional Services](https://about.gitlab.com/services/)
 
@@ -176,7 +175,7 @@ The GitLab University curriculum is composed of GitLab videos, screencasts, pres
 
 1. [Scalability and High Availability - Video](https://www.youtube.com/watch?v=cXRMJJb6sp4&list=PLFGfElNsQthbQu_IWlNOxul0TbS_2JH-e&index=2)
 1. [High Availability - Video](https://www.youtube.com/watch?v=36KS808u6bE&index=15&list=PLFGfElNsQthbQu_IWlNOxul0TbS_2JH-e)
-1. [High Availability Documentation](https://about.gitlab.com/solutions/high-availability/)
+1. [High Availability Documentation](https://about.gitlab.com/solutions/reference-architectures/)
 
 ### 3.8 Cycle Analytics
 
diff --git a/doc/university/support/README.md b/doc/university/support/README.md
index c192aa18d244321be5a9d7b77d648467b0cddecb..6dbbf075e9cd5641c32c45549a0cce32467f0d1b 100644
--- a/doc/university/support/README.md
+++ b/doc/university/support/README.md
@@ -145,7 +145,7 @@ Zendesk is our Support Center and our main communication line with our Customers
 
 Some tickets need specific knowledge or a deep understanding of a particular component and will need to be escalated to a Senior Service Engineer or Developer
 
-- Read about [Escalation](https://about.gitlab.com/handbook/support/workflows/issue_escalations.html)
+- Read about [Escalation](https://about.gitlab.com/handbook/support/workflows/working-with-issues.html#functional-escalation-points)
 - Find the macros in Zendesk for ticket escalations
 - Take a look at the [GitLab.com Team page](https://about.gitlab.com/company/team/) to find the resident experts in their fields
 
diff --git a/doc/user/clusters/applications.md b/doc/user/clusters/applications.md
index 750bae6f5b5999a2df76f90ebbd682ff8b9c143a..dfe70613815ead034b919e4a010c94d248e8d178 100644
--- a/doc/user/clusters/applications.md
+++ b/doc/user/clusters/applications.md
@@ -990,17 +990,17 @@ when upgrading the Vault application.
 
 To optimally use Vault in a production environment, it's ideal to have a good understanding
 of the internals of Vault and how to configure it. This can be done by reading the
-[the Vault documentation](https://www.vaultproject.io/docs/internals/) as well as
+[the Vault documentation](https://www.vaultproject.io/docs/internals) as well as
 the Vault Helm chart [`values.yaml` file](https://github.com/hashicorp/vault-helm/blob/v0.3.3/values.yaml).
 
 At a minimum you will likely set up:
 
-- A [seal](https://www.vaultproject.io/docs/configuration/seal/) for extra encryption
+- A [seal](https://www.vaultproject.io/docs/configuration/seal) for extra encryption
   of the master key.
-- A [storage backend](https://www.vaultproject.io/docs/configuration/storage/) that is
+- A [storage backend](https://www.vaultproject.io/docs/configuration/storage) that is
   suitable for environment and storage security requirements.
-- [HA Mode](https://www.vaultproject.io/docs/concepts/ha/).
-- [The Vault UI](https://www.vaultproject.io/docs/configuration/ui/).
+- [HA Mode](https://www.vaultproject.io/docs/concepts/ha).
+- [The Vault UI](https://www.vaultproject.io/docs/configuration/ui).
 
 The following is an example values file (`.gitlab/managed-apps/vault/values.yaml`)
 that configures Google Key Management Service for auto-unseal, using a Google Cloud Storage backend, enabling
diff --git a/doc/user/compliance/license_compliance/index.md b/doc/user/compliance/license_compliance/index.md
index 8ac3d266b957e1c7485827566fdfb83b6adab8d8..37ceaa24349476fd64d721fdfc117cb2eb3db81c 100644
--- a/doc/user/compliance/license_compliance/index.md
+++ b/doc/user/compliance/license_compliance/index.md
@@ -64,7 +64,7 @@ The following languages and package managers are supported.
 | Go         | [Godep](https://github.com/tools/godep), [go mod](https://github.com/golang/go/wiki/Modules) |[License Finder](https://github.com/pivotal/LicenseFinder)|
 | Java       | [Gradle](https://gradle.org/), [Maven](https://maven.apache.org/) |[License Finder](https://github.com/pivotal/LicenseFinder)|
 | .NET       | [Nuget](https://www.nuget.org/) (.NET Framework is supported via the [mono project](https://www.mono-project.com/). Windows specific dependencies are not supported at this time.)  |[License Finder](https://github.com/pivotal/LicenseFinder)|
-| Python     | [pip](https://pip.pypa.io/en/stable/) (Python is supported through [requirements.txt](https://pip.readthedocs.io/en/1.1/requirements.html) and [Pipfile.lock](https://github.com/pypa/pipfile#pipfilelock).) |[License Finder](https://github.com/pivotal/LicenseFinder)|
+| Python     | [pip](https://pip.pypa.io/en/stable/) (Python is supported through [requirements.txt](https://pip.pypa.io/en/1.1/requirements/) and [Pipfile.lock](https://github.com/pypa/pipfile#pipfilelock).) |[License Finder](https://github.com/pivotal/LicenseFinder)|
 | Ruby       | [gem](https://rubygems.org/) |[License Finder](https://github.com/pivotal/LicenseFinder)|
 | Objective-C, Swift | [Carthage](https://github.com/Carthage/Carthage) |[License Finder](https://github.com/pivotal/LicenseFinder)|
 
@@ -339,7 +339,7 @@ strict-ssl = false
 
 ### Configuring Yarn projects
 
-You can configure Yarn projects by using a [`.yarnrc.yml`](https://yarnpkg.com/configuration/yarnrc)
+You can configure Yarn projects by using a [`.yarnrc.yml`](https://yarnpkg.com/configuration/yarnrc/)
 file.
 
 #### Using private Yarn registries
diff --git a/doc/user/group/saml_sso/index.md b/doc/user/group/saml_sso/index.md
index 0bf14eb8b5a5d64bb740a7c1eae848a946660ce1..954885414155032938688d6dbea964a5bd74b1eb 100644
--- a/doc/user/group/saml_sso/index.md
+++ b/doc/user/group/saml_sso/index.md
@@ -231,7 +231,7 @@ NOTE: **Note:** GitLab is unable to provide support for IdPs that are not listed
 |----------|---------------|
 | ADFS (Active Directory Federation Services) | [Create a Relying Party Trust](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/create-a-relying-party-trust) |
 | Azure | [Configuring single sign-on to applications](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-single-sign-on-non-gallery-applications) |
-| Okta | [Setting up a SAML application in Okta](https://developer.okta.com/docs/guides/saml-application-setup/overview/) |
+| Okta | [Setting up a SAML application in Okta](https://developer.okta.com/docs/guides/build-sso-integration/saml2/overview/) |
 | OneLogin | [Use the OneLogin SAML Test Connector](https://onelogin.service-now.com/support?id=kb_article&sys_id=93f95543db109700d5505eea4b96198f) |
 
 When [configuring your identify provider](#configuring-your-identity-provider), please consider the notes below for specific providers to help avoid common issues and as a guide for terminology used.
diff --git a/doc/user/group/saml_sso/scim_setup.md b/doc/user/group/saml_sso/scim_setup.md
index f66c8a788b61b795f716492d0faeda0377888fa3..93e2a07a4cad08c746b90a9ee8b1c7cc9fdeaa40 100644
--- a/doc/user/group/saml_sso/scim_setup.md
+++ b/doc/user/group/saml_sso/scim_setup.md
@@ -117,7 +117,7 @@ Once synchronized, changing the field mapped to `id` and `externalId` will likel
 
 ### Okta configuration steps
 
-The SAML application that was created during [Single sign-on](index.md#okta-setup-notes) setup for [Okta](https://developer.okta.com/docs/guides/saml-application-setup/overview/) now needs to be set up for SCIM.
+The SAML application that was created during [Single sign-on](index.md#okta-setup-notes) setup for [Okta](https://developer.okta.com/docs/guides/build-sso-integration/saml2/overview/) now needs to be set up for SCIM.
 Before proceeding, be sure to complete the [GitLab configuration](#gitlab-configuration) process.
 
 1. Sign in to Okta.
diff --git a/doc/user/markdown.md b/doc/user/markdown.md
index f2e9bc4954a777baf2e77ac0c65052509d8a1a79..3bf7bd6c52c5f782c95875740e888a5373fa95ba 100644
--- a/doc/user/markdown.md
+++ b/doc/user/markdown.md
@@ -11,7 +11,7 @@ It is **not** valid for the [GitLab documentation website](https://docs.gitlab.c
 or [GitLab's main website](https://about.gitlab.com), as they both use
 [Kramdown](https://kramdown.gettalong.org) as their Markdown engine. The documentation
 website uses an extended Kramdown gem, [GitLab Kramdown](https://gitlab.com/gitlab-org/gitlab_kramdown).
-Consult the [GitLab Kramdown Guide](https://about.gitlab.com/handbook/engineering/ux/technical-writing/markdown-guide/)
+Consult the [GitLab Kramdown Guide](https://about.gitlab.com/handbook/markdown-guide/)
 for a complete Kramdown reference.
 
 NOTE: **Note:** We encourage you to view this document as [rendered by GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md).
diff --git a/doc/user/project/clusters/serverless/aws.md b/doc/user/project/clusters/serverless/aws.md
index f4e8ea919b95faae4dbc3d61a8c6b32e7b5d9e15..c26f622836ce849acd4967e57709564f0cf8828e 100644
--- a/doc/user/project/clusters/serverless/aws.md
+++ b/doc/user/project/clusters/serverless/aws.md
@@ -101,7 +101,7 @@ The handler definition will provision the Lambda function using the source code
 
 The `events` declaration will create a AWS API Gateway `GET` endpoint to receive external requests and hand them over to the Lambda function via a service integration.
 
-You can read more about the available properties and additional configuration possibilities of the Serverless Framework here: <https://serverless.com/framework/docs/providers/aws/guide/serverless.yml/>
+You can read more about the [available properties and additional configuration possibilities](https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml/) of the Serverless Framework.
 
 #### Crafting the `.gitlab-ci.yml` file
 
@@ -275,7 +275,7 @@ module.exports.hello = async event => {
 };
 ```
 
-For more information, see the [Your CORS and API Gateway survival guide](https://serverless.com/blog/cors-api-gateway-survival-guide/)
+For more information, see the [Your CORS and API Gateway survival guide](https://www.serverless.com/blog/cors-api-gateway-survival-guide/)
 blog post written by the Serverless Framework team.
 
 #### Writing automated tests
diff --git a/doc/user/project/import/tfvc.md b/doc/user/project/import/tfvc.md
index 9b148224e102e387900ca0c5cef2b2d52ae80101..1c9ee7476bd44321a4785f4f65d7dba9a49313f6 100644
--- a/doc/user/project/import/tfvc.md
+++ b/doc/user/project/import/tfvc.md
@@ -6,7 +6,7 @@ type: concepts
 
 Team Foundation Server (TFS), renamed [Azure DevOps Server](https://azure.microsoft.com/en-us/services/devops/server/)
 in 2019, is a set of tools developed by Microsoft which also includes
-[Team Foundation Version Control](https://docs.microsoft.com/en-us/azure/devops/repos/tfvc/overview?view=azure-devops)
+[Team Foundation Version Control](https://docs.microsoft.com/en-us/azure/devops/repos/tfvc/what-is-tfvc?view=azure-devops)
 (TFVC), a centralized version control system similar to Git.
 
 In this document, we focus on the TFVC to Git migration.
diff --git a/doc/user/project/integrations/gitlab_slack_application.md b/doc/user/project/integrations/gitlab_slack_application.md
index eaeeab72dfb22f1eaf5563049c1e664292f1b954..7a827364d41cd943d30225ee3ec108dac070a96e 100644
--- a/doc/user/project/integrations/gitlab_slack_application.md
+++ b/doc/user/project/integrations/gitlab_slack_application.md
@@ -32,7 +32,7 @@ integration settings.
 
 Keep in mind that you need to have the appropriate permissions for your Slack
 team in order to be able to install a new application, read more in Slack's
-docs on [Adding an app to your team](https://slack.com/help/articles/202035138).
+docs on [Adding an app to your workspace](https://slack.com/help/articles/202035138-Add-an-app-to-your-workspace).
 
 To enable GitLab's service for your Slack team:
 
diff --git a/doc/user/project/integrations/jira_cloud_configuration.md b/doc/user/project/integrations/jira_cloud_configuration.md
index 9fa92f19e4f09ddca7878a2143c6453e5fcb911c..619c94b282b09cc4e7d0673742ff8f8f5d1e093b 100644
--- a/doc/user/project/integrations/jira_cloud_configuration.md
+++ b/doc/user/project/integrations/jira_cloud_configuration.md
@@ -3,7 +3,7 @@
 An API token is needed when integrating with Jira Cloud, follow the steps
 below to create one:
 
-1. Log in to <https://id.atlassian.com/manage/api-tokens> with your email address.
+1. Log in to [`id.atlassian.com`](https://id.atlassian.com/manage-profile/security/api-tokens) with your email address.
 
    NOTE: **Note**
    It is important that the user associated with this email address has *write* access
diff --git a/doc/user/project/issues/design_management.md b/doc/user/project/issues/design_management.md
index 58efb1acc275128f4cf1070ca08f31e7bfdd61e8..fa7b221ea16ecec527c8574bbe91babb13e7851f 100644
--- a/doc/user/project/issues/design_management.md
+++ b/doc/user/project/issues/design_management.md
@@ -208,12 +208,12 @@ At present, full URL references are supported. For example, if we refer to a des
 somewhere with:
 
 ```markdown
-See http://gitlab.com/your-group/your-project/-/issues/123/designs/homescreen.png
+See https://gitlab.com/your-group/your-project/-/issues/123/designs/homescreen.png
 ```
 
 This will be rendered as:
 
-> See [#123[homescreen.png]](http://gitlab.com/your-group/your-project/-/issues/123/designs/homescreen.png)
+> See [#123[homescreen.png]](https://gitlab.com/your-group/your-project/-/issues/123/designs/homescreen.png)
 
 ### Enable or disable design references **(CORE ONLY)**