diff --git a/lib/promscrape/config.go b/lib/promscrape/config.go
index 1f93c4be57..059291277f 100644
--- a/lib/promscrape/config.go
+++ b/lib/promscrape/config.go
@@ -795,12 +795,15 @@ func appendSortedKeyValuePairs(dst []byte, m map[string]string) []byte {
 var scrapeWorkKeyBufPool bytesutil.ByteBufferPool
 
 func (swc *scrapeWorkConfig) getScrapeWork(target string, extraLabels, metaLabels map[string]string) (*ScrapeWork, error) {
-	// Verify whether the scrape work must be skipped.
-	bb := scrapeWorkKeyBufPool.Get()
-	defer scrapeWorkKeyBufPool.Put(bb)
-	bb.B = appendScrapeWorkKey(bb.B[:0], target, extraLabels, metaLabels)
-	if needSkipScrapeWork(bytesutil.ToUnsafeString(bb.B), *clusterMembersCount, *clusterReplicationFactor, *clusterMemberNum) {
-		return nil, nil
+	// Verify whether the scrape work must be skipped because of `-promscrape.cluster.*` configs.
+	if *clusterMembersCount > 1 {
+		bb := scrapeWorkKeyBufPool.Get()
+		bb.B = appendScrapeWorkKey(bb.B[:0], target, extraLabels, metaLabels)
+		needSkip := needSkipScrapeWork(bytesutil.ToUnsafeString(bb.B), *clusterMembersCount, *clusterReplicationFactor, *clusterMemberNum)
+		scrapeWorkKeyBufPool.Put(bb)
+		if needSkip {
+			return nil, nil
+		}
 	}
 
 	labels := mergeLabels(swc.jobName, swc.scheme, target, swc.metricsPath, extraLabels, swc.externalLabels, metaLabels, swc.params)