После переноса моего блога на 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, взгляните на блок кода ниже:
# This rewrite redirects sitemap.xml to sitemap_index.xml, which is what Yoast's WordPress SEO plugin generates.
rewrite ^/sitemap.xml$ /sitemap_index.xml permanent;
# This rewrite ensures that the styles are available for styling the generated sitemap.
rewrite ^/([a-z]+)?-?sitemap.xsl$ /index.php?xsl=$1 last;
# These rewrites rule are generated by Yoast's plugin for Nginx webserver.
rewrite ^/sitemap_index.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
Я загрузил этот код в мой 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
![[Решено] WordPress Yoast SEO карта сайта пуста на Nginx](https://mediadoma.com/wp-content/uploads/2020/06/post-20553-5ef3ec0c106b7.jpg)
![[Решено] WordPress Yoast SEO карта сайта пуста на Nginx](https://mediadoma.com/wp-content/uploads/2020/06/post-20553-5ef3ec0caeb88.jpg)
![[Решено] WordPress Yoast SEO карта сайта пуста на Nginx](https://mediadoma.com/wp-content/uploads/2020/06/post-20553-5ef3ec0d71929.jpg)
![[Решено] WordPress Yoast SEO карта сайта пуста на Nginx](https://mediadoma.com/wp-content/uploads/2020/06/post-20553-5ef3ec0e5bd6e.jpg)