После переноса моего блога на WordPress в Nginx на Digital Ocean мне пришлось решить несколько проблем, одной из которых была пустая проблема с картой сайта Yoast SEO. Как и большинство блоггеров, я использую плагин Yoast для WordPress SEO, который устраняет необходимость в некоторых других плагинах для нестраничных SEO-функций. Одной из таких функций является генерация XML-карты сайта. Проблема пустого файла Sitemap Yoast отличается от ошибки Sitemap 404, которая встречается чаще. В моем случае страница XML-карты сайта была пустой, на ней ничего не было. Если вы пришли сюда, пытаясь найти ответ на пустую проблему с картой сайта Yoast, то читайте дальше. [ Читать: 5 ошибок в блогах, которые я сделал, когда начал этот блог ]
Yoast SEO Карта сайта Пустая проблема
Картинки ниже описывают проблему. Как видите, файл sitemap.xml, сгенерированный плагином Yoast для WordPress SEO, пуст. Если карта сайта не работает, это может привести к проблемам с правильной или своевременной индексацией вашего сайта Google.
WordPress Yoast SEO Пустой Карта сайта
Когда я отключил W3 Total Cache, я мог видеть отдельные ссылки на карту сайта, но они не были отформатированы и не были связаны. Визуально это было проблемой. [ Читать: Исправить пустую страницу WordPress со словом «ошибка» ]
WordPress Yoast XML Sitemap – без стиля
Когда я просмотрел исходный код HTML карты сайта, он не был пустым и имел то, что должен был иметь. И когда я проверял карту сайта с некоторыми валидаторами карты сайта, я не обнаружил никаких проблем. Так что проблема была только визуальной.
Yoast XML Sitemap Source
Но я все равно хотел исправить эту пустую проблему с картой сайта Yoast XML. Итак, вот что я сделал, чтобы карты сайта WordPress SEO нормально работали на веб-сервере Nginx.
Рекомендуемые руководства:
Исправлена проблема с пустым XML-файлом Yoast
Плагин WordPress SEO после активации предоставляет вам правила перезаписи для веб-сервера Nginx. Но необходимы дополнительные правила переписывания, чтобы сделать генерацию карты сайта XML частью плагина полностью работающей. Пустая карта сайта XML связана с тем, что main-sitemap.xsl
(таблица стилей XML) перенаправлена неправильно. Это легко решается добавлением следующего правила перезаписи в файл хоста Nginx внутри блоков сервера:
rewrite ^/([a-z]+)?-?sitemap.xsl$ /index.php?xsl=$1 last;
Если вы заинтересованы в том, чтобы увидеть все правила перезаписи Nginx, которые я использую для корректной работы плагина WordPress SEO, взгляните на блок кода ниже:
Я загрузил этот код в мой Gist-репозиторий на тот случай, если вы захотите его разветвить или улучшить. [ Читать: 6 настроек FeedBurner для улучшения доставки вашего WordPress ]
Настройки общего кэша W3 для предотвращения пустого файла Sitemap Yoast
В дополнение к перезаписи Nginx для исправления пустой ошибки Yoast SEO Sitemap вам также необходимо правильно настроить общий кэш W3 и применить необходимые исключения, чтобы избежать кэширования или минимизации карты сайта и связанных файлов. Добавьте следующий код в кэш страницы (никогда не кэшируйте следующие элементы), Minify (никогда не минимизируйте следующие элементы), кэш браузера (список исключений 404 ошибок) и CDN (отклоненные файлы) общего кэша W3.
([a-z0-9_-]+)?sitemap(_index)?(-)?([0-9]*)?.(xml(.gz)?|xsl)$
Приведенный выше код также доступен в моем репозитории Gist для доработки. Вот скриншот того, куда должна идти приведенная выше строка кода в настройках W3 Total Cache.
W3 Total Cache Settings для Yoast XML Sitemap на Nginx
После того как вы ввели свои правила перезаписи и добавили необходимые настройки в конфигурацию общего кэша W3, продолжайте, перезапустите веб-сервер Nginx и очистите все кэши. Это должно было решить вашу пустую проблему с картой сайта Yoast SEO .
Источник записи: https://www.smarthomebeginner.com