optimize GenerateSitePath function