Скрипт php автоматическое построение sitemap

Для Windows Phone 04.02.2019

С помощью нашего генератора карты сайта создайте файлы в формате XML, которые могут быть представлены в Google, Яндекс, Bing, Yahoo и других поисковых системах, чтобы помочь им индексировать ваш сайт.

Сделайте это за три простых шага:

  • Введите полный URL веб-сайта в форму.
  • Нажмите кнопку "Начать" и дождитесь, пока сайт полностью просканируется. При этом Вы увидете полное количество работающих и неработающих ссылок.
  • Нажав кнопку "Sitemap.xml", сохраните файл в удобном месте.

  • Sitemap – это карта сайта в формате XML, который В 2005 году поисковик Google стал использовать для индексации страниц сайтов. Файл Sitemap представляет собой способ организации веб-сайта, выявление адреса и данные по каждому разделу. Ранее карты сайта в основном были направлены для пользователей сайта. Формат XML был разработан для поисковых систем, что позволяет им найти данные быстрее и эффективнее.

    Новый протокол Sitemap был разработан в ответ на увеличения размера и сложности веб-сайтов. Бизнес-сайты часто содержат тысячи продуктов в своих каталогах, популярность блогов, форумов, досок объявлений вынуждают вебмастеров обновлять свои материалы, по крайней мере один раз в день. Поисковым системам все труднее отслеживать весь материал. Через протокол XML поисковые системы могут более эффективно отслеживать адреса, оптимизируя их поиск путем размещения всей информации на одной странице. XML также показывает, как часто обновляется определенный веб-сайт, и записывает последние изменения. XML карты не являются инструментом для поисковой оптимизации. Это не влияет на ранжирование, но это позволяет поисковым системам сделать более точные рейтинги и поисковые запросы. Это происходит путем предоставления данных, удобных для считывания поисковыми системами.

    Общее признание протокола XML означает, что разработчикам веб-сайтов больше не нужно создавать различные типы карт сайта для различных поисковых системах. Они могут создать один файл для представления, а затем обновить его, когда они внесли изменения на сайте. Это упрощает весь процесс тонкой настройки и расширения веб-сайта. Сами Вебмастера начали видеть преимущества использования этого формата. Поисковые системы ранжируют страницы в соответствии с релевантностью содержания конкретных ключевых слов, но до формата XML часто содержимое страниц не было правильно представлено. Это часто расстраивает вебмастерам, которые понимают, что их усилия по созданию веб-сайта были оставлены незамеченными. Блоги, дополнительные страницы, добавление мультимедийных файлов занимают несколько часов. Через файл XML эти часы не будут потрачены впустую, их увидят все известные поисковые системы.

    Чтобы создать свой Sitemap в формате XML и держать поисковые системы в курсе всех изменений вашего сайта, попробуйте наш бесплатный генератор карты сайта.

    01 Фев 2012 / Дарья Рыбалтович

    В данной статье я постараюсь рассказать, как упростить создание и обновление файла sitemap.xml с помощью небольшого скрипта на PHP. Обязательным условием для работы данного скрипта является наличие на сайте базы данных в формате MySQL. Если же ваш сайт написан без использования баз данных, то, по идее можно модифицировать этот скрипт для прохода по дереву папок, но это будет куда больше работы, так что оставляю это на усмотрение фанатов.

    Что такое карта сайта sitemap.xml?

    Наверняка, посещая различные интернет ресурсы, вы сталкивались с пунктом меню «Карта сайта» или с вот таким значком - . Так вот, это все нужно и хорошо, но это – для пользователей. А наша с вами задача сделать тоже самое, но для поисковых роботов. Файл sitemap.xml не виден пользователям и выполняет чисто технические задачи.

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

    Cоздание sitemap.xml вручную

    Создать карту сайта можно в любом текстовом редакторе, опираясь на базовые знания стандарта XML.

    Ниже приведен пример файла Sitemap, в котором содержится только один URL-адрес и использованы все необязательные теги. Необязательные теги выделены курсивом.

    Сначала опишем заголовки файла и корневую директорию:

    $zag = "\n\n\t\t0.8\n\t\n"; $end = ""; //создадим соединение с базой и выберем нужные нам записи из таблицы require_once("constants.inc.php"); //подключаем файл с константами соединения mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD) or die("Не могу создать соединение "); mysql_select_db(DB_NAME) or die(mysql_error()); $result = mysql_query ("SELECT url, priority, modify FROM `info` WHERE `priority`<>"0" ") or die (mysql_error()); //выбираем из таблицы все записи while ($row = mysql_fetch_assoc($result)) { $str1 = "\t\n\t\t".$url.$row.".html\n"; //адрес страницы, если есть страницы во вложенных папках, которые надо проиндексировать, то перед переменной $url можно добавить переменную с категорией $str2 = "\t\t".$row["priority"]."\n"; //приоритетность $str3 = "\t\t".$row["modify"]."\n"; //дата изменения страницы $str4 = "\t\n"; $str = $str.$str1.$str2.$str3.$str4; //собираем итоговую строку. } $str = $zag.$str0.$str.$end;

    Теперь добавим обработчик файла:

    $file = "./sitemap.xml"; //адрес, куда запишем файл (я пишу в корень) if(!$handle = fopen($file, "w")){ echo "Cannot open file ($file)"; exit; } if (fwrite($handle, $str) === FALSE) { echo "Cannot write to file ($file)"; exit; } echo "Success"; fclose($handle);

    В итоге наш файл будет выглядеть так:

    \n\n\t\t0.8\n\t\n"; $end = ""; require_once("constants.inc.php"); mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD) or die("Не могу создать соединение "); mysql_select_db(DB_NAME) or die(mysql_error()); $result = mysql_query ("SELECT url, priority, modify FROM `info` WHERE `priority`<>"0" ") or die (mysql_error()); while ($row = mysql_fetch_assoc($result)) { $str1 = "\t\n\t\t".$url.$row["from"].".html\n"; $str2 = "\t\t".$row["priority"]."\n"; $str3 = "\t\t".$row["modify"]."\n"; $str4 = "\t\n"; $str = $str.$str1.$str2.$str3.$str4; } $str = $zag.$str0.$str.$end; $file = "./sitemap.xml"; if(!$handle = fopen($file, "w")){ echo "Cannot open file ($file)"; exit; } if(fwrite($handle, $str) === FALSE) { echo "Cannot write to file ($file)"; exit; } echo "Success"; fclose($handle); ?>

    Загружаем файл на сервер и запускаем из браузера. Если все сделано правильно, получаем сообщение "Success" и наслаждаемся результатом.

    Куда дать знать о sitemap.xml поисковикам

    Обычно файл sitemap.xml загружается в корневую папку сайта. Но, при желании, его можно загружать в любую, доступную через браузер папку сайта. Далее, необходимо прописать путь к файлу sitemap.xml в файле robots.txt .

    Если на вашем сайте ещё нет файла robots.txt , то нужно создать его минимальную версию, полностью разрешающую всем поисковикам сканирование всего сайта. Для этого нужно сделать файл всего из двух строчек:

    User-agent: * Allow: /

    После того, как в нашем распоряжении оказался готовый работающий файл robots.txt, нам нужно добавить всего одну строку.

    Sitemap: http://сайт/sitemap.xml

    В данном случае файл sitemap.xml находится в корне сайта и доступен поисковым роботам.

    Метки: СЕО, Сайтостроение

    Многие сайтостроители не уделяют должного внимания карте сайта- и напрасно, скажу я тебе. Sitemap.xml- один из основных источников, из которого робот узнает о страницах, существующих под твоим чутким руководством. Весьма и весьма рекомендую обзавестись ею, если еще нет этого инструмента.

    Что же это такое- sitemap ?

    Это обычный текстовый файл в формате.xml, реже- в.html, в котором хранятся ссылки на страницы сайта, даты их создания, даты примерного обновления, приоритет страниц. Вся эта информация- дата создания, приоритет, периодичность обновления- условная информация, поисковые роботы не придают ей особого значения, для него важны сами ссылки для более легкой и быстрой индексации.

    Как создать sitemap.xml?

    Есть куча сервисов по созданию карты сайта. Я не собираюсь их перечислять: побарабань пальцами по клавиатуре, и добрый дядя гоша или яша через секунду выдаст тебе с десяток сервисов. Но здесь есть минусы: обычно, эти сервисы делают карту не более 500 страниц, реже- 1000, а если твой сайт содержит более? Тогда давай денюжку. Но мы ж не будем за "здорОво живешь" расставаться со своими кровными! Тем более все равно есть неудобство: нужно будет каждый раз заходить на этот сервис, создавать карту, качать ее к себе... Жуть, короче.

    Есть еще способ: существует масса программ для создания sitemap, однако за такую утилиту придется отдать порядка 20 американских рублей, что меня лично тоже не устраивает. Ты уже в курсе, уважаемый читатель, что я- самое ленивое существо на этом свете, а раз ты читаешь все это и до сих пор не перелистнул страницу- значит мы близки по духу. Поэтому я выбрал самый легкий путь, которым и поделюсь с тобой. Мы просто создадим php- файл, который будет брать всю необходимую информацию из базы MySQL, и выводить ее. А роботу наврем, что это файл.xml, ему-то какая разница... Итак, поехали. Создаем файл sitemap.php с примерно таким содержанием:

    1. require_once "db.php" ;
    2. header ("Content-type: application/xml" ) ;
    3. echo "nn" ;
    4. echo " n" ;
    5. $urladdr = "http://" . $_SERVER [ "HTTP_HOST" ] . "/" ;
    6. $result = mysql_query ("SELECT * FROM video ORDER BY video_id DESC" , $db )
    7. or die (mysql_error () ) ;
    8. $rows = mysql_num_rows ($result ) ;
    9. if ($rows > 0 ) {
    10. while ($data = mysql_fetch_array ($result ) ) {
    11. echo "tn" ;
    12. echo "tt" . $urladdr . "video.php?act=video&video_id=" . $data [ "video_id" ] . " n" ;
    13. $date = date ("Y-m-d" , $data [ "video_data" ] ) ;
    14. echo "tt" . $date . " n" ;
    15. echo "ttdaily n" ;
    16. echo "tt0.7 n" ;
    17. echo "t rn" ;
    18. echo " n" ;

    Надеюсь, ты сам сможешь изменить названия таблиц и полей, к которым нам необходимо будет обращаться, а также выводимый адрес. Данную операцию можешь повторить столько раз, сколько тебе угодно, только меняй названия таблиц и адреса. Далее- обманываем робота: пусть он думает, что видит файл.xml, а не.php, хотя ему, в общем-то, фиолетово: он съест и пых. Открываем(или создаем в простом текстовом редакторе, если его еще нет) файл .htaccess , и добавляем в него следующие строчки:

    RewriteEngine on

    RewriteRule ^sitemap.xml$ sitemap.php [L]

    Все, робот нагло обманут нами и видит теперь файл sitemap.xml вместо sitemap.php, который, кстати, не забудь кинуть в корень сайта. Видит он примерно следующее:

    Код: XML

    http://www.твой_сайт.ru/video.php?act=video&video_id=5

    2013-01-01

    daily

    0.7

    А так как у нас включен цикл while, то скрипт выведет все ссылки, на которые есть id.

    Ну и последний штрих- сообщим паукам, что эта карта у нас, наконец, появилась. Открываем robots.txt (если его еще нет- создаем), и добавляем строчку

    Код: ROBOTS

    Host: www.твой_сайт.ru

    Sitemap: http://www.твой_сайт.ru/sitemap.xml

    Вот, в общем, и все, уважаемый читатель. Не забывай только, что одна карта сайта может быть размером не более 10 Мб или 50 000 ссылок. Если их у тебя больше- придется разбивать sitemap на несколько частей, но об этом- в другой раз. Благодарю за внимание.

    Вы просто кретин, если в свое время не уделили сайтмапу нужное внимание. Достаточно один раз разобраться в вопросе и в будущем избежать большого количества ошибок, что давайте сейчас и сделаем.

    Ваш покорный слуга в годы младые также был таким кретином, когда только начал продвигать сайты в одной конторе. Попался мне в то время один сайтец на продвижение, который, следует сказать, был просто гавном. И у этого гавна были проблемы с индексацией. Естественно, будь сайт достаточно качественным, его бы оба поисковика индексировали несмотря ни на какие проблемы, но владельцы жались на нормальных дизайнера, верстальщика и программиста, а в этом случае сеошнику остается только, так сказать, открывать бутылку при помощи ножниц. Я перепробовал на нем все — и настройку last-modified, и ускорение индексации модным в то время фастботом, и покупку ссылок. И только потом оказалось, что дело было в том, что там не обновлялся автоматически сайтмап! Когда я его обновил — все страницы влетели в индекс.

    Что такое sitemap и зачем он нужен

    Что такое sitemap? Это файл с информацией о страницах сайта, которые нужно индексировать. Обычно sitemap создают для Яндекса и Гугла, чтобы оповестить поисковых роботов о страницах, которые нужно внести в индекс. Ещё при помощи сайтмапа осуществляется проверка того, как часто происходят обновления, и индексация каких веб-документов является наиболее важной. В целом очень хорошо о нем рассказали на Вебмастерской Яндекса:

    Влияет ли наличие sitemap на продвижение

    Если у вас отсутствует сайтмап, это не означает, что поисковики не станут индексировать ресурс. Поисковые роботы зачастую и без этого неплохо сканируют сайты и включают их в поиск. Но иногда могут возникать сбои, из-за которых порой удается отыскать не все веб-документы. Основными причинами являются:

    1. Разделы сайта, в которые можно попасть, только совершив длинную цепочку переходов;
    2. Динамические URL-адреса.

    Так вот, создание sitemap.xml во многом помогает решить эту проблему. Этот файл влияет на SEO лишь постольку, поскольку облегчает/ускоряет индексацию страниц. Также возрастает шанс того, что веб-страницы проиндексируются до того, как ваши конкуренты смогут скопировать контент, опубликовав его у себя на сайте.

    В каком еще формате бывает карта сайта и почему её делают в формате XML

    Зачем нужна карта сайта, мы разобрались. Теперь давайте рассмотрим, в каких форматах её можно сделать:

    1. В формате html. Создается в виде обыкновенной страницы с адресами, ведущими на главные разделы ресурса. Такой тип карты помогает быстро сориентироваться, и рассчитан в большей степени на людей, чем на поисковых роботов. В HTML sitemap можно поместить ограниченное число ссылок (не более 100), ведь если их окажется больше, то не все они попадут в индекс. Или же поисковые роботы могут и вовсе исключить такую страницу из поиска за чрезмерное число URLов, пусть даже и внутренних.
    2. Создание xml-файла sitemap. Здесь нет слишком критичных ограничений по количеству ссылок, а поисковики лучше его индексируют, ведь файл sitemap xml-формата содержит полную информацию в понятном для робота виде. Особенно он важен для проектов, где имеются сотни и тысячи документов одинаковой важности, и размещение всех ссылок на них необходимо. В сайтмап такого типа есть возможность разместить до 50 тысяч URLов и помимо этого можно выставить частоту обновлений и приблизительный приоритет (priority), чего не скажешь о карте в формате HTML. Именно по этим причинам сайтмап почти всегда создают в xml.

    Вот еще инфа об этом файле:

    Как сделать правильный sitemap

    Рассмотрим, как сделать правильную xml-карту. Здесь должны быть соблюдены следующие требования:

    1. Размер файла должен быть не больше 10 мб;
    2. Карта должна содержать не больше 50000 ссылок. В тех случаях, когда ссылок больше, можно создать несколько карт и включить их в главную xml-карту;
    3. Адрес сайтмапа следует прописать в robots.txt;
    4. Также загрузите sitemap в яндекс и гугл (как добавить файл – описано ниже);
    5. Поисковые системы должны иметь доступ к карте. Необходимо использовать специальные теги, которые дают поисковикам понять, что это именно карта, а не что-то другое;
    6. У sitemap должна быть кодировка UTF-8.

    Приведу простой пример карты:

    http://site.ru/ 2016-11-20T19:45:08+03:00 always 0,9 http://site.ru/category/ 2016-11-20T19:46:38+03:00 monthly 0,6 http://site.ru/page/ 2016-11-20T19:48:41+03:00 yearly 0.4

    < url >

    < loc > http : //site.ru/

    < lastmod > 2016 - 11 - 20T19 : 45 : 08 + 03 : 00 < / lastmod >

    < changefreq > always < / changefreq >

    < priority > 0 , 9 < / priority >

    < / url >

    < url >

    < loc > http : //site.ru/category/

    < lastmod > 2016 - 11 - 20T19 : 46 : 38 + 03 : 00 < / lastmod >

    < changefreq > monthly < / changefreq >

    < priority > 0 , 6 < / priority >

    < / url >

    < url >

    < loc > http : //site.ru/page/

    < lastmod > 2016 - 11 - 20T19 : 48 : 41 + 03 : 00 < / lastmod >

    < changefreq > yearly < / changefreq >

    < priority > 0.4 < / priority >

    < / url >

    Теги url и loc являются обязательными. В первом прописывают все сведения о конкретном URL. Во втором прописывается сам адрес.

    Теги lastmod, changefreq, priority не являются обязательными, но использовать их всё же рекомендуется.

    Lastmod в sitemap отвечает за дату последнего обновления.

    Changefreq указывает на частоту изменений страницы. Значения могут быть следующими:

    1. Hourly – обновление ежечасно;
    2. Always – всегда обновляется;
    3. Weekly – обновляется раз в неделю;
    4. Daily – обновления происходят ежедневно;
    5. Monthly – обновления происходят раз в месяц;
    6. Yearly – один раз в год;
    7. Never – не обновляется (такое значение лучше не использовать).

    Priority сообщает поисковикам о степени важности страницы, по сравнению с другими. Приоритет можно выставлять от 0,1(низкий) до 1(высокий).

    Это был только пример карты, не нужно указывать именно эти значения. Вообще, priority рекомендуется расставлять следующим образом: максимальный для главной страницы (1), для рубрик средний (0,6), а для записей – минимальный (0,4).

    Теперь рассмотрим пример, когда ссылок более 50 тысяч. В этом случае файл включает в себя другие карты:

    http://site.ru/sitemaps/sitemap01.xml 2016-11-20T21:37:28+03:00 http://site.ru/sitemaps/sitemap02.xml 2016-11-20T21:37:29+03:00

    < sitemap >

    < loc > http : //site.ru/sitemaps/sitemap01.xml

    < lastmod > 2016 - 11 - 20T21 : 37 : 28 + 03 : 00 < / lastmod >

    < / sitemap >

    < sitemap >

    < loc > http : //site.ru/sitemaps/sitemap02.xml

    < lastmod > 2016 - 11 - 20T21 : 37 : 29 + 03 : 00 < / lastmod >

    < / sitemap >

    Как создать карту сайта

    Способов создания xml-карты несколько, рассмотрим их:

    1. Скачать карту при помощи онлайн генератора с другого ресурса;
    2. Сгенерировать при помощи специальной программы. Но стоит учесть, что программы подобного рода в основном платные. Пример такого генератора: Wonder WebWare SiteMap Generatior. В Screaming Frog также есть такая возможность;
    3. Создать сайтмап вручную;
    4. Автоматически создать карту при помощи CMS (например на WordPress доступна такая функция).

    Вот вариант, как сделать сайтмап без помощи плагинов:

    Плагины для создания sitemap на WordPress

    Сделать карту сайта в WordPress можно с помощью специального плагина, который называется Google XML Sitemaps. Здесь все просто: скачиваем плагин, устанавливаем, затем приступаем к созданию файла. Для этого открываете Консоль-Настройки, и выбираете XML-sitemap. Далее выставляем настройки. Приоритет оставляем по умолчанию.



    Рекомендуем почитать

    Наверх