Sitemap-генаратор

Написал на коленке небольшой 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. Добавить в конфиг роутера отображение УРЛа на экшн,
'sitemap.xml' => 'ActionSitemap',
'sitemaps' => 'ActionSitemap',

3. Распаковать содержимое архива с сохранением путей в веб-рут сайта.

Важное примечание:
При такой схеме Sitemap-ов в поисковые системы необходимо добавлять только индексный!

154 комментария

avatar
Молодец. Делись, включу в дистриб =)
По реализации. Не хорошо делать прямые запросы к БД из экшена, вообще не хорошо :)
нужно создать модуль, что то типа sitemap, там сделать маппер и фасад к нему. В фасаде реализовать кеширование. Кеширование нужно, т.к. поисковиков на свете много. При файловом кеше проблем с местом под кеш не должно возникнуть, а memcached дропает старые данные если места нет под новый кеш.
  • ort
  • +2
avatar
нуу. можно.

где-то не так давно читал, что PHP — это не Java и концепция setter-getter на все свойства класса, которые дб приватными, не самый лучший выбор. В том же аналоге C++-го STL для php есть классы для перегрузки магических методов таким образом, чтобы к свойствам можно было обращаться, как к ассоциативным массивам по строковому ключу $oClass['propertyName'].

Неспорю, что когда ORM полностью автоматический, например, как в питоновской Джанге, где сначала пишется модель и на основе её формируется структура БД или наоборот сначала строится база и на ее основании генерится модель, как часто бывает в Яве, сеттеры и геттеры это мегаудобно.

Но раз автор архитектуры выссказался за полное ей соответствие, перепишу с мэппером.
avatar
setter-getter это уже на усмотрение, фасад(мапеер) может возвращать и массив. Т.е. создавать классы сущностей в таком случаи не обязательно
avatar
ап в эфире :)

Забыл отметить, что приучение генератора уму-разуму можно осуществить путем добавления бОльшего количества кеш-тегов в главном классе модуля.
  • kruft
  • 0
avatar
отлично, полностью еще не посмотрел, но уже похвально :) Надо включить в дистриб
по коду, модули инклудить не нужно — они автоматом подключаются. Там лишний инклуд и приватная переменная в экшене болтается =)
  • ort
  • 0
avatar
упс, упустил при очистке от первой версии без мэппера.

ну да пусть валяется. повтороного инклюда не случится, а переменная null-ом инициализируется.
avatar
да, и сделай плиз кат
  • ort
  • 0
avatar
есть кат. можешь удостовериться в базе. но не режет :(
  • kruft
  • 0
avatar
да точно, ты видимо текст набирал в блокноте или еще где.
поправил, сохрани топик занова
avatar
несколько раз пересохранял. с изменением, и без, текста.
не режет =}
avatar
аа ну да ) я же на сайте не обновил ) ща…
avatar
набирал, кстати, прямо тут. в техтарее добавления топика
avatar
видимо у тебя не винда
avatar
готово
avatar
о. теперь катнулось :)

винда виста, причем лицензионная))
avatar
не понятнаа, у меня также виста лиценз
avatar
В архиве перенесите actions в classes.
Для версии 0,1,2 в экшене надо закомментировать 9 строку. А так спасибо, вроде бы работает :)
avatar
исправленный архив.

Строчку, отключащую вывод ститистики убирать не стал, т.к. модуль расчитан на транковую версию ядра
avatar
Ясно. Почему-то гугль выдает ошибки парсинга для 3 сайтмапов, кроме сайтмама users…
avatar
какие-нибудь подробности пишет?
avatar
просто все шаблоны практически одинаковы, за исключением самих УРЛов и приоритетов
avatar
Да, действительно вся загвоздка была в HackerConsole, которая по-умолчанию включена в 0,1,2. Отключил, теперь все ок, только предупреждения о одинаковых приоритетах.
avatar
Везде эрроры на закрывающемся теге. Убрал вывод HackerConsole, посмотрим что будет, может это из-за него.
avatar

При такой схеме Sitemap-ов в поисковые системы необходимо добавлять только индексный! Подскажите нужно ли создавать пустой файл sitemap.xml в корне сайта и что указывать при добавлении карты сайта в google?
avatar
В поисковики добавлять САЙТ/sitemap.xml, но создавать его не нужно, он генерируется динамически…
avatar

