diff --git a/docs/usage/dependency-pinning.md b/docs/usage/dependency-pinning.md
index f0bb261f8ebb7b29c961af247aa0a8d3ee9b030f..17fdaffe09f146382b644e62101532d88871c83b 100644
--- a/docs/usage/dependency-pinning.md
+++ b/docs/usage/dependency-pinning.md
@@ -142,7 +142,7 @@ You can add a package rule in our Renovate configuration to group these together
 Since both `yarn` and `npm@5` both support lock files, it's a common question to ask "Why should I pin dependencies if I'm already using a lock file?".
 It's a good question!
 
-![broken-lockfile](assets/images/broken-lockfile.jpg)
+![broken-lockfile](assets/images/broken-lockfile.jpg){ loading=lazy }
 
 Lock files are a great companion to SemVer ranges _or_ pinning dependencies, because these files lock (pin) deeper into your dependency tree than you see in `package.json`.
 
@@ -158,7 +158,7 @@ If a lock file gets out of sync with its `package.json`, it can no longer be gua
 
 The lock file has only delayed the inevitable problem, and provides much less visibility than `package.json`, because it's not designed to be human readable and is quite dense.
 
-![all-dead](assets/images/all-dead.jpg)
+![all-dead](assets/images/all-dead.jpg){ loading=lazy }
 
 If the `package.json` has a range, and a new in-range version is released that would break the build, then essentially your `package.json` is in a state of "broken", even if the lock file is still holding things together.
 
diff --git a/docs/usage/getting-started/installing-onboarding.md b/docs/usage/getting-started/installing-onboarding.md
index 56cd6f952121a98ef202cc7660b1ecb6d00a1665..bf24fc43afa35f91a145d8c7251ee0257e337d0a 100644
--- a/docs/usage/getting-started/installing-onboarding.md
+++ b/docs/usage/getting-started/installing-onboarding.md
@@ -17,11 +17,11 @@ Installing/enabling Mend's Renovate GitHub App is simple.
 
 First, navigate to [https://github.com/apps/renovate](https://github.com/apps/renovate) and click the Install button:
 
-![Github App Install button](../assets/images/github-app-install.png)
+![Github App Install button](../assets/images/github-app-install.png){ loading=lazy }
 
 The only choice you need to make is whether to run Renovate on all repositories or on selected repositories:
 
-![Github App repositories](../assets/images/github-app-choose-repos.png)
+![Github App repositories](../assets/images/github-app-choose-repos.png){ loading=lazy }
 
 Renovate will ignore any repositories that don't have known package files, as well as any forks, so you can enable Renovate for all your repositories with no problems.
 That said, most people run Renovate on selected repositories.
@@ -55,7 +55,7 @@ You can also set the line endings in your repository by adding `* text=auto eol=
 
 Once you have enabled Renovate on a repository, you will get a "Configure Renovate" Pull Request looking something like this:
 
-![Onboarding](../assets/images/onboarding.png)
+![Onboarding](../assets/images/onboarding.png){ loading=lazy }
 
 ### No risk onboarding
 
diff --git a/docs/usage/key-concepts/automerge.md b/docs/usage/key-concepts/automerge.md
index adebe6c13ca45402f1bf136300faf3cc169050ca..2fda03afbc91719daf984572adfe95a6d03f34da 100644
--- a/docs/usage/key-concepts/automerge.md
+++ b/docs/usage/key-concepts/automerge.md
@@ -27,7 +27,7 @@ For example, if you have Jest or Mocha as a development dependency, and it has a
 If you have a linter like ESLint or TSLint and its update passes... automerge them!
 If you have an API with 100% test coverage and Express is updated... automerge it!
 
-![Automerged PR](/assets/images/automerged-pr.png)
+![Automerged PR](/assets/images/automerged-pr.png){ loading=lazy }
 
 ## Configuration examples
 
diff --git a/lib/modules/platform/azure/index.md b/lib/modules/platform/azure/index.md
index d1b3c8a07548e3f2defa7630f852ce49f95c1af7..b9e5557e8749feef6494d6c8bee8b641034c1a57 100644
--- a/lib/modules/platform/azure/index.md
+++ b/lib/modules/platform/azure/index.md
@@ -20,12 +20,12 @@ Remember to set `platform=azure` somewhere in your Renovate config file.
 ### Setting up a new pipeline
 
 Create a brand new pipeline within Azure DevOps, and select your source:
-![Azure DevOps create new pipeline](/assets/images/azure-devops-setup-1.png)
+![Azure DevOps create new pipeline](/assets/images/azure-devops-setup-1.png){ loading=lazy }
 
 Then select your repository.
 
 Within _Configure your pipeline_ select: **Starter pipeline**
-![Azure DevOps starter pipeline template](/assets/images/azure-devops-setup-2.png)
+![Azure DevOps starter pipeline template](/assets/images/azure-devops-setup-2.png){ loading=lazy }
 
 Replace _all_ content in the starter pipeline with: