diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md
index de24928f93ee84085c628398f536628dc292aa44..864c02fafda9744b7732d785e923c26fd2787882 100644
--- a/docs/usage/configuration-options.md
+++ b/docs/usage/configuration-options.md
@@ -648,7 +648,7 @@ When using with `npm`, we recommend you:
 Use `customDatasources` to fetch releases from APIs or statically hosted sites and Renovate has no own datasource.
 These datasources can be referred by `customManagers` or can be used to overwrite default datasources.
 
-For more details see the [`custom` datasource documentation](/modules/datasource/custom/).
+For more details see the [`custom` datasource documentation](modules/datasource/custom/index.md).
 
 ## customManagers
 
@@ -965,7 +965,7 @@ It is not needed if either:
 ### format
 
 Defines which format the API is returning.
-Currently `json` or `plain` are supported, see the `custom` [datasource documentation](/modules/datasource/custom/) for more information.
+Currently `json` or `plain` are supported, see the `custom` [datasource documentation](modules/datasource/custom/index.md) for more information.
 
 ### transformTemplates
 
@@ -2565,7 +2565,7 @@ Consider using instead `matchCurrentValue` if you wish to match against the raw
 }
 ```
 
-The syntax of the version range must follow the [versioning scheme](modules/versioning/index.md#supported-versioning) used by the matched package(s).
+The syntax of the version range must follow the [versioning scheme](modules/versioning.md#supported-versioning) used by the matched package(s).
 This is usually defined by the [manager](modules/manager/index.md#supported-managers) which discovered them or by the default versioning for the package's [datasource](modules/datasource/index.md).
 For example, a Gradle package would typically need Gradle constraint syntax (e.g. `[,7.0)`) and not SemVer syntax (e.g. `<7.0`).
 
diff --git a/docs/usage/modules/manager/index.md b/docs/usage/modules/manager/index.md
index b93c2eb75c0859dd467eaee31d4033b20cc2afae..237c33194a4ee69d9f0029e3434ab0d6fd5718d6 100644
--- a/docs/usage/modules/manager/index.md
+++ b/docs/usage/modules/manager/index.md
@@ -48,9 +48,9 @@ If the default `fileMatch` regular expression for a manager does not match again
 
 #### Ignoring files that match the default fileMatch
 
-Renovate will _extend_ the existing [`fileMatch`](../../configuration-options/index.md#filematch), meaning you don't need to include the default regular expressions like `Dockerfile` in your own array.
+Renovate will _extend_ the existing [`fileMatch`](../../configuration-options.md#filematch), meaning you don't need to include the default regular expressions like `Dockerfile` in your own array.
 In other words, the regular expression are "additive".
-If a manager matches a file that you _don't_ want it to, ignore it using the [`ignorePaths`](../../configuration-options/index.md#ignorepaths) configuration option.
+If a manager matches a file that you _don't_ want it to, ignore it using the [`ignorePaths`](../../configuration-options.md#ignorepaths) configuration option.
 Also, if you ever find that Renovate is _not_ matching a file name that you're certain it should, check your preset config isn't the cause of it.
 The `config:recommended` preset ignores common test and example directory names, for example.
 
diff --git a/lib/modules/manager/batect-wrapper/readme.md b/lib/modules/manager/batect-wrapper/readme.md
index 52b8b3ad9579ebffbf01d6cbbe9c54dc99e0cd93..e68e19bf6887de1d535fbe42fbb07a41af9aab72 100644
--- a/lib/modules/manager/batect-wrapper/readme.md
+++ b/lib/modules/manager/batect-wrapper/readme.md
@@ -1,4 +1,4 @@
 Configuration for Batect wrapper updates.
 The default configuration will automatically update both `batect` and `batect.cmd`, similar to running `./batect --upgrade`.
 
-See also: [Batect image reference updates](../batect)
+See also: [Batect image reference updates](../batect/index.md)
diff --git a/lib/modules/manager/batect/readme.md b/lib/modules/manager/batect/readme.md
index f89df62939285d2d2e200ac117340578582c6cdb..1b18738603d1c953caa8e74950ab3131bc93a4ad 100644
--- a/lib/modules/manager/batect/readme.md
+++ b/lib/modules/manager/batect/readme.md
@@ -28,6 +28,6 @@ For example:
 
 ### Bundle versioning
 
-This manager assumes that any bundles referenced use tags for versioning, and that these tags use [SemVer](../versioning/semver/index.md).
+This manager assumes that any bundles referenced use tags for versioning, and that these tags use [SemVer](../versioning.md#semantic-versioning).
 The implementation of SemVer is strict - versions must follow the `X.Y.Z` or `vX.Y.Z` format.
 Versions that don't match this format (eg. `X.Y`) will be ignored.
diff --git a/lib/modules/manager/terragrunt/readme.md b/lib/modules/manager/terragrunt/readme.md
index 97b423862fe357120fc48eb80597810b6b45a2fa..9467626ad96777443cf4951d5550932b74b203f5 100644
--- a/lib/modules/manager/terragrunt/readme.md
+++ b/lib/modules/manager/terragrunt/readme.md
@@ -1,6 +1,6 @@
 Currently by default, Terragrunt support is limited to Terraform registry sources and GitHub sources that include SemVer refs, e.g. like `github.com/hashicorp/example?ref=v1.0.0`.
 
-You can create a custom [versioning config](../../../configuration-options/index.md#versioning) to support non-SemVer references.
+You can create a custom [versioning config](../../../configuration-options.md#versioning) to support non-SemVer references.
 For example, if you want to reference a tag like `module-v1.2.5`, a block like this would work:
 
 ```json
@@ -21,5 +21,5 @@ terraform {
 
 ### Terraform lockfiles
 
-The Terragrunt manager supports [lock file maintenance](../../../configuration-options/index.md#lockfilemaintenance) for `.terraform.lock.hcl` artifacts.
+The Terragrunt manager supports [lock file maintenance](../../../configuration-options.md#lockfilemaintenance) for `.terraform.lock.hcl` artifacts.
 These artifacts will be updated if and only if the update type is `lockFileMaintenance`.
diff --git a/lib/modules/platform/azure/readme.md b/lib/modules/platform/azure/readme.md
index aa5a43302b822aca5795d803904f6ff72e61613c..36cfbdb61ac46169fecc3b49ec82fe9e4e3c4f5e 100644
--- a/lib/modules/platform/azure/readme.md
+++ b/lib/modules/platform/azure/readme.md
@@ -126,7 +126,7 @@ always-auth=true
 ### Add renovate.json file
 
 Additionally, you can create a `renovate.json` file (which holds the Renovate configuration) in the root of the repository you want to update.
-[Read more about the Renovate configuration options](../../../configuration-options/index.md)
+[Read more about the Renovate configuration options](../../../configuration-options.md)
 
 ### Using a single pipeline to update multiple repositories