Кстати, чтобы в ручную не добавлять сайтмэп в поисковики, можно в robots.txt прописать директиву
Sitemap: http://ВАШ_САЙТ/sitemap.xml
avatar
У меня ничего не генерируется, в файлах прописал как указано в начале поста, архив распаковал и загрузил, гуглу указал multiblog.ru/sitemap.xml В гугле выдает ошибку: Общая ошибка HTTP: 404 Не найдено
При попытке получения доступа к вашему файлу Sitemap возникла ошибка. Убедитесь в том, что Sitemap соответствует нашим правилам и к нему можно получить доступ в указанном местоположении, а затем выполните повторную отправку.
avatar
Такого файла на сайте действительно нет :)
avatar
файлы не генерируются статически… точно также если у топиков урл имеет вид блаблабла.html это не значит, что это настоящие файлы и они лежат в папках с названием блога.
файл генерируется автоматически если все сделано как написано. проверено и мной и человеками в комментах выше, так что проверьте ничего ли не забыли. скорее всего в конфиг маршрутизатора забыли внести записи о обработке урлов нужного вида.
avatar
я пока что не ставил, сегодня вечером займусь.
Попытался зайти на multiblog.ru/sitemap.xml, и увидел что гугл был прав, такого файла нет. :)
avatar
его не нет, а v2nek не полностью выполнил установку модуля…
avatar
эх… я его вообще еще не устанавливал.
avatar
не туда глянул. само собой не ты, а автор с чего началась текущая ветка комментов, т.е. yuri25. сорри :)
avatar
Да, я виноват, сам ступил, не добавил в конфиги. На другом все сделал как сказано, однако в гугле пишет такие ошибки и предупреждения: Ошибка разбора
Мы не смогли прочитать ваш Sitemap. Возможно, он содержит нераспознаваемую для нас запись. Проверьте свой Sitemap перед тем, как передать его повторно. Справка Проблема обнаружена: 05.10.2008
— Все URL в вашем файле Sitemap имеют одинаковый приоритет.
Все URL в вашем файле Sitemap имеют одинаковый приоритет (отличный от заданного по умолчанию). Приоритет указывает на важность отдельных URL относительно других URL на сайте. Он не влияет на эффективность вашего сайта в результатах поиска. Если все URL имеют одинаковый приоритет, Google не может отличить, какие из них более важные.
avatar
во-первых, если используется версия не из транка (последняя релизная), то требуется отключить хакерскую консоль и вывод статистики внизу страницы в глобальном конфиге.
а что касается приоритетов, то можно отркыть файлы шаблонов (всех, кроме users) и высставить приоритет, который по-умолчанию использует гугл (насколько я помню, 0,5). и такое сообщение (а это не ошибка, а Warning — предупреждение) перестанет появляться.
avatar
версия используется из trunk, подскажи пожалуйста где и как в файлах шаблонов выставить приоритет… я что то не вкурил насчет этого.
avatar
templates/skins/habra/Actions/ActionSitemap/ там
avatar
По своему наблюдению могу сказать, что гугль не очень «любит» такой сайтмап. Сейчас поясню, как у меня с ресурсом было.
Ресурс попал в индекс гугля, было доступно через site: более 200 страниц. Затем гугль загрузил сайтмап. После прошествии времени (видимо после обработки), из индекса вылетели все страницы кроме 5.

Затем в индекс потихоньку начали набиваться страницы. Сначала 13, потом 30, 35. Наблюдения какие. В индексе остались лишь главная, список блогов, и страницы по тегам, на которые можно было попасть с главной.

Затем после очередной загрузки и обработки сайтмапа, в индексе опять главная, теги, и избранные топики, на которые по гугль аналитикс совершенно более 20 переходов.

Я что сделал. Поскольку содержание топиков явно важнее для индексации, поставил в индексном сайтмапе, ссылку на сайтмап топиков на первое место. Приоритет топикам поставил 0.8, остальному 0.6. Вот и посмотрим, что будет.
avatar
Ну как, помогло??? У меня точно такая же ситуация!
avatar
Отчасти, но все равно гугля восновном теги проиндексировала, нужно копать в сторону шаблона главной страницы и что-то менять.
avatar
я пока выложенные шаблоны не могу проверить в боевых условиях, т.к сайт еще не запущен, но делал я их по аналогии с существующим сайтом и документацией гугл на сайтмэпы
avatar
Кстати, может быть имеет смысл заменить у пользователей дату на дату последнего посещения…
А то у меня, к примеру, дата активации пустая…
avatar
ну это легко в мэппере реализуется :) в запросе одно слово заменить
avatar
парни, как обстоит дело с сайтмапом Димы Кратфа и гуглом? прошло достаточно времени, какие результаты?
avatar
пока молчите, выскажу пару мыслей. пошерстил несколько сайтов, так так в основном в сайтмапах указаны ссылки на топики, потом по приоритету главная страница, потом разделы (заглавные блогов, форумов), ссылки на профайлы пользователей никто не указывает. ну кто-то же сдалал сайтмап, Дима ау!
avatar
уберите из индексного шаблона ссылки на профайлы и усе :)
avatar
да блин, меня вот эта проблема интересует
avatar
совсем запутали ;(
avatar
Ребят, ну совсем не серьезно))
ну подскажите пожалуйста, как под SVN подкорректировать
  • sova
  • 0
