-в css плавность нужно задавать для #site_1, ... #site_4.
-файлы изображений следует предварительно загрузить.
-setTimeout откладывает введённую функцию целиком, а для срабатывания плавного изменения css-свойств необходимо разделить во времени style.opacity = 0 и style.opacity = 1, то есть понадобятся две функции с отложенным запуском одна за другой.
-четырёхкратное дублирование можно сжать в функцию.
-можно пересмотреть код на использование setInterval.
функции отображения и сокрытия привязать к разным элементам в соответствии с требуемой логикой. mouseover и отображение на more-tags, а mouseout и сокрытие на hidden-tags.
Рекламу лучше начать на тех площадках, где целевая аудитория проводит время с большим интересом. Не думаю, что подростки читают хабр, да и длинные статьи вообще. А родители искать такие курсы будут не по предпочтениям детей, а значит не там, но если найдут, то бесплатность будет хорошей подоплёкой бросать такие курсы незаинтересовавшимися. Поэтому лучше рекламировать детям напрямую.