DokuWiki может автоматически создавать XML Sitemap - специальный файл, используемый большими поисковыми системами типа Google, Yandex или Yahoo.
Чтобы разрешить создание карты сайта, необходимо изменить в настройках ДокуВики параметр sitemap. Карта сайта размещается в корневой папке, в которой установлена ДокуВики. В зависимости от того, есть ли в PHP конкретного хостинга поддержка gzip, файл с картой сайта называется либо sitemap.xml.gz (если gzip доступен) или просто sitemap.xml (когда gzip не поддерживается). Почти все современные сборки PHP включают поддержку gzip, так что скорее всего карта сайта у вас на сайте располагается в файле sitemap.xml.gz.
Когда карта сайта обновляется, ДокуВики автоматически оповещает следующие поисковые системы, с помощью HTTP запроса:
Для того, чтобы создать карту сайта, вебсерверу необходимо иметь права на запись соответствующего файла. Самый простой способ удостовериться в этом - создать пустой файл sitemap.xml.gz и изменить соответствующим образом его атрибуты.
Если карта сайта не создается, можно попробовать получить отладочную информацию от индексатора ДокуВики, открыв страницу http://yourserver/dokuwiki/lib/exe/indexer.php?debug=1 в браузере.
Если необходимо пересоздать карту сайта, нужно временно установить в config:sitemap большое отрицательное значение .
Карта сайта привязана к доменному имени. Если ваша карта сайта содержит ссылки типа http://domain.org, карта не будет правильной, когда её поисковая система запросит с http://www.domain.org и наоборот. Для того, чтобы убедиться, что используется правильная форма, можно сделать переадресацию с помощью modRewrite, добавив соответствующее правило в файл .htaccess:
Пример ModRewrite для Apache:
RewriteEngine on RewriteCond %{HTTP_HOST} !^www\.domain\.org$ [NC] RewriteRule ^(.*)$ http://www.domain.org/$1 [R,L]
Обсуждение
А по-русски можно? Вот создается карта сайта в файле sitemap.xml.gz. Но ведь это архив, а как указать конкретный адрес карты сайта в Инструментах для веб-мастеров Google? Там ведь просят что-то вроде http:сайт.ru/sitemap.xml. Вручную каждый раз распаковывать архив? Как в файле robots.txt указать путь к реальной карте? Sitemap http:сайт.ru/sitemap.xml.gz ???
И можно вообще поподробней про robots.txt, какие папки запретить к индексированию, какие разрешить — применительно к последней версии DokuWiki.
В инструментах для вебмастеров на гугле поддерживается оба формата sitemap.xml - как сжатый, так и несжатый. Никакой проблемы с тем, что карта в архиве - нет.
Прописывать в robots.txt путь к карте сайта не нужно. Карта сайта работает и без этого.
А примерный вариант robots.txt для индексации сайта подскажете? Какие папки запретить, какие разрешить. Версия Doku последняя.
Очень надо. И как сделать чтобы и яндекс индексировал, а то по яндексу вообще 0 переходов по поисковым фразам
Чтобы яндекс проиндексировал необходимо один раз оставить заявку на сайте яндекса, что появился новый сайт и просто подождать. А ещё лучше, если вы сделаете так, чтобы с других сайтов, уже индексируемых яндексом появились прямые ссылки на ваш сайт.
Замечу, что у DokuWiki никакой специфики нет - сайт на DokuWiki в этом смысле ничем не отличается от других сайтов. Даже без robots.txt сайт прекрасно индексируется. Robots.txt вообще-то сделан для того, чтобы запрещать индексацию определённых страниц и разделов на сайте.
Я на одном из своих сайтов использую следующий вариант robots.txt:
И для доступа при включенных красивых путях с помощью .htaccess в .htacess нужно добавить директиву (перед строчкой RewriteCond %{REQUEST_FILENAME} !-f):
RewriteCond %{REQUEST_FILENAME} !robots\.txtrobots.txt для DokuWiki
Это если DokuWiki в корне, если например в каталоге /wiki/, тогда будет Disallow: /wiki/bin/ и т.п.
Подробнее можно почитать здесь - http://wiki.dieg.info/doku.php/robots.txt (сайт не мой)
Это где? Есть «Карта сайта для Google (дни)», куда можно ввести число. Как это понимать?
Этот параметр задает расписание обновления карты сайта.
А по-конкретнее, что обозначает число?
День добрый! Почему-то sitemap.xml.gz создается не в корне DokuWiki, в моем примере это http:сайт/wiki/, а тут http:сайт/wiki/data/cache/. И гугл туда достучаться не может.
Разобрался сам. dokuwiki от 2011-05-25 “Rincewind” В файле http://yourserver/dokuwiki/inc/Sitemapper.php есть функция getFilePath()
в ней генерируется имя файла: $sitemap = $conf['cachedir'].'/sitemap.xml';
Изменил руками эту строку на: $sitemap = './sitemap.xml';
Залил на сайт новый файл, запустил индексатор http://yourserver/dokuwiki/lib/exe/indexer.php?debug=1 Карта сформировалась в http://yourserver/dokuwiki
Простой вариант - не править ничего в кишочках DokuWIki, а вместо этого добавить строчку в .htaccess:
RewriteRule ^sitemap\.xml\.gz(.*) doku.php?do=sitemap [QSA,L]После этого всё будет работать как раньше.
Может быть правильнее
Ну и в корне сайта надо в таком случае удалить sitemap.xml.gz если его создавали пустой, так как иначе именно он и будет отдаваться.
Нет. Видимо я поторопился…. Не работает. Вопрос актуальный.
Опробовал вариации: $sitemap = './sitemap.xml'; $sitemap = $conf['basedir'].'/sitemap.xml'; $sitemap = 'http://site/sitemap.xml';
Все равно файл записывается только так $sitemap = $conf['cachedir'].'/sitemap.xml'; Не пойму чего ему не хватает. Права вроде везде одинаковые.
В общем, вышел из ситуации так:
Заменил function runSitemapper() в файле индексатора. Взял из релиза dokuwiki-2009-12-25c.tgz “Lemming”
Вроде работает. Не знаю, что из этого выйдет.