Перед тем, как индексировать сайт, поисковая система анализирует файл Sitemap и XML теги которые используются:
loc - URL-адрес
priority - приоритет страницы
lastmod - дата последнего обновления страницы
changefreq – периодичность изменения страницы
Если приоритет (priority) одинаковый для всех страниц, то робот будет анализировать последние обновленные страницы (lastmod).
Проблема в том, что иногда нужно редактировать новости и когда обновляем карту сайта через Панель Управления, тег lastmod не изменяет значение, но остается тот же самый. То есть если 23 мая 2009 Вы добавили новость и потом редактировали её 5 августа 2009, поисковый робот может узнать об этом и через месяц, а может и больше. Так как в файле sitemap.xml директива lastmod будет иметь значенье 2009-05-23 (23 мая 2009) вместо 2009-08-05.
Для того чтобы модуль Google Sitemap указал дату последнего изменению, рекомендую менять пару строчек в файле /engine/classes/google.class.php
Находим строку:
И меняем на:
SELECT id, date, alt_name, category, flag FROM
И меняем на:
SELECT id, date, alt_name, category, flag, editdate FROM
Дальше находим строку:
И меняем на:
$row['date'] = strtotime( $row['date'] );
И меняем на:
if ($row['editdate'] !=""){
$row['date'] = strtotime(date("Y-m-d", $row['editdate']));
}
else {
$row['date'] = strtotime($row['date']);
}
$row['date'] = strtotime(date("Y-m-d", $row['editdate']));
}
else {
$row['date'] = strtotime($row['date']);
}
Вот и всё!
А если хотите чтобы при каждом обновлением Google узнал об этом (не рекомендуется обновлять чаще чем раз в час),
Найдите в файле /engine/inc/googlemap.php строку:
И добавите ниже:
if ($_POST['action'] == "create") {
И добавите ниже:
if ($config['allow_alt_url'] == "yes"){
$SiteMapLocation = $config['http_home_url']."sitemap.xml";}
else {
$SiteMapLocation = $config['http_home_url']."uploads/sitemap.xml";
}
echo <<
HTML;
$SiteMapLocation = $config['http_home_url']."sitemap.xml";}
else {
$SiteMapLocation = $config['http_home_url']."uploads/sitemap.xml";
}
echo <<
HTML;