Тьерри Мюллер (Thierry Muller), менеджер программы по связям с разработчиками в Google, и несколько участников опубликовали обновление о функции XML Sitemaps, которая может появиться в WordPress в этом году. После семи месяцев разработки команда сделала плагин функции XML Sitemaps доступным на GitHub. В настоящее время он открыт для тестирования и обратной связи. Плагин также должен быть доступен в каталоге плагинов WordPress к следующей неделе.
Обновление (31 января 2020): функция плагины ядра Sitemaps теперь доступны в WordPress плагина хранилище.
Проект нацелен на доставку базовой версии функции XML Sitemaps для всех установок WordPress. Он также предложит API для разработчиков плагинов. Следовательно, плагины карты сайта не исчезнут автоматически. Вместо этого плагины будут предлагать пользователям различные варианты работы их карт сайта.
Команда, созданная Google, Yoast и другими участниками, первоначально предложила карты сайта XML в качестве основной функции WordPress в июне 2019 года. Традиционно WordPress оставлял эту функцию плагинам для реализации, и многие из них выполняли эту роль на протяжении многих лет. Однако несколько других крупных систем управления контентом поставляются с картами сайта как частью своей основной кодовой базы.
Многие хвалили инициативу, например, руководитель проекта WordPress Мэтт Мулленвег. «В этом есть большой смысл, если мы с нетерпением ждем появления v1 этого в ядре и его развития в будущих выпусках и укрепления заслуженной репутации WordPress как лучшей CMS для SEO», – сказал он.
Однако несколько человек задались вопросом, должен ли WordPress поставляться с XML-картами сайта. Некоторые беспокоились о производительности, а другие считали, что эта функция должна оставаться в плагинах.
«На высоком уровне увеличение количества сайтов WordPress с помощью файлов Sitemap в конечном итоге ускоряет обнаружение контента поисковыми системами и повторное сканирование более свежего контента, помеченного датой последнего изменения, быстрее, чем запланированный бот», – сказал Мюллер об основных причинах, по которым эта функция принадлежит в ядре.
Пользователи WordPress могут увидеть, что эта функция появится в крупном обновлении в этом году. «Амбициозно [версия] 5.4», – сказал Мюллер о цели выпуска. “Реально 5.5.”
Плагин функции в настоящее время индексирует следующие URL-адреса для сайта:
- Домашняя страница
- Страница сообщений в блоге (если не домашняя страница)
- Посты и страницы
- Категории и теги
- Пользовательские типы сообщений
- Пользовательские таксономии
- Пользователи / Авторы
Пользовательские типы сообщений и таксономии регистрируются, только если они являются общедоступными. Также доступен фильтр для изменения того, какие типы сообщений, таксономии и пользователи индексируются. В идеале WordPress должен предоставить флаг регистрации для типов сообщений и таксономий.
Решение проблем с производительностью
Одна из основных проблем первоначального предложения – насколько хорошо будет работать и масштабироваться основная функция карты сайта, особенно на крупных сайтах. Без встроенного в ядро решения для полного кэширования это создало некоторые препятствия для команды.
«Решить проблему производительности нетривиально, и мы рассмотрели различные решения», – сказал Мюллер. «Мы считаем, что нашли решение, которое не требует полного кэширования и при этом будет масштабируемым».
Для производительности есть две основные проблемы:
- Количество URL-адресов на странице.
lastmod
Дата вindex.xml
файле.
«Определить количество URL-адресов на странице довольно просто, – сказал Мюллер. «В то время как карты сайта могут содержать до 50 000 URL-адресов на карту сайта, мы обнаружили, что ограничение до 2 000 приемлемо с точки зрения производительности и полностью приемлемо с точки зрения поисковой системы». Команда решила придерживаться значения по умолчанию 2000 URL-адресов на карту сайта и предоставить подключаемый модуль для изменения в случае необходимости.
Найти решение для lastmodсвидания было не так просто. «Мы считаем, что нашли хороший баланс, который будет масштабируемым и не откроет банку червей, которым подвергается полное кэширование», – сказал Мюллер.
Решение, реализованное командой, включало планирование задачи cron, которая запускается дважды в день (частота может быть отфильтрована плагинами). Задание cron извлекает lastmodдаты из каждой карты сайта и сохраняет их в таблице параметров, которая, по сути, работает как решение для легкого кеширования.
«Использование cron должно быть достаточно стабильным для малых и средних сайтов», – сказал Мюллер. «Корпоративные веб-сайты обычно имеют сервер cron, настроенный для более регулярного пинга WP Cron, вместо того, чтобы полагаться на посетителей веб-сайтов, чтобы запускать его. Фактически, большинство управляемых хостинг-провайдеров имеют это для всех планов ».
Если первоначальная реализация команды недостаточно продумана, они изучают альтернативную реализацию, которая использует настраиваемые типы сообщений для хранения и обновления данных карты сайта. Два открытых тикета GitHub дополнительно исследуют производительность, которую разработчики могут захотеть проверить: Проблема №1 и Проблема №39 .
Что произойдет с сайтами с существующими файлами Sitemap?
Один вопрос, который остается без ответа, – что происходит, когда пользователь обновляет WordPress 5.4 / 5.5 и уже имеет карту сайта. Вероятно, миллионы сайтов WordPress используют плагин или какое-то решение для карты сайта.
«Это вопрос, который мы еще не решили», – сказал Мюллер. «Важно работать с авторами плагинов, и в идеальном мире все плагины, предоставляющие расширенные решения для работы с картами сайта, расширяли бы основной API. Мы хотели бы получить отзывы сообщества по этому поводу ».
WordPress должен позаботиться о том, чтобы избежать каких-либо серьезных конфликтов или ошибок индексации, или, по крайней мере, облегчить проблемы для пользователей, которые могут не знать об этой предстоящей функции.