Создание sitemap самому.

Приветствую читатель.
Итак сейчас попробую вкратце описать процесс создания sitemap для поисковиков.

Что же из себя представляет sitemap.xml ? Это на самом деле  XML определенной структуры. Многие современные движки и CMS генерируют сами карту сайта. К примеру карта для сайта softlet.kz.

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="http://softlet.kz/wp-content/plugins/google-sitemap-generator/sitemap.xsl"?><!-- generator="wordpress/3.0.1" -->
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">	<url>
		<loc>http://softlet.kz/</loc>
		<lastmod>2010-11-11T09:58:00+00:00</lastmod>
		<changefreq>daily</changefreq>
		<priority>1.0</priority>
	</url>
	<url>
		<loc>http://softlet.kz/mail-utf8/</loc>
		<lastmod>2010-11-10T04:08:36+00:00</lastmod>
		<changefreq>weekly</changefreq>
		<priority>0.2</priority>
	</url>
.....

Нам нужно будет создать аналогичную, но для начала объясню что значит каждое из свойств

  • url - блок в котором описана каждая ссылка
  • loc - адрес ссылки, обязательно надо писать с http://
  • lastmod - время последней модификации в формате ISO, позже расскажу как очень просто вывести время в этом формате
  • changefreq - как часто обновляется страница daily, weekly, monthly, yearly - ежедневно, еженедельно, ежемесячно, ежегодно соответственно
  • priority - приоритет, для разделов нужно выставлять побольше.

итак задача, у нас есть сайт, есть раздел articles в нем например есть статьи, которые берутся из базы вида article_(IDстатьи).html . необходимо для такого сайта сделать sitemap.xml. приступим. Напишем небольшой скрипт PHP.

$xml='<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
';

/// добавление статичных страниц
$xml.='<url>
		<loc>http://site.ru/</loc>
		<lastmod>'.date('c').'</lastmod>
		<changefreq>daily</changefreq>
		<priority>1</priority>
</url>
<url>
		<loc>http://site.ru/articles/</loc>
		<lastmod>'.date('c').'</lastmod>
		<changefreq>daily</changefreq>
		<priority>0.9</priority>
</url>
';
//// добавление динамичных страниц статей
$dbres=mysql_query("select * from articles order by date desc");
	while ($res=mysql_fetch_assoc($dbres)){
		$xml.='<url>
		<loc>http://site.ru/articles/article_'.$res['id'].'.html</loc>
		<lastmod>'.date('c').'</lastmod>
		<changefreq>weekly</changefreq>
		<priority>0.6</priority>
</url>
';
	}

/// закрывающийся тег блока ссылок
$xml.='</urlset>';
/// запись в файл
$filename=$_SERVER['DOCUMENT_ROOT'].'sitemap.xml';
$fp=fopen ($filename, 'w');
fwrite($fp, $xml) ;
fclose($fp);
?>

Скажу сразу этот файл лучше класть непосредственно в корень, потому как многие поисковые машины его ищут автоматически именно там. Но лучше зайти в панель вебмастера в гугле (google) и Яндекса и указать явно где расположен этот файл.

P.S. date('c') - как раз и генерирует дату в формате ISO, который нам нужен. Вторым аргументом можно подставить нужное время, а так эта функция генерирует текущее время.

Вот такой очень простой способ создать sitemap.

Запись опубликована в рубрике Веб-программирование. Добавьте в закладки постоянную ссылку.

1 комментарий: Создание sitemap самому.

  1. Katana говорит:

    Можно для создания карты сайта попробовать новый русскоязычный сервис: http://sitemapnow.com/
    Там ограничение на 5000 страниц в бесплатном варианте, но там есть прибамбас Sitemap Live Data. И если у вас сайт для людей, то с помощью него можно получить полную карту сайта и в достаточно короткое время, да еще с правильными priority. А с помощью Quick Sitemap можно за несколько секунд получить карту сайта с HTML карты сайта вашего ресурса.