Не видя кода и данных отладки трудно что либо сказать конкретно.
Количество запросов зависит от количества сущностей для которых вы строите карту сайта (N).
Так же количество запросов зависит от количества подключаемых связей в них (N*M).
Почитайте про отложенную и жадную загрузку.
Научитесь пользоваться дебаггером (Yii Debug Panel). Там пишется сколько ресурсов и куда уходит, сколько времени тратится на выполнение запросов, в каком порядке они выполняются и какой участок кода вызывает их выполнение.
Далее почитайте про кэширование результатов запросов во фреймворке.
И еще, возможен вариант, что не индексированы поля в БД и поэтому БД дает нагрузку (тупо перебирает все записи вместо поиска по индексу).
Если все это не помогает.
Делаете задачу в консоли на формирование файла с картой сайта.
Задача кладет файл куда Вам нужно.
Далее настраиваете крон с этим задании. Периодичность выбираете в зависимости от периодичности обновления сайта и необходимости актуализации. Это позволить не делать сложные запросы при каждом посещении или запросе карты сайта.