diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml
index cf61b2ed2a..5f9257313a 100644
--- a/doc/src/sgml/high-availability.sgml
+++ b/doc/src/sgml/high-availability.sgml
@@ -1873,10 +1873,16 @@ synchronous_standby_names = 'ANY 2 (s1, s2, s3)'
- Experienced users should note that both row version cleanup and row version
- freezing will potentially conflict with standby queries. Running a manual
- VACUUM FREEZE is likely to cause conflicts even on tables with
- no updated or deleted rows.
+ Row version cleanup isn't the only potential cause of conflicts with
+ standby queries. All index-only scans (including those that run on
+ standbys) must use an MVCC snapshot that
+ agrees with the visibility map. Conflicts are therefore
+ required whenever VACUUM sets a page as all-visible in the
+ visibility map containing one or more rows
+ not visible to all standby queries. So even running
+ VACUUM against a table with no updated or deleted rows
+ requiring cleanup might lead to conflicts.