O go não tem problema de sobrescrever o valor de i nesse caso de loop aninhado?
for i := 0; i < monitoramento; i++ {
for i, site := range sites {
fmt.Println("Testando site", i, ":", site)
testaSite(site)
time.Sleep(delay * time.Second)
fmt.Println("")
}
}