Php скрипт по созданию xml sitemap для google

Файл Sitemap – это файл с данными о всех страницах сайта. С помощью файла Sitemap вы сообщаете поисковикам (google, yandex), какие страницы вашего сайта нужно добавить в индекс, как часто обновляется информация на страницах, а также каких страниц наиболее важны для индексации.

Частота обновления информации на страницах задается тегом: changefreq
Важность страниц задается тегом: priority

Ниже приведен PHP скрипт генерации xml sitemap для google и яндекса:

————————————————–

<?php
    //адрес вашего сайта
    $ServerUrl = 'http://site.ru';
    // создаем новый xml документ
    $dom = new DOMDocument('1.0', 'UTF-8');
    $dom->formatOutput = true;
    // массив страницы для sitemap
    $pages = array(
        array(
            'url' => '/',
            'changefreq' => 'daily',
            'priority' => '1.00',
        ),
        array(
            'url' => '/sitemap',
            'changefreq' => 'daily',
            'priority' => '0.90',
        ),
    );

    //Получаем все статьи из БД
    // и добавляем их в массив
    $arts = getAllAtrs();

    foreach($arts as $art) {
        $pages[] = array(
            'url' => '/category/'.$art['id'],
            'changefreq' => 'daily',
            'priority' => '0.80',
        );
    }

    //вывод на экран количества страниц в sitemap
    var_dump(sizeof($pages));

$SITEMAP_NS = 'http://www.sitemaps.org/schemas/sitemap/0.9';
$SITEMAP_NS_XSD = 'http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd';

// ...and urlset (root) element
$urlSet = $dom->createElementNS($SITEMAP_NS, 'urlset');
$dom->appendChild($urlSet);
$urlSet->setAttributeNS('http://www.w3.org/2000/xmlns/' ,
    'xmlns:xsi', 
    'http://www.w3.org/2001/XMLSchema-instance');
$urlSet->setAttributeNS('http://www.w3.org/2001/XMLSchema-instance', 
    'schemaLocation', 
    $SITEMAP_NS . ' ' . $SITEMAP_NS_XSD);

foreach($pages as $page) {

    $url = $ServerUrl . $page['url'];
    // create url node for this page
    $urlNode = $dom->createElementNS($SITEMAP_NS, 'url');
    $urlSet->appendChild($urlNode);

    // put url in 'loc' element
    $urlNode->appendChild($dom->createElementNS(
        $SITEMAP_NS,
        'loc', $url));
    $urlNode->appendChild(
        $dom->createElementNS(
            $SITEMAP_NS, 
            'changefreq',
            $page['changefreq'])
    );

    $urlNode->appendChild(
        $dom->createElementNS(
            $SITEMAP_NS, 
            'priority',
            $page['priority'])
    );
}

$xml = $dom->saveXML();
//сохраняем файл sitemap.xml на диск
file_put_contents('/sitemap.xml' , $xml);

?>

————————————————–

Функцию  getAllAtrs() вам нужно заменить на свою. В моем примере данная функция получаем все материалы из БД.

 

Php скрипт по созданию xml sitemap для google: 10 комментариев

  1. admin Автор записи

    Alex, в коде есть строчка $arts = getAllAtrs();
    вам нужно функцию getAllAtrs() заменить на вашу функцию (или запрос) получения всех статей из базы данных.

  2. владимир

    извени!я новичок в этом деле!!!!на какую функцию заменить?у меня бд в mysql денвера!бд называеться primer что написать то надо

  3. admin Автор записи

    Артем, проверьте доступен ли к записи файл /sitemap.xml . Или смените путь к файлу file_put_contents(‘/sitemap.xml’ , $xml);

  4. admin Автор записи

    Stas, в любом случае вам нужно использовать свою функцию getAllAtrs(), которая и будет получать данные из файлов, из БД, или из любого другого места.

  5. Вячаслав

    перелопатил +100500 статей. Эта единственная которая мне помогла, спасибо. Это решение без напряга приципил к redbeanphp и править ничего не надо ))))

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *