function parseCategory($url){
$fileProduct = file_get_contents( $url );
$value = phpQuery::newDocument( $fileProduct );
$products = $value->find( '.art_n_heading_wp' );
foreach ($products as $product) {
...
}
$next = $value->find( '.catalog-pagination span.modern-page-first ' )->next()->attr( 'href' );
if($next){
parseCategory($next);
}
}
Расставьте индексы по самым частым условиям и всё ок будет.