Как спарсить быстро много страниц в PHP?
А зачем скорость? Нужно терпение. Запускайте процесс и пусть себе парсит. Я для таких целей использую ПО contentDownloader там быстрее все настроить и запустить. Пускаете в 10 потоков и идете пить чай. 50000 страниц не особо много, 1-2часа и все будет готово. Вот был опыт с 5 000 000 страниц и сложной выборкой данных. 3 дня. Но если оно само парсит, то все равно не проблема.
Ну или кроном дергать скрипт раз в минуту и писать в базу результаты. Можно за раз по несколько дергать. И через n времени, где n явно меньше 10 часов, будет все готово.
Оптимизация больше времени займет. Если речь о ежедневном парсинге 1M страниц, тогда надо думать. Смотреть где больше потеря времени, при загрузке страницы или при работе скрипта, подбирать библиотеки. А для одноразовой задачи на 50k страниц, много чести, оптимизировать что-либо.
Ну во-первых, multi curl в гугл.
Во-вторых, если composer это не страшное слово, то сюда.
В-третьих, скорее всего большую часть времени отжирает не сам запрос, а разбор DOM через phpquery. Лучше таки использовать что-то посовременнее и скорее всего побыстрее.