Т.к сайт не SPA прием с setTimeout не поможет, необходимо при первой загрузке страницы писать текущее время (timeFromCookie = Date.now() - например), в куку или localStorage - чтобы затем брать это время и сравнивать его с текущим, и смотреть сколько прошло: (Date.now()- timeFromCookie) / (1000 * 60 * 30) > 1 - если выражение true, тогда прошло более получаса. Чтобы сравнивать можно написать функцию с помощью setInterval, которая скажем раз в минуту будет проверять текущее время и время из хранилища. И запускать ее сразу при загрузке страницы.