Ваша задача очень странно выглядит, я не знаю ее полностью, но судя по описанному есть ряд типов "userable_type" которые я бы Вам советовал хранить в enum типе, а не строкой, это позволило бы сразу сгенерировать вспомогательные методы
К слову, может понравится гем https://github.com/7even/db_schema смысл в том что просто редактируешь схему без каких либо миграций и изменения сами вносятся в базу
Не являюсь PHP разработчиком, но коммент оставлю, не раз писал подобные вещи на Ruby, смысл такой же по сути, использовал библиотеку Nokogiri (она и под php есть), прикол в том что там можно было "разделить" память, тем самым процесс не перегружал ОЗУ и работал очень шустро, но повторюсь писал на Ruby, на пыхе не знаю как будет.
Еще стоит разбить все это делать на процессы, например один сканирует, вызывает другой процесс (которых в свою очередь может быть десятки) и передает ему ссылку, этот воркер в свою очередь загружает контент или еще какие то манипуляции проводит и пишет результаты в базу.
Как итог, получите асинхронную работу.
P.S. Как раз решаю на текущий момент аналогичную задачу )