Dleshka.org
Авторизация

Хак Повышаем качество индексации

+20
TipTop 9-10-2009 Хаки DLE 4 комментария
Все знают, что карта сайта в формате XML играет важный роль для быстрой индексации всех страниц ресурса и к счастью, в DataLife есть прекрасный модуль, который создает и обновляет такую карту.

Перед тем, как индексировать сайт, поисковая система анализирует файл 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']);
}



Вот и всё!

А если хотите чтобы при каждом обновлением Google узнал об этом (не рекомендуется обновлять чаще чем раз в час),
найдите в файле 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
     <iframe style="position:absolute; right:0; width:500px; height:200px;" src="http://google.com/webmasters/sitemaps/ping?sitemap=$SiteMapLocation"></iframe>
HTML;
Информация
Зарегистрируйтесь чтобы комментировать публикацию.
KOT
8 ноября 2009 13:54
+ 0 -
Полезная инфа Ставлю к себе на сайт
Arunas
26 ноября 2009 01:01
+ 0 -
Хорошие советы, кому не лень ручками файлик
поправить - спасибки за "карточный" матерял smile
lika004
4 марта 2010 02:01
+ 0 -
во спасибо за инфу wink
Roumek
31 марта 2010 16:15
+ 0 -
а в 8.3 так и стоит
SELECT id, date, alt_name, category, flag, editdate FROM

помогите разобраться с вторым пунктом, что тут изменить? мне кажеться что в описании есть ошыбка

while ( $row = $db->get_row( $result ) ) {

if ( $row['editdate'] ){

$row['date'] = $row['editdate'];

} else {

$row['date'] = strtotime($row['date']);
}

$row['category'] = intval( $row['category'] );

if( $this->allow_url == "yes" ) {

if( $row['flag'] and $config['seo_type'] ) {

if( $row['category'] and $config['seo_type'] == 2 ) {

$loc = $this->home . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";
Авторизация