Extension:AutoSitemap

From mediawiki.org
This page is a translated version of the page Extension:AutoSitemap and the translation is 98% complete.
Справка по расширениям MediaWiki
AutoSitemap
Статус релиза: стабильно
Реализация MyWiki , Действие страницы
Описание Автоматически создает и обновляет файл Sitemap при изменении любой страницы сайта.
Автор(ы) Dolfinus, François Boutines-Vignard, Jehy, Thomas
Последняя версия 1.8.0 (1.3 for MW 1.33 and lower) (2023-02-17)
MediaWiki 1.25+
Изменения в БД Нет
Лицензия GNU General Public License 3.0 или позднее
Скачать
README
Пример Пример сгенегированного файла sitemap.xml
$wgAutoSitemap

Расширение AutoSitemap автоматически формирует файл "sitemap.xml" при каждом создании/изменении/удалении страницы на сайте. Файл sitemap.xml помогает поисковым системам индексировать страницы вашего сайта. Это расширение основано "ManualSitemap ".

Обоснование

У меня нет возможности обновлять файл sitemap.xml по расписанию из-за ограничений хостинга. Также мне не хотелось бы обновлять его вручную.

Поэтому я доработал существующее расширение, чтобы sitemap файл обновлялся при каждом изменении, создании, удалении или переименовании страницы, а также при загрузке файлов на сайт.

Примечание

Это расширение может использоваться только на небольших инсталляциях MediaWiki (до 10 тыс страниц). Если ваша инсталляция достигла 50 тыс страниц, вы должны использовать GenerateSitemap.php , т.к. этот способ позволяет создавать sitemap index файлы, генерировать отдельные sitemap файлы для каждого пространства имен, сжимать созданные файлы, а также генерировать sitemap по расписанию вместо создания файла на каждое изменение страницы.

Установка

  • Скачайте и распакуйте файл(ы) в папку с названием AutoSitemap в вашей папке extensions/.
  • Добавьте следующий код в конце вашего файла LocalSettings.php :
    wfLoadExtension( 'AutoSitemap' );
    
  • Выполните любое изменение на сайте - например, обновите существующую страницу или создайте новую
  • Файл sitemap.xml будет сгенерирован автоматически
  • Yes Готово – Перейдите на страницу Special:Version на своей вики, чтобы удостовериться в том, что расширение успешно установлено.

Настройка

Есть множество параметров, которые влияют на формирование файоа sitemap.xml. Вы можете установить необходимые значения в файле LocalSettings.php

Имя файла

Вы можете указать название sitemap файла, изменив значение параметра:

$wgAutoSitemap["filename"] = "sitemap.xml"; //default value

Установка базового URL

По-умолчанию, все ссылки в sitemap файле используют $wgCanonicalServer (или $wgServer, если значение не задано) в качестве имени домена Вы можете указать другой домен, изменив соответствующую настройку:

$wgAutoSitemap["server"] = "https://your-site.com";

Уведомление поисковых систем

Вы можете уведомлять поисковые системы о том, что файл sitemap.xml был обновлен. Для этого укажите список URL, на которые будет отправляться уведомление:

$wgAutoSitemap["notify"] = [
    'https://www.google.com/webmasters/sitemaps/ping?sitemap=https://your-site.com/sitemap.xml',
];

В некоторых случаях хостинг может запрещать выполнение команды fopen для отправки уведомлений (allow_url_fopen=false). Если у вас отсутствует возможность вызывать ее, или вы не планируете отправлять уведомления, используйте пустой массив в качестве значения переменной (удалив строки между квадратными скобками, т.е. = [];).

Исключить типы страниц из карты сайта

Вы можете исключать отдельные страницы или namespace целиком от их добавления в sitemap файл:

$wgAutoSitemap["exclude_namespaces"] = [
    NS_TALK,
    NS_USER,   
    NS_USER_TALK,
    NS_PROJECT_TALK,
    NS_IMAGE_TALK,
    NS_MEDIAWIKI,   
    NS_MEDIAWIKI_TALK,
    NS_TEMPLATE,
    NS_TEMPLATE_TALK,
    NS_HELP,   
    NS_HELP_TALK,
    NS_CATEGORY_TALK
]; //default values

$wgAutoSitemap["exclude_pages"] = ['page title to exclude', 'other one'];

If you need to exclude custom namespace from sitemap, pass here namespace ID (integer) instead of name constant.

Установить частоту обновления страницы

Вы можете вручную установить рекомендуемую частоту, с которой поисковые системы будут проверять содержимое страниц:

$wgAutoSitemap["freq"] = "daily"; //default

Возможные значения:

hourly
daily
weekly
monthly
yearly
adjust - for automatic determination of frequency based on page edits count

Установить приоритет страницы

Вы можете вручную установить приоритет конкретных страниц или namespace:

$wgAutoSitemap["priority"] = 0.7;

или

$wgAutoSitemap["priority"][NS_MAIN] = 1;
$wgAutoSitemap["priority"][NS_CATEGORY] = 0.8;

или

$wgAutoSitemap["priority"]['Main page'] = 1;
$wgAutoSitemap["priority"]['Other page'] = 0.8;

Ограничение количества событий генерации sitemap файла Для вики с большим количество страниц генерация sitemap файла может потреблять большое количество ресурсов. В таком случае разумно будет ограничить частоту генерации данного файла Эта опция позволяет указывать возраст файла (в секундах), по достижению которого файл будет перегенерирован. Если указанное время еще не прошло, новый sitemap не будет сгенерирован

$wgAutoSitemap["min_age"] = 3600; // 1 hour, default 0 (no rate-limit)

Применение

Разрешения

У вашей MediaWiki должны быть права на запись в файлы (используйте команды chmod +w и chown apache или chown nginx).

Htaccess, Nginx

Если вы хотите, чтобы sitemap отображался в человекочитаемом формате, выдайте права на чтение файла sitemap.xsl в настройках вашего сайта (например, в .htaccess файле или иным способом).

См. также