Extension:AutoSitemap
![]() Статус релиза: стабильно |
|
---|---|
Реализация | MyWiki , Действие страницы |
Описание | Автоматически создает и обновляет файл Sitemap при изменении любой страницы сайта. |
Автор(ы) | Dolfinus, François Boutines-Vignard, Jehy, Thomas |
Последняя версия | 1.8.0 (2023-02-17) |
MediaWiki | 1.25+ |
Изменения в БД | Нет |
Лицензия | GNU General Public License 3.0 или позднее |
Скачать | Download master snapshot Note: 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 будет сгенерирован автоматически
- Готово – Перейдите на страницу 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_FILE_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
файле или иным способом).
См. также
- - Подробнее о sitemap файлах на Википедии
- Описание работы sitemap от Google