La acción no se repite porque estás usando
setTimeout() el cual se ejecuta sólo una vez cuando se cumple el tiempo seteado. Si querés que la acción se repita, tenés que usar en su lugar
setInterval() que se va a ejecutar infinitamente hasta que invoques un
clearInterval().
En tu código no hay ninguna verificación para la carga del sitio, podrías ingresarlo dentro de un window.onload por ejemplo.
Saludos.