avatar
ничего не понял из ващего сарказма, так получится сделать под svn или нет?
  • dred
  • 0
avatar
пожалуйста, помогите… svn 274
  • sova
  • 0
avatar
Ну так, кто под 0.3 доделает?
avatar
А как все хорошо начиналось… уважаемый ort в первом комментарии сказал «Молодец. Делись, включу в дистриб =)» Я не понял дальнейших шуток, сарказмов и ерничаний… ведь эта штука полезная для наших проектов. Kruft сделай пожалуйста нормальный модуль под 0.3.1 сделай хоть платный тогда, уверен многие купят.
avatar
А в чём Вы видите пользу этой штуки? Интересуюсь так сказать для «общего развития».
avatar
Копипаст, но тем не менее:
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 к сайтам не применяются никакие санкции.
avatar
Благодарю за цитату.

… включая URL-адреса, которые невозможно обнаружить в ходе стандартного процесса сканирования Google...


В LiveStreet таких адресов нету. Гугла индексит и без этой мапы, хоть «поговаривают» что и медленней. Так что полезность этой штуки всё-таки под некоторым вопросом. Но однозначно эта штука не помешает.
avatar
хорошо, тогда такой вопрос, насколько этот скрипт будет нагружать движок при генерации sitemap?
и второй, как он работает — он каждый раз заново перегенерирует файл, либо по мере поступления добавляет новые адреса к существующим?
avatar
Я могу сказать точно, что гугла жрёт все, вообще всё… совсем всё. Аж страшно иногда становится, чего они (создатели, владельцы, серые человечки, или ещё кто-то) достигли. И что же Вы думаете, сайт мап вас спасёт? Ничего подобного, этим их не остановишь — их гугла будет всё равно (хочется Вам этого или нет) будет лазать по всем ссылкам Вашего сайта. Я гарантирую это! Я видел, я видел вереницы страниц, которые по идее не должны быть проиндексированы! Да как же Вы не понимаете, я говорю правду!

А хрен его знает — я не смотрел этот скрипт (если конечно вопрос этот адресован мне), а уж тем более в работе не видел. Только не подумайте, что и в этом случае от Вас что-то скрывают.
avatar
imho, для блогосоциального сервиса sitemap — абсурднейшее улучшение из всех, которые можно придумать. Идол seo, на который модно молиться последние несколько лет, внушил людям, далёким от продвижения, что в таких деталях кроется успех, а в контексте ЛС — польза.

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

Представил себе сайтмапы жж и майспейса и…
avatar
В том то и дело. Сарказничали и насмеивались, а как попытались прикрутить к 0.3.1 возникли проблемы.

