Написал на коленке небольшой Sitemap-генератор для Livestreet и готов им поделиться с общественностью, однако есть вопросы… Update: доступен сам генератор
Генератор выполнен в виде Action-класса, включающего 4 Event-а: index — выдает индексный xml для sitemap-ов (sitemap, содержащий только ссылки на файлы sitemap). Его необходимость объясняется ограничением в 50000 URL-ов в каждом сайтмэп-файле; blogs — выдает Sitemap на коллективные, а точнее не личные, блоги, а также главную страницу проекта; topics — выдает Sitemap на топики в коллективных и публичных блогах; users — выдает Sitemap на юзерские профайлы, посты и комментарии юзеров.
Необходимо отметить, что в текущей реализации генератора не используются мэпперы для ORM, соответственно, благодаря синглтон классу-обертке над БД, получение объекта на Database-класс в классе-экшене не дублирует существующий коннект к базе данных.
Отказ от использования Mapper в генераторе, в соответствии с описанной автором архитектурой движка, вызван прежде всего несложностью задачи и уникальностью в использовании данных (нужны только данные для конструирования URL и дата последнего изменения объекта, на который ссылается URL).
А упомянутый в тизере вопрос состоит вот в чем: стоит ли использовать кеширование в таком, сравнительно редко вызываемом классе, как генерация Sitemap?
Большинство поисковых систем проверяют Sitemap сайта не чаще раза в сутки, трата памяти на такое мне кажется не разумной, да и сами по себе запросы к БД для динамической генерации не тяжелые.
Если в комментариях большинство будет ЗА кеширование, то я выложу генератор после того, как прикручу использование кеша. В противном случае, сабж выложу в публичный доступ завтра утром.
Update [29/09/2008]:
Ну, собственно, как и обещал, делюсь генератором с общественностью :-)
Файл будет доступен на Яндекс.Диск-е в течении тридцати дней с сего момента, но срок удаления будет продлеваться автоматически, если файл остается востребованным.
А теперь поговорим немного о самом генераторе. Если кратко, то он тупой и разума в нем крайне мало. Все карты объектов разбиваются на куски по 15000 штук (количество настраивается в конфиге).
Генерируемые карты:
* Топики сайта, причем в значение поля lastmod карты подставляется дата последнего редактирования топика, либо его написания в случае отсутствия правок. Другими словами, при написании комментов к топику поле lastmod с УРЛом на данный топик не изменяется. Кеш каждого куска топиков инвалидируется автоматически через 1 час или после написания нового топика на сайт. [topics.tpl]
* Неличные блоги. Кеш валиден в течении 8 часов, либо до добавления нового блога. [шаблон — blogs.tpl]
* Юзерские профили, посты, комменты. Кеш валиден в течении одного часа, либо до регистрации нового пользователя. [users.tpl]
* Общий Sitemap. Сюда помещаются ссылки на страницы с неизменяемыми УРЛами, например, главная страница проекта, страница полного Эфира и т.п. [general.tpl]
Приоритеты УРЛов могут быть изменены в указанных выше шаблонах. Генерируемые УРЛы имеют вид:
http://ВАШ_САЙТ/sitemap.xml - индексный сайтмэп, а в нём:
http://ВАШ_САЙТ/sitemaps/general/sitemap_{chunk_Num}.xml
http://ВАШ_САЙТ/sitemaps/blogs/sitemap_{chunk_Num}.xml
http://ВАШ_САЙТ/sitemaps/topics/sitemap_{chunk_Num}.xml
http://ВАШ_САЙТ/sitemaps/users/sitemap_{chunk_Num}.xml
, где {chunk_Num} — номер чанка текущих объектов (изменяется в пределах 1...n). По мере наполнения проекта материалом, размер индексного сайтмэп-а увеличивается.
Для установки модуля необходимо:
1. Добавить в общий конфигурационный файл сайта константу со значением количества объектов в одном чанке,
define('SITEMAP_OBJECTS_PER_PAGE', 15000);
2. Добавить в конфиг роутера отображение УРЛа на экшн,
3. Распаковать содержимое архива с сохранением путей в веб-рут сайта.
Важное примечание:
При такой схеме Sitemap-ов в поисковые системы необходимо добавлять только индексный!
154 комментария
Молодец. Делись, включу в дистриб =)
По реализации. Не хорошо делать прямые запросы к БД из экшена, вообще не хорошо :)
нужно создать модуль, что то типа sitemap, там сделать маппер и фасад к нему. В фасаде реализовать кеширование. Кеширование нужно, т.к. поисковиков на свете много. При файловом кеше проблем с местом под кеш не должно возникнуть, а memcached дропает старые данные если места нет под новый кеш.
где-то не так давно читал, что PHP — это не Java и концепция setter-getter на все свойства класса, которые дб приватными, не самый лучший выбор. В том же аналоге C++-го STL для php есть классы для перегрузки магических методов таким образом, чтобы к свойствам можно было обращаться, как к ассоциативным массивам по строковому ключу $oClass['propertyName'].
Неспорю, что когда ORM полностью автоматический, например, как в питоновской Джанге, где сначала пишется модель и на основе её формируется структура БД или наоборот сначала строится база и на ее основании генерится модель, как часто бывает в Яве, сеттеры и геттеры это мегаудобно.
Но раз автор архитектуры выссказался за полное ей соответствие, перепишу с мэппером.
отлично, полностью еще не посмотрел, но уже похвально :) Надо включить в дистриб
по коду, модули инклудить не нужно — они автоматом подключаются. Там лишний инклуд и приватная переменная в экшене болтается =)
Да, действительно вся загвоздка была в HackerConsole, которая по-умолчанию включена в 0,1,2. Отключил, теперь все ок, только предупреждения о одинаковых приоритетах.
При такой схеме Sitemap-ов в поисковые системы необходимо добавлять только индексный! Подскажите нужно ли создавать пустой файл sitemap.xml в корне сайта и что указывать при добавлении карты сайта в google?
У меня ничего не генерируется, в файлах прописал как указано в начале поста, архив распаковал и загрузил, гуглу указал multiblog.ru/sitemap.xml В гугле выдает ошибку: Общая ошибка HTTP: 404 Не найдено
При попытке получения доступа к вашему файлу Sitemap возникла ошибка. Убедитесь в том, что Sitemap соответствует нашим правилам и к нему можно получить доступ в указанном местоположении, а затем выполните повторную отправку.
файлы не генерируются статически… точно также если у топиков урл имеет вид блаблабла.html это не значит, что это настоящие файлы и они лежат в папках с названием блога.
файл генерируется автоматически если все сделано как написано. проверено и мной и человеками в комментах выше, так что проверьте ничего ли не забыли. скорее всего в конфиг маршрутизатора забыли внести записи о обработке урлов нужного вида.
Да, я виноват, сам ступил, не добавил в конфиги. На другом все сделал как сказано, однако в гугле пишет такие ошибки и предупреждения: Ошибка разбора
Мы не смогли прочитать ваш Sitemap. Возможно, он содержит нераспознаваемую для нас запись. Проверьте свой Sitemap перед тем, как передать его повторно. Справка Проблема обнаружена: 05.10.2008
— Все URL в вашем файле Sitemap имеют одинаковый приоритет.
Все URL в вашем файле Sitemap имеют одинаковый приоритет (отличный от заданного по умолчанию). Приоритет указывает на важность отдельных URL относительно других URL на сайте. Он не влияет на эффективность вашего сайта в результатах поиска. Если все URL имеют одинаковый приоритет, Google не может отличить, какие из них более важные.
во-первых, если используется версия не из транка (последняя релизная), то требуется отключить хакерскую консоль и вывод статистики внизу страницы в глобальном конфиге.
а что касается приоритетов, то можно отркыть файлы шаблонов (всех, кроме users) и высставить приоритет, который по-умолчанию использует гугл (насколько я помню, 0,5). и такое сообщение (а это не ошибка, а Warning — предупреждение) перестанет появляться.
По своему наблюдению могу сказать, что гугль не очень «любит» такой сайтмап. Сейчас поясню, как у меня с ресурсом было.
Ресурс попал в индекс гугля, было доступно через site: более 200 страниц. Затем гугль загрузил сайтмап. После прошествии времени (видимо после обработки), из индекса вылетели все страницы кроме 5.
Затем в индекс потихоньку начали набиваться страницы. Сначала 13, потом 30, 35. Наблюдения какие. В индексе остались лишь главная, список блогов, и страницы по тегам, на которые можно было попасть с главной.
Затем после очередной загрузки и обработки сайтмапа, в индексе опять главная, теги, и избранные топики, на которые по гугль аналитикс совершенно более 20 переходов.
Я что сделал. Поскольку содержание топиков явно важнее для индексации, поставил в индексном сайтмапе, ссылку на сайтмап топиков на первое место. Приоритет топикам поставил 0.8, остальному 0.6. Вот и посмотрим, что будет.
я пока выложенные шаблоны не могу проверить в боевых условиях, т.к сайт еще не запущен, но делал я их по аналогии с существующим сайтом и документацией гугл на сайтмэпы
пока молчите, выскажу пару мыслей. пошерстил несколько сайтов, так так в основном в сайтмапах указаны ссылки на топики, потом по приоритету главная страница, потом разделы (заглавные блогов, форумов), ссылки на профайлы пользователей никто не указывает. ну кто-то же сдалал сайтмап, Дима ау!
А как все хорошо начиналось… уважаемый ort в первом комментарии сказал «Молодец. Делись, включу в дистриб =)» Я не понял дальнейших шуток, сарказмов и ерничаний… ведь эта штука полезная для наших проектов. Kruft сделай пожалуйста нормальный модуль под 0.3.1 сделай хоть платный тогда, уверен многие купят.
Копипаст, но тем не менее:
XML-файлы Sitemap, обычно называемые «Sitemap» (с заглавной буквы «S»), дают Google представление о вашем сайте. В данной статье обсуждается именно этот тип файлов Sitemap.
Проще говоря, файл Sitemap — это список страниц вашего веб-сайта. Создание и отправка файла Sitemap позволяют обеспечить наличие данных в системе Google обо всех страницах на вашем сайте, включая URL-адреса, которые невозможно обнаружить в ходе стандартного процесса сканирования Google.
Файлы Sitemap особенно полезны в следующих случаях.
На вашем сайте имеется динамическое содержание.
Ваш сайт содержит страницы, которые трудно обнаружить в процессе сканирования роботом Googlebot, например страницы, содержащие сложные файлы AJAX или Flash.
Ваш сайт новый и на него мало ссылок. (Робот Googlebot сканирует Интернет, переходя по ссылкам с одной страницы на другую. Если на ваш сайт мало ссылок, нам будет сложно его найти.)
Ваш сайт содержит большой архив содержательных страниц, которые слабо связаны друг с другом или не связаны совсем.
Можно также использовать файл Sitemap, чтобы предоставить дополнительную информацию о своих страницах, в том числе перечисленную ниже.
Частота изменений страниц вашего сайта. Например, страницу со сведениями о своей продукции можно обновлять ежедневно, тогда как страница «О компании» может изменяться раз в несколько месяцев.
Дата последнего обновления страницы.
Относительная значимость страниц сайта. Например, главная страница вашего сайта может иметь относительную значимость 1,0; страницы категорий — важность 0,8; а отдельные записи в блоге или страницы продукта — 0,5. Этот рейтинг приоритетов показывает важность определенного URL-адреса по отношению к другим URL-адресам вашего сайта и не влияет на рейтинг страниц в результатах поиска.
Файлы Sitemap предоставляют Google информацию, дополняющую наши стандартные методы сканирования Интернета. Мы надеемся, что с их помощью мы сможем осуществлять более полное и своевременное сканирование вашего сайта, однако мы не можем гарантировать добавление URL-адресов из вашего файла Sitemap в индекс Google. За отправку файлов Sitemap к сайтам не применяются никакие санкции.
… включая URL-адреса, которые невозможно обнаружить в ходе стандартного процесса сканирования Google...
В LiveStreet таких адресов нету. Гугла индексит и без этой мапы, хоть «поговаривают» что и медленней. Так что полезность этой штуки всё-таки под некоторым вопросом. Но однозначно эта штука не помешает.
хорошо, тогда такой вопрос, насколько этот скрипт будет нагружать движок при генерации sitemap?
и второй, как он работает — он каждый раз заново перегенерирует файл, либо по мере поступления добавляет новые адреса к существующим?
Я могу сказать точно, что гугла жрёт все, вообще всё… совсем всё. Аж страшно иногда становится, чего они (создатели, владельцы, серые человечки, или ещё кто-то) достигли. И что же Вы думаете, сайт мап вас спасёт? Ничего подобного, этим их не остановишь — их гугла будет всё равно (хочется Вам этого или нет) будет лазать по всем ссылкам Вашего сайта. Я гарантирую это! Я видел, я видел вереницы страниц, которые по идее не должны быть проиндексированы! Да как же Вы не понимаете, я говорю правду!
А хрен его знает — я не смотрел этот скрипт (если конечно вопрос этот адресован мне), а уж тем более в работе не видел. Только не подумайте, что и в этом случае от Вас что-то скрывают.
imho, для блогосоциального сервиса sitemap — абсурднейшее улучшение из всех, которые можно придумать. Идол seo, на который модно молиться последние несколько лет, внушил людям, далёким от продвижения, что в таких деталях кроется успех, а в контексте ЛС — польза.
Даже если не включать мозг, а просто поглядеть на успешные сервисы, можно увидеть, что их блоги отлично проиндексированы и без sitemap.
Ну с одной стороны молчание автора понятно, если включить логику — всё элемнтарно, а с другой это просто не красиво, выложиил модуль — так объясните людям до конца.
Кому нужен рабочий на 0.3.1 забирайте тут devilart.info/w3c/sitemap.rar — распакйте и прост оперезалейте :)
если интересно, пашет отлично devilart.info/sitemap.xml
спасибо за работу.
по поводу некрасиво: до выхода версии 0.3.1 мною не было замечено какого-либо заметного интереса к модулю, а делать что-то «в стол» я не планирую…
Залил на сервер версию для 3.1
Добавил в config.php — «define('SITEMAP_OBJECTS_PER_PAGE', 15000);»
в config.route.php — "'sitemap.xml' => 'ActionSitemap',
'sitemaps' => 'ActionSitemap',"
В итоге получаем следующее:
Parse error: syntax error, unexpected T_DOUBLE_ARROW in /home/docs/config/config.route.php on line 24
В чем может быть проблема?
Подскажи, пожалуйста, как заставить работать генератор? Делаю всё по инструкции — не работает! В какое конкретно место файла config.route.php прописать 'sitemaps' => 'ActionSitemap' и 'sitemap.xml' => 'ActionSitemap'? Заранее спасибо!
Warning: require_once(/home/domen/public_html/domen.ru/classes/actions/ActionSitemap.class.php) [function.require-once]: failed to open stream: Нет такого файла или каталога in /home/domen/public_html/domen.ru/classes/engine/Router.class.php on line 166
Fatal error: require_once() [function.require]: Failed opening required '/home/domen/public_html/domen.ru/classes/actions/ActionSitemap.class.php' (include_path='.:/usr/lib/php:/usr/local/lib/php:/home/domen/public_html/domen.ru:/home/domen/public_html/domen.ru/classes/engine:/home/domen/public_html/domen.ru/classes/lib/external/DklabCache:/home/domen/public_html/domen.ru/classes/modules/user') in /home/domen/public_html/domen.ru/classes/engine/Router.class.php on line 166
Хотя… я не к курсе может, но он выводит там 4 адреса с еще xml файлами…
Я (привыкший к карте для Joomla) представлял себе что это будет огромный список всех страниц на сайту по адресу mysite.ru/sitemap.xml…
Я отстал от жизни? теперь принято в карте указывать несколько адресов, где и находятся все эти ссылки?
Прошу прощения за необразованность заранее
Судя по наблюдениям ни у кого (кроме одного Devilа тут) ничего не получилось!?
Расскажи как скушал гугл этот сайт мап, а то я ничего не пойму, кроме как у вас, у остальных он даже и не генерируется???
Sitemap generator работает на версии 0.3.1.
Нужно скачать архив от Devil.
Внести изменения в 2 конфигурационных файла.
Папку habra в архиве в /templates/skin/ нужно переименовать в название папки вашего активного текущего скина. И при копировании учесть. что папка actions из корня архива копируется не в корень движка, а в папку classes, которая лежит в корне вашего сайта.
Cкормил урлы гуглу, вернее только sitemap.xml
Для всех, кроме одного (sitemaps/users/sitemap_1.xml) написал статус — ok.
В sitemaps/users/sitemap_1.xml ошибки типа
Неправильно введена дата
Обнаружена неверная дата. Исправьте дату или ее формат перед повторной передачей.
Родительский тег:
url
В sitemaps/users/sitemap_1.xml ошибки типа
Неправильно введена дата
Обнаружена неверная дата. Исправьте дату или ее формат перед повторной передачей.
Родительский тег:
url
В общем сам докопался:) Гугл ругался на неверный формат даты потому, что не все юзеры были активированы. Это дело прописано в файле classes/modules/sitemap/mapper/Sitemap.mapper.class.php в 78-й строке
pu.user_login, DATE(pu.user_date_activate) AS lastmod
Необходимо заменить эту строку на
pu.user_login, DATE(pu.user_date_register) AS lastmod
Я поменял и ошибки исчезли. Модуль пашет как надо.
Для всех, кроме одного (sitemaps/users/sitemap_1.xml) написал статус — ok.
да есть такое… а вот яндекс неделю не мог схавать. вроде съел но показывает ошибки типа: Некорректный URL (не соответствует местоположению файла Sitemap).
Недавно перешел на VPS, использую apache+nginx+memcached+eaccelerator, так вот на этом сайте — и гугл и яндекс начали выдавать ошибки 404 не найдено. Раньше на виртуальном все работало. Подскажите люди что могло повлиять?
В общем сам докопался, если кто использует VPS с apache+nginx и имеются проблемы с модулем sitemap-генератор — нужно в sites-enabled в nginx, убрать xml из обрабатываемых типов. Не знаю насколько это правильное решение, но сайтмап заработал. Если кто знает более эстетичное и грамотное решение буду очень благодарен.
Замечен важный баг. sitemaps/topics/sitemap_1.xml становиться белым листом если в базе более ~13к записей и в конфиге стоит define('SITEMAP_OBJECTS_PER_PAGE', 15000);
Выставил деление по 5000 и стало все нормально сразу (три листа — sitemaps/topics/sitemap_1.xml, sitemaps/topics/sitemap_2.xml, sitemaps/topics/sitemap_3.xml)
Гугел и яша щястливы, жаль заметил не сразу и недели полторы поисковики плохо обо мне думали…
Да. Модуль работает. Если кому интересно, пишу алгоритм установки. Мне он помог.
1. Качаем модуль отсюда
2. Разархивируем модуль в ваш_временный_каталог/.
3. Папку action переносим в папку classes
4. Папку templates/skin/habra переименовываем в templates/skin/new — (либо если на другой ваш скин который стоит у вас по умолчанию)
5. Из каталога /config тащим себе на комп два файла config.php и config.route.php
6. В config.php после строчки
Всем привет! У меня возникали раньше такие Вопросы!
Пока не купил программу по созданию качественного Сайтмапа!!!
и сей час создаю людям каторым надо1естественно не за даром! ибо прога…
вот ася пишите 490426524
цены зависят от массы сайтов!
Всем удачи!
…
Для поисковиков!!!
или тут humour-tyt.ru
Ошибка разбора
Мы не смогли прочитать ваш Sitemap. Возможно, он содержит нераспознаваемую для нас запись. Проверьте свой Sitemap перед тем, как передать его повторно.
помогите, пожалуйста. Ошибка, как и у вас:
«Мы не смогли прочитать ваш Sitemap. Возможно, он содержит нераспознаваемую для нас запись. Проверьте свой Sitemap перед тем, как передать его повторно.»
Что делать? Файл смотрел, вроде все ок.
Лежит сайтмап тут: www.lessonslearned.ru/sitemap.xml
Раньше читался нормально…
Долго мучился с неработоспособность модуля 0.4.
Дело оказалось, что в ActionPage.class.php код начинает с <?, и все, пока не поставил <?php ничего не работало=)
Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 4984309 bytes) in /home/www/dvarf/hudeem/engine/modules/cache/Cache.class.php on line 180
В конфиге уменьшил кол-во записей
$config['objects_per_page'] = 15000; // максимальное количество ссылок на одной странице карты
154 комментария
По реализации. Не хорошо делать прямые запросы к БД из экшена, вообще не хорошо :)
нужно создать модуль, что то типа sitemap, там сделать маппер и фасад к нему. В фасаде реализовать кеширование. Кеширование нужно, т.к. поисковиков на свете много. При файловом кеше проблем с местом под кеш не должно возникнуть, а memcached дропает старые данные если места нет под новый кеш.
где-то не так давно читал, что PHP — это не Java и концепция setter-getter на все свойства класса, которые дб приватными, не самый лучший выбор. В том же аналоге C++-го STL для php есть классы для перегрузки магических методов таким образом, чтобы к свойствам можно было обращаться, как к ассоциативным массивам по строковому ключу $oClass['propertyName'].
Неспорю, что когда ORM полностью автоматический, например, как в питоновской Джанге, где сначала пишется модель и на основе её формируется структура БД или наоборот сначала строится база и на ее основании генерится модель, как часто бывает в Яве, сеттеры и геттеры это мегаудобно.
Но раз автор архитектуры выссказался за полное ей соответствие, перепишу с мэппером.
Забыл отметить, что приучение генератора уму-разуму можно осуществить путем добавления бОльшего количества кеш-тегов в главном классе модуля.
по коду, модули инклудить не нужно — они автоматом подключаются. Там лишний инклуд и приватная переменная в экшене болтается =)
ну да пусть валяется. повтороного инклюда не случится, а переменная null-ом инициализируется.
поправил, сохрани топик занова
не режет =}
винда виста, причем лицензионная))
Для версии 0,1,2 в экшене надо закомментировать 9 строку. А так спасибо, вроде бы работает :)
Строчку, отключащую вывод ститистики убирать не стал, т.к. модуль расчитан на транковую версию ядра
При такой схеме Sitemap-ов в поисковые системы необходимо добавлять только индексный! Подскажите нужно ли создавать пустой файл sitemap.xml в корне сайта и что указывать при добавлении карты сайта в google?
Кстати, чтобы в ручную не добавлять сайтмэп в поисковики, можно в robots.txt прописать директиву
Sitemap: http://ВАШ_САЙТ/sitemap.xml
При попытке получения доступа к вашему файлу Sitemap возникла ошибка. Убедитесь в том, что Sitemap соответствует нашим правилам и к нему можно получить доступ в указанном местоположении, а затем выполните повторную отправку.
файл генерируется автоматически если все сделано как написано. проверено и мной и человеками в комментах выше, так что проверьте ничего ли не забыли. скорее всего в конфиг маршрутизатора забыли внести записи о обработке урлов нужного вида.
Попытался зайти на
Мы не смогли прочитать ваш Sitemap. Возможно, он содержит нераспознаваемую для нас запись. Проверьте свой Sitemap перед тем, как передать его повторно. Справка Проблема обнаружена: 05.10.2008
— Все URL в вашем файле Sitemap имеют одинаковый приоритет.
Все URL в вашем файле Sitemap имеют одинаковый приоритет (отличный от заданного по умолчанию). Приоритет указывает на важность отдельных URL относительно других URL на сайте. Он не влияет на эффективность вашего сайта в результатах поиска. Если все URL имеют одинаковый приоритет, Google не может отличить, какие из них более важные.
а что касается приоритетов, то можно отркыть файлы шаблонов (всех, кроме users) и высставить приоритет, который по-умолчанию использует гугл (насколько я помню, 0,5). и такое сообщение (а это не ошибка, а Warning — предупреждение) перестанет появляться.
Ресурс попал в индекс гугля, было доступно через site: более 200 страниц. Затем гугль загрузил сайтмап. После прошествии времени (видимо после обработки), из индекса вылетели все страницы кроме 5.
Затем в индекс потихоньку начали набиваться страницы. Сначала 13, потом 30, 35. Наблюдения какие. В индексе остались лишь главная, список блогов, и страницы по тегам, на которые можно было попасть с главной.
Затем после очередной загрузки и обработки сайтмапа, в индексе опять главная, теги, и избранные топики, на которые по гугль аналитикс совершенно более 20 переходов.
Я что сделал. Поскольку содержание топиков явно важнее для индексации, поставил в индексном сайтмапе, ссылку на сайтмап топиков на первое место. Приоритет топикам поставил 0.8, остальному 0.6. Вот и посмотрим, что будет.
А то у меня, к примеру, дата активации пустая…
ну подскажите пожалуйста, как под SVN подкорректировать
XML-файлы Sitemap, обычно называемые «Sitemap» (с заглавной буквы «S»), дают Google представление о вашем сайте. В данной статье обсуждается именно этот тип файлов Sitemap.
Проще говоря, файл Sitemap — это список страниц вашего веб-сайта. Создание и отправка файла Sitemap позволяют обеспечить наличие данных в системе Google обо всех страницах на вашем сайте, включая URL-адреса, которые невозможно обнаружить в ходе стандартного процесса сканирования Google.
Файлы Sitemap особенно полезны в следующих случаях.
На вашем сайте имеется динамическое содержание.
Ваш сайт содержит страницы, которые трудно обнаружить в процессе сканирования роботом Googlebot, например страницы, содержащие сложные файлы AJAX или Flash.
Ваш сайт новый и на него мало ссылок. (Робот Googlebot сканирует Интернет, переходя по ссылкам с одной страницы на другую. Если на ваш сайт мало ссылок, нам будет сложно его найти.)
Ваш сайт содержит большой архив содержательных страниц, которые слабо связаны друг с другом или не связаны совсем.
Можно также использовать файл Sitemap, чтобы предоставить дополнительную информацию о своих страницах, в том числе перечисленную ниже.
Частота изменений страниц вашего сайта. Например, страницу со сведениями о своей продукции можно обновлять ежедневно, тогда как страница «О компании» может изменяться раз в несколько месяцев.
Дата последнего обновления страницы.
Относительная значимость страниц сайта. Например, главная страница вашего сайта может иметь относительную значимость 1,0; страницы категорий — важность 0,8; а отдельные записи в блоге или страницы продукта — 0,5. Этот рейтинг приоритетов показывает важность определенного URL-адреса по отношению к другим URL-адресам вашего сайта и не влияет на рейтинг страниц в результатах поиска.
Файлы Sitemap предоставляют Google информацию, дополняющую наши стандартные методы сканирования Интернета. Мы надеемся, что с их помощью мы сможем осуществлять более полное и своевременное сканирование вашего сайта, однако мы не можем гарантировать добавление URL-адресов из вашего файла Sitemap в индекс Google. За отправку файлов Sitemap к сайтам не применяются никакие санкции.
В LiveStreet таких адресов нету. Гугла индексит и без этой мапы, хоть «поговаривают» что и медленней. Так что полезность этой штуки всё-таки под некоторым вопросом. Но однозначно эта штука не помешает.
и второй, как он работает — он каждый раз заново перегенерирует файл, либо по мере поступления добавляет новые адреса к существующим?
А хрен его знает — я не смотрел этот скрипт (если конечно вопрос этот адресован мне), а уж тем более в работе не видел. Только не подумайте, что и в этом случае от Вас что-то скрывают.
Даже если не включать мозг, а просто поглядеть на успешные сервисы, можно увидеть, что их блоги отлично проиндексированы и без sitemap.
Представил себе сайтмапы жж и майспейса и…
И затихли, напрягают голову наверное.
Кому нужен рабочий на 0.3.1 забирайте тут
если интересно, пашет отлично
по поводу некрасиво: до выхода версии 0.3.1 мною не было замечено какого-либо заметного интереса к модулю, а делать что-то «в стол» я не планирую…
Добавил в config.php — «define('SITEMAP_OBJECTS_PER_PAGE', 15000);»
в config.route.php — "'sitemap.xml' => 'ActionSitemap',
'sitemaps' => 'ActionSitemap',"
В итоге получаем следующее:
Parse error: syntax error, unexpected T_DOUBLE_ARROW in /home/docs/config/config.route.php on line 24
В чем может быть проблема?
Удали двоные ковычки.
Или же надо сюда вставлять?!
Но тогда
Подскажи, пожалуйста, как заставить работать генератор? Делаю всё по инструкции — не работает! В какое конкретно место файла config.route.php прописать 'sitemaps' => 'ActionSitemap' и 'sitemap.xml' => 'ActionSitemap'? Заранее спасибо!
иногда бывает и такой вариант
:)
А надо его закачивать в папку classes/actions/
поэтому и была ошибка…
однако теперь когда ошибки нету — нормально карта сайта так и не генерируется!
Я (привыкший к карте для Joomla) представлял себе что это будет огромный список всех страниц на сайту по адресу mysite.ru/sitemap.xml…
Я отстал от жизни? теперь принято в карте указывать несколько адресов, где и находятся все эти ссылки?
Прошу прощения за необразованность заранее
Очень помог! Сразу все заработало :)
Расскажи как скушал гугл этот сайт мап, а то я ничего не пойму, кроме как у вас, у остальных он даже и не генерируется???
Конечно не с 1-го раза но сайт-мап заработал.
Выдал, что то о типа
Кому интересно, как это сделать. Читайте внимательно каменты товарища Devil и скачайте выложынный им архив и все получится.
Devil-у отдельное спасибо
Нужно скачать архив от Devil.
Внести изменения в 2 конфигурационных файла.
Папку habra в архиве в /templates/skin/ нужно переименовать в название папки вашего активного текущего скина. И при копировании учесть. что папка actions из корня архива копируется не в корень движка, а в папку classes, которая лежит в корне вашего сайта.
ооо! заработало! пасибо!
Для всех, кроме одного (sitemaps/users/sitemap_1.xml) написал статус — ok.
В sitemaps/users/sitemap_1.xml ошибки типа
Неправильно введена дата
Обнаружена неверная дата. Исправьте дату или ее формат перед повторной передачей.
Родительский тег:
url
Народ, кто нибудь решил проблему с этой ошибкой?
думаю что надо просто убрать или заполнить его. выбирайте вариант, раскажу как сделать.
да есть такое… а вот яндекс неделю не мог схавать. вроде съел но показывает ошибки типа: Некорректный URL (не соответствует местоположению файла Sitemap).
А вот Яша дооооолго думал, но все же все прохавал и ошибок не выдает
PS суть в том что сайтмап выдает ссылки по старому вида «blog/247.html» а хотелось бы с чпу
в skin/____/actions/ActionSitemap/topics.tpl
$oItem.topic_id меняем на $oItem.topic_url
и в classes/modules/sitemap/mapper/Sitemap.mapper.class.php
дописываем
нужно поменять вот так
чтобы соответствовать топику
Все сделал по интсрукции… Прочитал все комменты.
Дает такое вот:
Выставил деление по 5000 и стало все нормально сразу (три листа — sitemaps/topics/sitemap_1.xml, sitemaps/topics/sitemap_2.xml, sitemaps/topics/sitemap_3.xml)
Гугел и яша щястливы, жаль заметил не сразу и недели полторы поисковики плохо обо мне думали…
1. Качаем модуль
2. Разархивируем модуль в ваш_временный_каталог/.
3. Папку action переносим в папку classes
4. Папку templates/skin/habra переименовываем в templates/skin/new — (либо если на другой ваш скин который стоит у вас по умолчанию)
5. Из каталога /config тащим себе на комп два файла config.php и config.route.php
6. В config.php после строчки
добавляем
7.В config.route.php после строчки
добавляем
8. Идём по адресу (вместо моего сайта естественно ставится ваш)
И любуемся такой вот строчкой:
Пока не купил программу по созданию качественного Сайтмапа!!!
и сей час создаю людям каторым надо1естественно не за даром! ибо прога…
вот ася пишите 490426524
цены зависят от массы сайтов!
Всем удачи!
…
Для поисковиков!!!
или тут humour-tyt.ru
Одно только замечание. Или сервер не выдает заголовки, или браузер не читает, но лучше принудительно выдать header в каждом шаблоне в начале дописать:
помогите, пожалуйста. Ошибка, как и у вас:
«Мы не смогли прочитать ваш Sitemap. Возможно, он содержит нераспознаваемую для нас запись. Проверьте свой Sitemap перед тем, как передать его повторно.»
Что делать? Файл смотрел, вроде все ок.
Лежит сайтмап тут:
Раньше читался нормально…
С уважением,
Алексей
Лично от меня, большая благодарность вам!
модуль в каталоге уже есть.
Дело оказалось, что в ActionPage.class.php код начинает с <?, и все, пока не поставил <?php ничего не работало=)
hudeem-tyt.ru/sitemap_topics_1.xml
Выдает:
Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 4984309 bytes) in /home/www/dvarf/hudeem/engine/modules/cache/Cache.class.php on line 180
В конфиге уменьшил кол-во записей
$config['objects_per_page'] = 15000; // максимальное количество ссылок на одной странице карты
отчистил кэш, а результат тот же. Как быть?
заработало