phpBB Google Sitemap Gen

Изучая различные материалы по SEO узнал о существовании файла sitemap, который используют некоторые поисковые роботы для оптимизации индексирования страниц. Хотя почитав форумы и отзывы, сложилось впечатление, что эффект от размещения данного файла не слишком велик, но ничто не мешает его использовать - больше не значит хуже.
Синтаксис файла довольно прост и представляет собой обычный xml-файл с небольшим количеством стандартных тегов, которые описывают каждую страницу в виде ссылки с дополнительными параметрами, из которых особый интерес представляют – частота обновления (<changefreq>) и приоритет (<priority>). Подробно можно почитать на гугле или на официальном сайте протокола.
Сайтом, который был взят как тестовый стенд, но с реальной информацией и определенной посещаемостью, стал – www.v13.ru. Так как это сайт игровой гильдии, то как такового контента на нём нет, но есть форум и несколько страниц с дополнительными игровыми модулями (DKP-таблицы и запись на рейды). И тут я столкнулся с первой проблемой – как отображать в одном sitemap файле статичную и динамическую информацию (ссылки на разделы сайта и ссылки на топики форума).
Всё оказалось довольно просто – помимо самого sitemap, есть так называемый sitemapindex – который ссылается на другие файлы sitemap, но находится все файлы должны в пределах одного домена.
Следующее, что заставило задуматься – как получить файл sitemap для форума phpBB, на котором около десяти разделов и более тысячи топиков. Понятное дело, что делать это руками – дело глупое и неблагодарное, поэтому был применен поиск и найдены несколько скриптов, которые создают файл из данных БД, но при ближайшем рассмотрении все они были отброшены, потому как либо делали слишком много лишнего (неоптимизированные запросы к БД), либо требовали доработки (привязка с имени таблиц по умолчанию).
Решено было написать свой скрипт, который можно скачать по ссылке (phpBB sitemap gen v.0.0.8.rar).

Что его отличает от аналогичных скриптов?

· Автоматическое определение УРЛ форума и имён таблиц в БД

· Выдача разделов и топиков форума

· Определение частоты обновления и приоритета топиков

· Установка простым копированием файла скрипта

Когда писал скрипт, то задумался – по какому критерию определить частоту обновления и приоритет для каждого топика. В итоге решил вычислять частоту обновления от даты последнего комментария (<7 дней – daily, <30 – weekly и т.д.), а приоритет в зависимости от количества просмотров топика в отношении к среднему и максимальному количеству просмотров на форуме.

