расставляй правильно приоритеты и не отвлекайся на мелочи

Настраиваем sitemap для мультисайтового WordPress

Для меня остается загадкой почему даже в WordPress 3 нет родной поддержки sitemap.xml и уж тем-более ее нет для Multisite WordPress (в прошлой бытности WordPress MU). Благо все пользуются замечательным Google (XML) Sitemaps Generator plugin, но на данный момент, если Вы попытаетесь водрузить сие спасение на WP3, то получите в панели администратора «замечательное» предупреждение:
Google XML Sitemaps is not multisite compatible,
из которого понятно, что пока этот плагин не поддерживает мультисайтовый WordPress.

Но это дело поправимо, благо уже есть готовые решения как грамотно поставить Google (XML) Sitemaps Generator на multisite WordPress, о чем и пойдет речь в данной статье, плюс небольшая полезность, которая сделает данный рецепт еще более универсальным.
Не забываем, — автор данного хака Jan Dembowski.

Используем google-sitemap-generator версии 3.2.4

1. Первым делом выключаем предупреждение в админской панели.

Как-бы прискорбно это не звучало, нам придется править исходники (поэтому не забываем выполнять этот шаг при следующей смене версии Google Sitemap Generator’а, до тех пор пока он не научится поддерживать mu WordPress). Открываем файл wp-content/plugins/google-sitemap-generator/sitemap.php и комментируем следующий блок кода:

//Check for 3.0 multisite, NOT supported yet!
// if((defined('WP_ALLOW_MULTISITE') && WP_ALLOW_MULTISITE) || (function_exists('is_multisite') && is_multisite())) {
//      if(function_exists('is_super_admin') && is_super_admin()) {
//              add_action('admin_notices',  array('GoogleSitemapGeneratorLoader', 'AddMultisiteWarning'));
//      }
//
//      return;
// }

2. Переписываем правила для .htaccess

RewriteRule ^sitemap.xml sitemap-%{SERVER_NAME}.xml [L]
RewriteRule ^sitemap.xml.gz sitemap-%{SERVER_NAME}.xml.gz [L]

3. Активируем и настраиваем плагин

Идем в параметры XML-Sitemap и в разделе «Расположение Вашего файла с картой сайта» выбираем пункт «Пользовательское расположение». Далее прописываем в полях «Абсолютный или относительный путь к файлу с картой сайта, включая имя файла.» и «Заполните URL к файлу с картой сайта, включая имя файла.» свои значения,
к примеру, если бы мой блог назывался handynotes.blog.ru, то значения были-бы следующими:
/home/www/handynotes.blog.ru/sitemap-handynotes.blog.ru.xml и http://handynotes.blog.ru/sitemap-handynotes.blog.ru.xml

4. Перестраиваем карту сайта

Нажимаем на ссылку: «заново построить карту сайта» в параметрах XML-Sitemap плагина. Только не забудьте перед этим дать права на запись в корень сайта, так-как плагин должен создать в нем файл sitemap-handynotes.blog.ru.xml (а возможно и sitemap-handynotes.blog.ru.xml.gz, если Вы выбрали эту возможность). После создания права можно вернуть в исходное состояние.

5. Тестируем работоспособность и дружим с поисковиками

Вызываем в браузере http://handynotes.blog.ru/sitemap-handynotes.blog.ru.xml (это для моего примера), если видим результат — прекрасно! Теперь мы можем помочь поисковым машинам находить наш sitemap.xml, для этого создаем (или дописываем) файл robots.txt, куда добавляем строку:

Sitemap: http://handynotes.blog.ru/sitemap-handynotes.blog.ru.xml.gz

Рекомендуется указывать именно на «сжатый» вариант sitemap.xml.gz, так как это экономит трафик (в моем случае он в 15 раз меньше исходного) и нагрузку на Ваш сайт.
Кроме этого Вам придется создать отдельный robots.txt для каждого домена WordPress (ведь Вы используете multisite конфигурацию), о том как это сделать будет в следующей статье.

6. Для следующего домена все повторяем с 3-го шага.

Ян и я лилеем надежду, что в будущем этот замечательный плагин или собственно сам WordPress будут «прозрачно» поддерживать работу с sitemap.xml, а пока можно спокойно пользоваться данным хаком.

1 Комментарий на статью:
  1. madti:

    Спасибо за статью. Очень помогли. Все получилось!!!

Ответить
Обязательные поля помечены *