И затихли, напрягают голову наверное.
avatar
Ну с одной стороны молчание автора понятно, если включить логику — всё элемнтарно, а с другой это просто не красиво, выложиил модуль — так объясните людям до конца.
Кому нужен рабочий на 0.3.1 забирайте тут devilart.info/w3c/sitemap.rar — распакйте и прост оперезалейте :)
если интересно, пашет отлично devilart.info/sitemap.xml
avatar
спасибо за работу.
по поводу некрасиво: до выхода версии 0.3.1 мною не было замечено какого-либо заметного интереса к модулю, а делать что-то «в стол» я не планирую…
avatar
в двух файлах добавить по 4 символа и перезалить это титанический труд? :) Интерес к модлю всегда есть :) Спасибо вм за него кстати большое :)
avatar
пожалуйста :)
avatar
Просто залить и ничего не править (по инструкции в топике)? Или же поправить конфиг и конфиг роутера? Чё-то ни так ни так не работает((
avatar
Выложи, пожалуйста, в модули. Ато ваш хостер в своём духе, скачать нельзя :(
avatar
Залил на сервер версию для 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
В чем может быть проблема?
avatar
"
в этом, вот тут "'sitemap.xml' => 'ActionSitemap',
Удали двоные ковычки.
avatar
Попробовал тоже, как предыдущий комментатор вставить в начало файла, без ковычек лишних — та же фигня…

Или же надо сюда вставлять?!

'config' => array(
	'action_default' => ROUTE_PAGE_INDEX,
	'action_not_found' => ROUTE_PAGE_ERROR,
	'sitemap.xml' => 'ActionSitemap',
	'sitemaps' => 'ActionSitemap',


Но тогда www.avtoturistu.ru/sitemap.xml не виден! Подскажите, пожалуйста, людям не сведущим в PHP, но желающим установить-таки генератор!
avatar
Devil!

Подскажи, пожалуйста, как заставить работать генератор? Делаю всё по инструкции — не работает! В какое конкретно место файла config.route.php прописать 'sitemaps' => 'ActionSitemap' и 'sitemap.xml' => 'ActionSitemap'? Заранее спасибо!
avatar
ROUTE_PAGE_SEARCH => 'ActionSearch',
		'sitemap.xml' => 'ActionSitemap',
                'sitemaps' => 'ActionSitemap',

иногда бывает и такой вариант
ROUTE_PAGE_SEARCH => 'ActionSearch',
		<b>'tools' => 'ActionTools',</b>
		'sitemap.xml' => 'ActionSitemap',
        'sitemaps' => 'ActionSitemap',


:)
avatar
все делал как написано:
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
avatar
У вас в архиве actions лежит прямо в корне!
А надо его закачивать в папку classes/actions/
поэтому и была ошибка…

однако теперь когда ошибки нету — нормально карта сайта так и не генерируется!
avatar
Хотя… я не к курсе может, но он выводит там 4 адреса с еще xml файлами…
Я (привыкший к карте для Joomla) представлял себе что это будет огромный список всех страниц на сайту по адресу mysite.ru/sitemap.xml…
Я отстал от жизни? теперь принято в карте указывать несколько адресов, где и находятся все эти ссылки?
Прошу прощения за необразованность заранее
avatar
Не знаю чего вы там сделали но гугл отказался кушать этот xml
avatar
Devil, спасибо за мод, твой комментарий со строками


ROUTE_PAGE_SEARCH => 'ActionSearch',
                'sitemap.xml' => 'ActionSitemap',
                'sitemaps' => 'ActionSitemap',

Очень помог! Сразу все заработало :)
avatar
поставил по инструкций ничего непроисходит скрипт неработает! и по адресу mysite.ru/sitemap.xml ничего нету. а откуда xml файл возьметьсято кстати?
  • den
  • +2
avatar
Судя по наблюдениям ни у кого (кроме одного Devilа тут) ничего не получилось!?
Расскажи как скушал гугл этот сайт мап, а то я ничего не пойму, кроме как у вас, у остальных он даже и не генерируется???
avatar
все работает как и должно — и гугл и яндекс нормально все файлы сайтмепа и гугл по нему уже вовсю ходит
avatar
что-то белая страница — не отображается по адресу mysite.ru/sitemap.xml
avatar
значит не правильно настроили… например, не прописали необходимые опции в настройки роутера
avatar
Странно, но я тоже всё согласно инструкции делал и… Глухо!
avatar
Как ни странно, но у меня получилось.
Конечно не с 1-го раза но сайт-мап заработал.
Выдал, что то о типа
site.net/sitemaps/general/sitemap_1.xml site.net/sitemaps/topics/sitemap_1.xml site.net/sitemaps/users/sitemap_1.xml
Кому интересно, как это сделать. Читайте внимательно каменты товарища Devil и скачайте выложынный им архив и все получится.
Devil-у отдельное спасибо
  • vp2
  • 0
avatar
Sitemap generator работает на версии 0.3.1.
Нужно скачать архив от Devil.
Внести изменения в 2 конфигурационных файла.
Папку habra в архиве в /templates/skin/ нужно переименовать в название папки вашего активного текущего скина. И при копировании учесть. что папка actions из корня архива копируется не в корень движка, а в папку classes, которая лежит в корне вашего сайта.
avatar
Папку habra в архиве в /templates/skin/ нужно переименовать в название папки вашего активного текущего скина.

ооо! заработало! пасибо!
avatar
а в Веб Мастер все добавлять sitemap?
  • F-5
  • 0
avatar
вот такая еще штукенция беспокоит:

http://site.ru/tag/спутник
avatar
Cкормил урлы гуглу, вернее только sitemap.xml
Для всех, кроме одного (sitemaps/users/sitemap_1.xml) написал статус — ok.
В sitemaps/users/sitemap_1.xml ошибки типа
Неправильно введена дата
Обнаружена неверная дата. Исправьте дату или ее формат перед повторной передачей.
Родительский тег:
url
avatar
У меня тоже заработало и аналогичная проблема, как у p_khardikov
avatar
В sitemaps/users/sitemap_1.xml ошибки типа
Неправильно введена дата
Обнаружена неверная дата. Исправьте дату или ее формат перед повторной передачей. 
Родительский тег:
url

Народ, кто нибудь решил проблему с этой ошибкой?
avatar
Народ, кто использует sitemap помогите решить проблему с неверной датой, пожалуйста.
avatar
я незнаю что гугло конкретно надо, сейчас в юзерах идет так —

	<url> 
		<loc>http://sovetov.no-ip.org/my/ASovetov/</loc> 
		<lastmod></lastmod> 
		<priority>0.9</priority> 
	</url>



думаю что надо просто убрать или заполнить его. выбирайте вариант, раскажу как сделать.
avatar
Расскажи пожалуйста оба варианта или хотя бы как заполнить. Главное, чтобы ошибок не выдавало.
avatar
В общем сам докопался:) Гугл ругался на неверный формат даты потому, что не все юзеры были активированы. Это дело прописано в файле 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
Я поменял и ошибки исчезли. Модуль пашет как надо.
avatar
Для всех, кроме одного (sitemaps/users/sitemap_1.xml) написал статус — ok.

да есть такое… а вот яндекс неделю не мог схавать. вроде съел но показывает ошибки типа: Некорректный URL (не соответствует местоположению файла Sitemap).
avatar
Все получилось! Спасибо! Отдал поисковикам, будем ждать!
avatar
Да у меня такая же ситуация как и у Вас с google
А вот Яша дооооолго думал, но все же все прохавал и ошибок не выдает
  • vp2
  • 0
avatar
Если несложно раскажите что ковырнуть чтоб рабоаоло с хаком ЧПУ и ЧПУ блога предлогаеться автоматически для людей а то гугла очень недоволен, а времени разобраться сейчас нету, работа без выходных. Спасибо.

PS суть в том что сайтмап выдает ссылки по старому вида «blog/247.html» а хотелось бы с чпу
avatar
отвечу сам себе, все решилось двумя действиями:
в skin/____/actions/ActionSitemap/topics.tpl
$oItem.topic_id меняем на $oItem.topic_url

и в classes/modules/sitemap/mapper/Sitemap.mapper.class.php

дописываем

public function getAllTopicList($from){

		$sql = '

		SELECT 

			pt.topic_id, pt.topic_url, DATE(IF(pt.topic_date
                                   ^^^^^^^^^^^
avatar
Только скорее topics.tpl
нужно поменять вот так
<loc>{$DIR_WEB_ROOT}/blog/{$oItem.blogURL}{$oItem.topic_id}/{$oItem.topic_url}.html</loc>

чтобы соответствовать топику «Человеко Понятные Урлы»
avatar
Добавьте пожалуйста еще один event: tags — выдает Sitemap на тэги в коллективных и публичных блогах.
  • Mdm
  • 0
avatar
Было бы замечательно, но видимо модуль заброшен… :(
avatar
Не прет =(
Все сделал по интсрукции… Прочитал все комменты.

Дает такое вот:
Fatal error: Class 'LsSitemap' not found in /home/dom/domains/dom.com/public_html/classes/engine/Engine.class.php on line 98


avatar
avatar
Не ожидано… Спасибо большое!
avatar
люди, поставил Sitemap в google на sitemap.xml
  • PAN
  • 0
avatar
и ещё sitemaps/users/sitemap_1.xml напростив воскл знак.
avatar
Недавно перешел на VPS, использую apache+nginx+memcached+eaccelerator, так вот на этом сайте — и гугл и яндекс начали выдавать ошибки 404 не найдено. Раньше на виртуальном все работало. Подскажите люди что могло повлиять?
avatar
В общем сам докопался, если кто использует VPS с apache+nginx и имеются проблемы с модулем sitemap-генератор — нужно в sites-enabled в nginx, убрать xml из обрабатываемых типов. Не знаю насколько это правильное решение, но сайтмап заработал. Если кто знает более эстетичное и грамотное решение буду очень благодарен.
avatar
Замечен важный баг. 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)

Гугел и яша щястливы, жаль заметил не сразу и недели полторы поисковики плохо обо мне думали…
avatar
Да. Модуль работает. Если кому интересно, пишу алгоритм установки. Мне он помог.
1. Качаем модуль отсюда
2. Разархивируем модуль в ваш_временный_каталог/.
3. Папку action переносим в папку classes
4. Папку templates/skin/habra переименовываем в templates/skin/new — (либо если на другой ваш скин который стоит у вас по умолчанию)
5. Из каталога /config тащим себе на комп два файла config.php и config.route.php
6. В config.php после строчки
define('LANG_CURRENT','russian'); // Текущий язык

добавляем
define('SITEMAP_OBJECTS_PER_PAGE', 15000);

7.В config.route.php после строчки
ROUTE_PAGE_SEARCH => 'ActionSearch',

добавляем
'sitemap.xml' => 'ActionSitemap',
        'sitemaps' => 'ActionSitemap',

8. Идём по адресу (вместо моего сайта естественно ставится ваш) www.ваш_сайт.ru/sitemap.xml
И любуемся такой вот строчкой:
www.ваш_сайт.ru/sitemaps/general/sitemap_1.xml www.ваш_сайт.ru/sitemaps/blogs/sitemap_1.xml www.ваш_сайт.ru/sitemaps/topics/sitemap_1.xml www.ваш_сайт.ru/sitemaps/users/sitemap_1.xml
avatar
Перед пунктом 8 естественно заливаем все файлы сохраняя созданную структуру себе на сервак ))
avatar
Под 0.4 переделывать будешь?
avatar
Всем привет! У меня возникали раньше такие Вопросы!
Пока не купил программу по созданию качественного Сайтмапа!!!
и сей час создаю людям каторым надо1естественно не за даром! ибо прога…
вот ася пишите 490426524
цены зависят от массы сайтов!
Всем удачи!

Для поисковиков!!!
или тут humour-tyt.ru
avatar
а если установлен модуль «Поддомены для юзера и коллективного блога» — что нужно подправить чтобы карта сайта выводила ссылки в виде поддоменов?
avatar
А можно сделать карту сайта так, чтобы результат был не в XML, а в отдельной странице? sape xml не принимает :(
avatar
Спасибо. Все сделал как доктор прописал

Одно только замечание. Или сервер не выдает заголовки, или браузер не читает, но лучше принудительно выдать header в каждом шаблоне в начале дописать:
{php}header('Content-type: application/xml; charset="UTF-8"', true);{/php}
avatar
Ошибка разбора
Мы не смогли прочитать ваш Sitemap. Возможно, он содержит нераспознаваемую для нас запись. Проверьте свой Sitemap перед тем, как передать его повторно.
Google не берёт
avatar
Коллеги,

помогите, пожалуйста. Ошибка, как и у вас:
«Мы не смогли прочитать ваш Sitemap. Возможно, он содержит нераспознаваемую для нас запись. Проверьте свой Sitemap перед тем, как передать его повторно.»
Что делать? Файл смотрел, вроде все ок.
Лежит сайтмап тут: www.lessonslearned.ru/sitemap.xml
Раньше читался нормально…

С уважением,
Алексей
avatar
очень нужно под 0.4! что делать?
avatar
там работы на пару минут — самому можно портировать на версию 0.4
avatar
ты ошибаешься. я попробовал — там далеко не на пару минут.
avatar
смешно аж )))) если не забуду — завтра выложу обновленный вариант
avatar
оформил этот модуль в виде плагина под v.0.4
avatar
если автор не против, то могу выложить его в public репозитории
avatar
конечно не против!
avatar
avatar
Уважаемый, добавьте модуль в каталог.
Лично от меня, большая благодарность вам!
avatar
сори.
модуль в каталоге уже есть.
avatar
Долго мучился с неработоспособность модуля 0.4.
Дело оказалось, что в ActionPage.class.php код начинает с <?, и все, пока не поставил <?php ничего не работало=)
avatar
Столкнулся с такой проблемой, залез проверить как там оно внутри все, все вроде бодро кроме одного файла:

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; // максимальное количество ссылок на одной странице карты

отчистил кэш, а результат тот же. Как быть?
avatar
$config['objects_per_page'] = 300; // максимальное количество ссылок на одной странице карты

заработало
avatar
археолог?
avatar
эээ… некропостер в смысле? вроде не… прост так получилось.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.