=========================
Изменения в версии v.0.0.7:
1. Исправлен баг в работе скрипта, при наличии мода Advanced post merging
2. Добавлен учет топиков “прикрепленных” и “объявлений” (+0.1 приоритет)
3. Исправлен баг с доп. слешем (’/') в УРЛ
4. Скрытые и не доступные для публичного доступа разделы форума не попадают в сайтмап.
5. Версия пространства имён обновлена до последней (0.9) версии (xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″)
=========================

Пока что есть пара идей по доработке скрипта - выдача файлов в архивированном (.gz) формате, а так же разбивка на несколько sitemap, если количество топиков > 50000, возможно добавление информации по пользователям.
Все вопросы и пожелания в комментарии или на почту.

Из той же оперы, так что прочти обязательно:

Метки: , , , , ,

43 комментария на “phpBB Google Sitemap Gen”

  1. Alex пишет:

    > который используют некоторые поисковые роботы для оптимизации индексирования страниц.

    Этот sitemap гугловцы придумали, чтобы их пауку было удобнее индексировать сайты, и чтобы ни одна страничка не пропускалась при индексации. Так что задумка неплохая и действует.

  2. Tapac пишет:

    Кстати говоря, не только гугл использует sitemap.
    Пока изучал этот вопрос, наткнулся на сайт, который оповещает (ping) поисковые системы об обновлении sitemap. Там помимо google, присутствуют Yahoo!, askme.com, moreover.com(=MSN), т.ч. пользы ещё больше)
    К тому же на форуме phpbbguru.net подали пару идей по улучшению скрипта.

  3. Alex пишет:

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

  4. ecolog пишет:

    http://1zos.uzelok.net/forum/sitemap.xml
    Ошибку какую-то выдает.

  5. Tapac пишет:

    ecolog, вы не могли бы сообщить какая версия MySQL у вас установлена на сервере?

  6. ecolog пишет:

    mysql 5.0.27-standard

  7. Tapac пишет:

    Попробуйте поставить вот эту версию (phpBB sitemap gen v.0.0.6b.rar) и, если не сложно, сообщите о результатах.

  8. ecolog пишет:

    http://1zos.uzelok.net/forum/sitemap.xml,ошибка Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/a1zos/public_html/forum/sitemap.php on line 92

  9. Tapac пишет:

    phpBB sitemap gen v.0.0.6c.rar
    Добавил строчки для дебага. Пожалуйста загрузите их на сайт и скопируйте ещё раз текст ошибок. Теперь там должны появится строки с указанием ошибки в запросе.

  10. ecolog пишет:

    Unknown column ‘post_created’ in ‘field list’
    http://1zos.uzelok.net/forum/sitemap.xml

  11. Tapac пишет:

    А вот это уже настораживает.
    Какой версии у вас движок форума? (Я тестировал под 2.0.x)
    Если у вас версия из 3.х, то возможно там несколько другие названия полей.

    Можно ли получить результаты следующих запросов (через phpmyadmin, например)
    describe вашпрефиксфорума_posts
    describe вашпрефиксфорума_topics

    ?

  12. ecolog пишет:

    Версия 2.022,префикс форума у меня community,вот где собака зарыта :-)

  13. Tapac пишет:

    странно, по идее данные берутся из конфига, поэтому вне зависимости от того, какой префикс, запрос должен быть верным. И всё же, если можно, хотелось бы глянуть на describe.

  14. ecolog пишет:

    DESCRIBE community_posts;# Ряды: 13
    DESCRIBE community_topics;# Ряды: 13
    Может Ваш мод конкурирует с другими модами?
    Цитата:”странно, по идее данные берутся из конфига, поэтому вне зависимости от того, какой префикс, запрос должен быть верным. И всё же, если можно, хотелось бы глянуть на describe.”
    Да,это я уже увидел в вашем коде,может просто эти переменные заменить на мои константы,т.е вместо $название переменной,просто вставить community?Обидно,что ваш мод у меня не работает,наверно из-за кофликта с другими модами,думаю это никак не повляет этот мод имеет chmod 755(777 у меня запрещён) и лежит в папке public_html/forum/.Кстати под phpbb3 аналогичный мод уже есть.
    С уважением,
    ecolog

  15. андрей пишет:

    Поддерживаю ecolog.

    Ошибка Unknown column ‘post_created’ in ‘field list’

    выпадает после
    $sql = “SELECT t.topic_id, topic_views, DATE_FORMAT(FROM_UNIXTIME(IFNULL(post_edit_time, post_created)), ‘%Y-%m-%d’) as lastdate,
    DATEDIFF( FROM_UNIXTIME( UNIX_TIMESTAMP( ) ) , FROM_UNIXTIME( IFNULL( post_edit_time, post_created ) ) ) as datedif
    FROM “.$table_prefix.’topics as t, ‘.$table_prefix.’posts as p WHERE (t.topic_last_post_id = p.post_id)’;

    реально в таблице нет такого поля

    `post_id` mediumint(8) unsigned NOT NULL auto_increment,
    `topic_id` mediumint(8) unsigned NOT NULL default ‘0′,
    `forum_id` smallint(5) unsigned NOT NULL default ‘0′,
    `poster_id` mediumint(8) NOT NULL default ‘0′,
    `post_time` int(11) NOT NULL default ‘0′,
    `poster_ip` char(8) NOT NULL,
    `post_username` varchar(25) default NULL,
    `enable_bbcode` tinyint(1) NOT NULL default ‘1′,
    `enable_html` tinyint(1) NOT NULL default ‘0′,
    `enable_smilies` tinyint(1) NOT NULL default ‘1′,
    `enable_sig` tinyint(1) NOT NULL default ‘1′,
    `post_edit_time` int(11) default NULL,
    `post_edit_count` smallint(5) unsigned NOT NULL default ‘0′,

  16. андрей пишет:

    проблема решается заменой
    post_created => post_time

    Сейчас работает у меня http://www.ukrbanks.info/forum/sitemap.php

    Кстати, спасибо за мод. Давно был нужен, да написать все как-то времени небыло.

  17. андрей пишет:

    Проблема решается заменой
    post_created => post_time

    Кстати, спасибо за мод. Давно нужен был, да все руки не доходили

  18. Tapac пишет:

    2ecolog, да, видимо либо версия форума у меня старая (может там другие именования столбцов таблицы), либо у вас какой-то мод. Попробуйте прописать жёсткие названия таблиц + переименовать столбец “post_created => post_time”, как советует андрей

    2андрей, спасибо за поправку. В скором времени обновлю форум и займусь модификацией мода. Поэтому следите за обновлениями. И пользуйтесь на здоровье)

  19. андрей пишет:

    2ecolog, только переименовывать надо в файле “sitemap.php”, а не в базе :)

  20. ecolog пишет:

    http://forum.ecologrf.ru/sitemap.xml всё фурычит,как по нотам.

  21. ecolog пишет:

    только гуглу что-то не нра :-( Ошибки
    Строка: 336 Ошибка разбора
    Мы не смогли прочитать Ваш Sitemap. Возможно, он содержит нераспознаваемую для нас запись. Проверьте свой Sitemap перед тем, как передать его повторно. [?] Дата появления: 14.08.2007

  22. mestny пишет:

    У меня Google при проверке файла sitemap.php пишет “Неправильный тег XML
    Этот тег не удалось распознать. Исправьте его и повторите передачу.
    Родительский тег: urlset
    Тег: br
    Родительский тег: urlset
    Тег: b “

  23. андрей пишет:

    А ссылочку на свой sitemap.xml дать можете? Мой сайтмап гуглом воспринимается на УРА.

  24. mestny пишет:

    могу конечно вот http://www.krasnodon.net.ua/forum/sitemap.xml

  25. mestny пишет:

    если с расширением *.xml то выдаёт Ошибка синтаксического анализа XML: неправильный
    Адрес: http://www.krasnodon.net.ua/forum/sitemap.xml
    Строка 30, символ 27:

    а Google пишет Неподдерживаемый формат файла

    если с расширением *.php то Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/krasnodo/public_html/forum/sitemap.php on line 92

    а Google пишет Неправильный тег XML
    Этот тег не удалось распознать. Исправьте его и повторите передачу.
    Родительский тег: urlset
    Тег: br
    Родительский тег: urlset
    Тег: b “

  26. андрей пишет:

    Мда …. а ты че, просто переименовал sitemap.php в sitemap.xml ?

    Да и установленного форума phpBB я у тебя не нашел.

  27. андрей пишет:

    Сначала поставь форум phpBB, потом скопируй sitemap.php в корень форума

  28. андрей пишет:

    Сорри, форум нашел :) Все выглядит правильно

    //Выводим ссылку на топик, приоритет, дату последнего обновления, частоту обновлений
    $sql = “SELECT t.topic_id, topic_views, DATE_FORMAT(FROM_UNIXTIME(IFNULL(post_edit_time, post_created)), ‘%Y-%m-%d’) as lastdate,
    DATEDIFF( FROM_UNIXTIME( UNIX_TIMESTAMP( ) ) , FROM_UNIXTIME( IFNULL( post_edit_time, post_created ) ) ) as datedif
    FROM “.$table_prefix.’topics as t, ‘.$table_prefix.’posts as p WHERE (t.topic_last_post_id = p.post_id)’;

    замени на

    //Выводим ссылку на топик, приоритет, дату последнего обновления, частоту обновлений
    $sql = “SELECT t.topic_id, topic_views, DATE_FORMAT(FROM_UNIXTIME(IFNULL(post_edit_time, post_time )), ‘%Y-%m-%d’) as lastdate,
    DATEDIFF( FROM_UNIXTIME( UNIX_TIMESTAMP( ) ) , FROM_UNIXTIME( IFNULL( post_edit_time, post_time ) ) ) as datedif
    FROM “.$table_prefix.’topics as t, ‘.$table_prefix.’posts as p WHERE (t.topic_last_post_id = p.post_id)’;

  29. mestny пишет:

    андрей, спасибо за помощь
    заменил теперь Google выдаёт при проверке Неподдерживаемый формат файла

    а при запуске файла выдаёт Parse error: syntax error, unexpected T_STRING in /home/krasnodo/public_html/forum/sitemap.php on line 86

    это строка из замены $sql = “SELECT t.topic_id, ………

  30. андрей пишет:

    скобки не закрылись где-то

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

    http://www.ukrbanks.info/forum/sitemap.zip

  31. mestny пишет:

    андрей, спасибо за квалифицированную и оперативную помощь
    теперь всё Ok
    Tapac, спасибо за скрипт

  32. Игорь пишет:

    Не работает, гугл говорит, что ошибка.

    Я думаю он должен работать как вот тут http://alive.org.ua/sitemap.xml
    Хоть это не форум, но написано правильно, или на форум нужно другой???

  33. forall пишет:

    http://phpbbguru.net/community/viewtopic.php?t=15666
    На phpBB автор заходи пожалуйста =)))
    без тебя там никак

    у меня сайтмап генерит вот так
    http://www.cybercore.ru// 2007-08-31 daily 1 http://www.cybercore.ru//index.php?c=3 yearly
    и т.п.
    как можно исправить?

  34. VVVas пишет:

    По поводу post_time/post_created
    Возможно у Tapacа стоит Advanced post merging и мод заточен под APM. Потому что именно он добавляет такое поле. В стандартной поставке такого поля нет, есть post_time (см. \install\schemas из дистрибутива).

    2 Tapac
    Кстати, обновлённую версию можно будет увидеть на phpBB Guru?
    С уважением, VVVas.

  35. Tapac пишет:

    2андрей, спасибо за оперативную поддержку пользователей) Обязательно упомяну тебя в следующей версии скрипта.

    2VVVas, да, ты совершенно прав по поводу Advanced post merging, т.к. мод довольно популярный, то наверное добавлю проверку на наличие поля.
    В обязательном порядке выложу обновленную версию на пхпббгуру

    2Игорь, данный сайтмап тоже верен, но в нём отсутствуют дополнительные поля, которые могут помочь гуглу лучше индексировать страницы.

    2forall, спасибо за нахождения бага, добавлю проверку на слеши и спец символы.

    2Все, к сожалению был на отдыхе в дали от компьютера, т.ч. не мог своевременно отвечать и исправлять баги.
    В ближайшее время (неделя-две) постараюсь докончить новую версию с учётом всех исправлений и добавлю пару нововведений.
    Всем спасибо за багтестинг)

  36. VVVas пишет:

    Я тут настрочил на досуге по поводу этого мода http://phpbbguru.net/community/viewtopic.php?p=156315#156315
    прочтите на досуге.

    С уважением, VVVas.

  37. MipH пишет:

    Спасибо за скриптик.
    Полезная вещица.

  38. XAM пишет:

    а как обьявить что вот она карта форума для поисковых ботов?куда это прописать?

  39. Tapac пишет:

    Если вы хотите оповестить только Гугл, то лучший способ зарегистрироваться на https://www.google.com/webmasters/tools/ и, добавив свой сайт, указать путь к его сайтмапу.

    Ещё удобный вариант - http://www.sitemapwriter.com/notify.php?lang=ru - тут пинг идёт сразу на 4 поисковика.

  40. beshur пишет:

    Хочу поблагодарить автора за очень нужный и полезный мод.
    Но все бы хорошо, если бы не это:
    локально работает, проблем нет, но в инете полностью работать отказывается, в sitemap выводит только перечень разделов и форумов, а перечень тем выводить отказывается.
    вот смотрите сами: http://belorus.by/forum/sitemap.xml
    В чем может быть проблема?

  41. Ricciardo пишет:

    hot collage girls…

    and spiritual wisdom. Because she can

  42. Absevossy пишет:

    [url=http://loanlending.info/sarah-michelle-gellar/][b]FREE Sarah Michelle Gellar Sex Scenes Download[/b][/url]

    [url=http://loanlending.info/sarah-michelle-gellar/] [img]http://aitcostamhome.info/celeb/sarah-michelle-gellar/2.jpg[/img] [img]http://aitcostamhome.info/celeb/sarah-michelle-gellar/4.jpg[/img] [img]http://aitcostamhome.info/celeb/sarah-michelle-gellar/5.jpg[/img] [/url]

    [url=http://loanlending.info/celeb/][b]FREE Celebrities Sex Tapes and Scenes[/b][/url]

    [B]Related Keywords, Tags: [/B]
    Sarah Michelle Gellar Nude
    Sarah Michelle Gellar In Cruel Intentions
    Naked Sarah Michelle Gellar
    Sarah Michelle Gellar As Buffy
    Photos Sarah Michelle Gellar
    Sarah Michelle Gellar Photo
    Sarah Michelle Gellar Quote Women Thin
    Pics Of Sarah Michelle Gellar
    Sarah Michelle Gellar Harvard Man Opening Credits
    Sarah Michelle Gellar Layouts
    Pictures Of Sarah Michelle Gellar Tatoo
    Sarah Michelle Gellar See Through
    Sex Video Of Sarah Michelle Gellar
    Buffy Sarah Michelle Gellar
    Sarah Michelle Gellar And Jennifer Love Hewitt
    Sarah Michelle Gellar Signed Autograph
    Fantasy Of Sarah Michelle Gellar
    Sarah Michelle Gellar Making The Video Dirrty
    Sarah Michelle Gellar Fucking In Southland Tales Video Clips
    Sarah Michelle Gellar Megaupload
    Sarah Michelle Gellar Sites Web
    Sarah Michelle Gellar Magazine Covers
    Sarah Michelle Gellar Wedding Dress
    Sarah Michelle Gellar Bound And Gagged
    Sarah Michelle Gellar And Vinny Chase
    Simply Irresistible Sarah Michelle Gellar
    Sarah Michelle Gellar Profil
    Alice In Wonderland Sarah Michelle Gellar
    Sarah Michelle Gellar Lot
    Sarah Michelle Gellar History Mtv Awards With Jack Black
    Sarah Michelle Gellar Scene
    Sarah Michelle Gellar Cruel Intentions 2
    Sarah Michelle Gellar Sex Scene Clip Cruel Intentions
    Free Online Nude Pics Sarah Michelle Gellar
    Porno Sarah Michelle Gellar
    Sarah Michelle Gellar Nude Pic
    Bound Gagged Sarah Michelle Gellar Pictures
    Kelly Ripa And Sarah Michelle Gellar
    Sarah Michelle Gellar In Purple
    Sarah Michelle Gellar Pieds
    Sarah Michelle Gellar Footnotes
    Sarah Michelle Gellar Buffy Pics
    Sarah Michelle Gellar Xxl
    Sarah Michelle Gellar Sex Tapes
    Sarah Michelle Gellar Michelle Gellar
    Sarah Michelle Gellar Embarazada
    Kidnapped Sarah Michelle Gellar
    Sarah Michelle Gellar Chirurgie Esth?tique
    Sarah Michelle Gellar Fucking Scooby Doo Pic
    Sarah Michelle Gellar Martial Arts

  43. SNOOPY пишет:

    А файл то не скачивается, ссылка битая

Оставить комментарий

Вы должны войти чтобы оставить комментарий.