diff --git a/content/docs/command-reference/checkout.md b/content/docs/command-reference/checkout.md
index a1ab593167..6710144594 100644
--- a/content/docs/command-reference/checkout.md
+++ b/content/docs/command-reference/checkout.md
@@ -30,7 +30,8 @@ The execution of `dvc checkout` does the following:
- Checks `dvc.lock` and `.dvc` files to compare the hash values of their
outputs against the actual files or directories in the
- workspace (similar to `dvc status`).
+ workspace (similar to `dvc status`). Outputs with `pull: false`
+ are not updated unless explicitly mentioned in `targets` (see `.dvc` files).
> Stage outputs must be defined in `dvc.yaml` (and `dvc.lock` contain their
> hash values), or they'll be skipped with a warning.
diff --git a/content/docs/command-reference/fetch.md b/content/docs/command-reference/fetch.md
index 73f4b824a8..c489afd61a 100644
--- a/content/docs/command-reference/fetch.md
+++ b/content/docs/command-reference/fetch.md
@@ -59,9 +59,10 @@ Here are some scenarios in which `dvc fetch` is useful, instead of pulling:
Without arguments, it downloads all files and directories referenced in the
current workspace (found in `dvc.yaml` and `.dvc` files) that are missing from
-the workspace. Any `targets` given to this command limit what to fetch. It
-accepts paths to tracked files or directories (including paths inside tracked
-directories), `.dvc` files, and stage names (found in `dvc.yaml`).
+the workspace (except for outputs with `pull: false` set, see `.dvc` files). Any
+`targets` given to this command limit what to fetch. It accepts paths to tracked
+files or directories (including paths inside tracked directories), `.dvc` files,
+and stage names (found in `dvc.yaml`).
The `--all-branches`, `--all-tags`, and `--all-commits` options enable fetching
files/dirs referenced in multiple Git commits.
diff --git a/content/docs/command-reference/pull.md b/content/docs/command-reference/pull.md
index 8132d2c6e5..f680c06561 100644
--- a/content/docs/command-reference/pull.md
+++ b/content/docs/command-reference/pull.md
@@ -67,9 +67,10 @@ The `dvc remote` used is determined in order, based on
Without arguments, it downloads all files and directories referenced in the
current workspace (found in `dvc.yaml` and `.dvc` files) that are missing from
-the workspace. Any `targets` given to this command limit what to pull. It
-accepts paths to tracked files or directories (including paths inside tracked
-directories), `.dvc` files, and stage names (found in `dvc.yaml`).
+the workspace (except for outputs with `pull: false` set, see `.dvc` files). Any
+`targets` given to this command limit what to pull. It accepts paths to tracked
+files or directories (including paths inside tracked directories), `.dvc` files,
+and stage names (found in `dvc.yaml`).
The `--all-branches`, `--all-tags`, and `--all-commits` options enable pulling
files/dirs referenced in multiple Git commits.
diff --git a/content/docs/user-guide/project-structure/dvc-files.md b/content/docs/user-guide/project-structure/dvc-files.md
index 6f3bbf958e..a759153a05 100644
--- a/content/docs/user-guide/project-structure/dvc-files.md
+++ b/content/docs/user-guide/project-structure/dvc-files.md
@@ -57,6 +57,7 @@ The following subfields may be present under `outs` entries:
| `remote` | Name of the remote to use for pushing/fetching |
| `persist` | Whether the output file/dir should remain in place while `dvc repro` runs (`false` by default: outputs are deleted when `dvc repro` starts) |
| `push` | Whether or not this file or directory, when previously cached, is uploaded to remote storage by `dvc push` (`true` by default). |
+| `pull` | Whether this file or directory should be be affected by `dvc fetch`, `dvc checkout`, or `dvc pull` when no targets are specified (`true` by default) |
[etag]: https://en.wikipedia.org/wiki/HTTP_ETag#Strong_and_weak_validation
[external outputs]: /doc/user-guide/pipelines/external-dependencies-and-outputs