Вот самый простой пример с file_get_contents
Есть карта сайта (содержит все страницы):
http://studsovet-life.ru/sitemap.xml
И ради интереса делаем file_get_contents (условно говоря на индексирование)...
PHP код:
<?php
/*print "<pre>";
print_r(get_headers($url));
print_r(get_headers($url, 1));
*/
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
$content = file_get_contents ("http://studsovet-life.ru/sitemap.xml");
preg_match_all( '#<loc>(.+?)</loc>#is', $content, $reg );
foreach ($reg[1] as $key => $value){
$a = file_get_contents($value);
print "Получен " . $value . "<br />";
#print $a;
}
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 4);
echo 'Скрипт генерировался '.$total_time.' seconds.'."\n";
#print "<pre>";
#print_r($reg[1]);
?>
Запускаем этот скрипт -
http://studsovet-life.ru/test.php = 8 секунд работы
И весь сайт условно говоря проиндексирован...
Ставим cron - и время от времени (бот или как-еще придумать) - сайт будт обходиться...
Если пользователь - кто-то во FE-что-то меняет - то ставим в очередь на индексаци... либо после "кнопки сохранить" - запускаем функцию перенидексации страницы.
И потом страницы которые не изменились - можно не индексировать.
Т.к. на сайте у нас может быть сложная логика - к примеру виртуальные страницы - мы их также добавляем в отдельные карты сайта...
В общем разбиваем. В meta-header - добавляем специальный параметр который будет отвечать за тип информации.
Также еще есть интересное расширение:
Crawler - что то вроде обходчика.