Ваш первый подход звучит как хорошая идея. Используя cronjob, извлечение контента отделяется от вашего сайта, поэтому пользователю не нужно ждать.
Если у вас есть доступ к странице, которая генерирует фрагмент, вы можете уменьшить сетевой трафик, активно отправляя новый контент, а не запрашивать его каждые пару минут.
Я бы сохранил фрагмент в базе данных, хотя, как я полагаю, запросы к базе данных выполняются быстрее, чем доступ к файловой системе.