diff --git a/src/backend/access/transam/xloginsert.c b/src/backend/access/transam/xloginsert.c
index e3d5937479fe..91de1f96044d 100644
--- a/src/backend/access/transam/xloginsert.c
+++ b/src/backend/access/transam/xloginsert.c
@@ -1304,6 +1304,10 @@ log_newpage_range(Relation rel, ForkNumber forknum,
 			blkno++;
 		}
 
+		/* Don't emit a WAL record if all pages were new */
+		if (nbufs == 0)
+			break;
+
 		/* Write WAL record for this batch. */
 		XLogBeginInsert();
 
