+ optimize GenerateSitePath function