Тема интересует меня из-за размера Википедии. Может быть легко создать несколько крон для периодического обновления карт сайта на маленьком сайте, но как насчет большого? Так:
Как Википедия генерирует свой Sitemap?
Он динамически генерируется скриптом PHP. Для больших сайтов, вероятно, лучше проверять изменения и генерировать только если что-то изменилось - или генерировать это только каждые XY минут / часов / дней. Это зависит от инфраструктуры.
Вся необходимая информация находится в базе данных, так что это не такая сложная задача.
И вот доказательство: http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/generateSitemap.php?view=log / http://www.mediawiki.org/wiki/Manual:GenerateSitemap. PHP
Изменить: Ах, и это может быть также интересно для этой темы:
Недавно я столкнулся с задачей создать карту сайта для нашего сайта. Хотя это не размер Википедии, это все еще около ста тысяч страниц, и около 5% из них меняются, добавляются или удаляются ежедневно.
Поскольку размещение всех ссылок на страницы в одном файле сделало бы его слишком большим, мне пришлось разделить их на разделы. Индекс карты сайта указывает на страницу aspx со строкой запроса для одного из 17 различных разделов. В зависимости от строки запроса страница возвращает XML, ссылающийся на несколько тысяч страниц, в зависимости от того, какие объекты существуют в базе данных.
Таким образом, карта сайта не создается периодически, а создается на лету, когда кто-то ее запрашивает. Поскольку у нас уже есть система для кэширования поиска в базе данных, она, конечно, также используется для извлечения данных для карты сайта.
источник
Хотя код генерации карты сайта находится в основном мастере MediaWiki и, безусловно, будет выбран для создания карты сайта, я не вижу никаких доказательств того, что в Википедии она действительно включена. Файл robots.txt не указывает на карты сайта.
Кроме того, любой скрипт обслуживания, выполняемый в проектах Викимедиа, контролируется puppet, и в репозитории puppet нет экземпляра generateSitemap.php . Наконец, в дампах нет ни одной карты сайта для какой- либо вики Викимедиа , хотя есть « рефераты для Yahoo ».
В любом случае, Википедия запускает кеш Squid перед серверами приложений. Они могут контролировать частоту обновления своего сайта, регулируя время истечения срока действия страницы.
Более того, то, что Википедия делает для индексации, не является хорошей моделью для вашей вики, потому что у Google есть специальные контакты / сделки / обработка Википедии, см. Недавний пример .
источник
Я не уверен, но я думаю, что они используют расширение Google Sitemap для MediaWiki. Это поддерживается страницей Википедии в файлах Sitemap .
источник