В WordPress есть 2 вида обработки страниц выдающих ошибку 404. Ответ сервера и ответ темы. Если у вас сайт имеет стандартный формат ссылок WordPress вида https://seopmr.ru/?p=77777, то настройка превращается в кошмар, для такого неопытного пользователя как я, особенно если на сайте много страниц в индексе и на них ведет много ссылок как внешних, так и внутренних. Но я смог настроить оба ответа с минимальным ущербом для SEO и сайт потихоньку возвращается в индекс Гугл.
Первое, что я настроил, это ответ сервера. Если это не сделать, то будет выдаваться ужасная белая страница, после отображения которой, вкладку просто закрывают пользователи, да и робот поисковой системы получает сигнал о низком качестве сайта (чем больше таких сигналов, тем сложнее потом вернуть сайт в индекс и занимать хоть какие-то позиции, даже если страницы в поиске).
Вот как было:
Вот как стало:
Новый дизайн не только яркий, но и позволяет сделать выбор: уйти совсем или все же перейти на карту сайта или главную.
Делается такой ответ сервера просто. Создаете или скачиваете готовую страничку 404 ошибки в HTML. Прописываем ее вывод в .htaccess:
ErrorDocument 404 https://site.ru/404.html
Теперь если вбить любой набор символов после https://seopmr.ru/ (например https://seopmr.ru/77777) или перейти на любую уже несуществующую страницу (ранее ЧПУ, например https://seopmr.ru/o-tom-kakie-byvayut-svadebnye-platya.html) будет выходить красивая и понятная страничка https://seopmr.ru/404.html. Я не стал ее закрывать от индексации роботами, что бы они быстрее пересканировали мой сайт, ведь с этой страницы теперь всегда можно уйти на карту сайта.
Сложнее дело обстоит с ответом 404.php моей темы. По умолчанию она уводила на станицу с архивами, причем пустую. Редактирование 404.php моей темы, как и применение специальных плагинов не работало (скорее всего из-за новой структуры постоянных ссылок). Теперь после набора любого символа после
- https://seopmr.ru/?
- https://seopmr.ru/?p
- https://seopmr.ru/?p=
- https://seopmr.ru/?cat=
- https://seopmr.ru/?page_id=
я получал пустую страницу с хедером и футером. Помогло только полное удаление содержимого 404.php моей темы с заменой на код:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".get_bloginfo('url'));
exit();
?>
После этого любая неправильно введенная станица имеет 301 редирект на главную.
Было:
Стало:
Теперь сайт удобен для пользователей и роботов, хоть и пришлось пожертвовать ЧПУ и некоторыми посадочными страницами, которые я когда-то двигал и на которые вели внешние и внутренние ссылки. Естественно, сайт пришлось почистить от старой перелинковки, ведь само наличие 301 редиректа и грамотной 404 страницы хорошо, но важно так же, что бы страниц отдающих 404 ошибку было минимальное количество на сайте. Как найти все такие страницы и убрать их я расскажу в отдельном посте. Это долго и непросто, если сайт большой и хорошо перелинкован, но возможно!
Не забывайте так же, что если ваша страница 404 на WordPress не оформлена, то сайты ссылающие на вас имеют проблемы в поисковых системах и конечно, администраторы скорее всего снимут такие ссылки на вас. А это потеря ИКС и ссылочного профиля.
Один ответ к “Как правильно настроить 404 ошибку в WordPress: нюансы с ЧПУ”
Мне помогла информация с сайтов
2domains.ru/support/hosting/kak-nastroit-redirekt-oshibki-404
и
clickfraud.ru/kak-perenapravit-straniczu-404-na-glavnuyu-straniczu-v-wordpress/