Страница 404 для несуществующих адресов
пошаговая инструкция · Около часа
1. Что произошло
Если открыть адрес, которого нет, сайт должен честно ответить «404 — не найдено».
2. Почему это важно
Поисковик может считать пустые адреса настоящими страницами и засорять индекс. После исправления: Чище индекс, меньше дублей в поиске.
3. На каких страницах обнаружено
Проверка адреса, которого заведомо нет на сайте: он должен отвечать кодом 404, а не 200 или редиректом на главную.
Чтобы увидеть адреса на вашем сайте, откройте инструкцию из отчёта или добавьте домен в адрес: /fix/not_found/ваш-сайт.ru.
4. Как исправить
Для WordPress
- Тема должна иметь файл 404.php. Если плагин кэширования или SEO отдаёт 200 вместо 404, отключите «редирект 404 на главную» в его настройках.
Общее для любого сайта
- Создайте страницу «Страница не найдена» с меню, поиском и ссылками на разделы.
- Настройте сервер так, чтобы она отдавалась с кодом 404 (не 200 — это «мягкая 404» — и не 301/302 на главную).
- В ErrorDocument и error_page указывайте локальный путь (/404.html), а не полный адрес с https://: полный адрес превращается в редирект.
5. Готовый код
Замените example.com на свой домен. Перед правкой конфигурации сделайте резервную копию файла.
Любой сайт
PHP: отдать 404 в самописном коде
http_response_code(404);
include __DIR__ . '/404.html';
exit;1С-Битрикс
/404.php
<?php
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php');
CHTTP::SetStatus('404 Not Found');
@define('ERROR_404', 'Y');
$APPLICATION->SetTitle('Страница не найдена');
?>
<p>Такой страницы нет. Перейдите на <a href="/">главную</a> или воспользуйтесь поиском.</p>
<?php require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/footer.php'); ?>nginx
nginx
error_page 404 /404.html;
location = /404.html { internal; }Apache
.htaccess
ErrorDocument 404 /404.html6. Как проверить результат
- Команда выводит 404.
- В браузере открывается ваша страница с меню, а не пустой экран.
- Нажмите «Перепроверить сайт».
Код ответа на несуществующий адрес
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/definitely-not-exists-123Чтобы перепроверить сайт, откройте отчёт и нажмите «Проверить заново».