РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗sePmInE4 88 of 123 menu

Ошибки 404 в SEO

Когда пользователь заходит на несуществующую страницу, сервер должен сказать браузеру и поисковому роботу: «Такой страницы нет». Для этого есть код ответа 404.

Но иногда сайт отдает код 200 на страницу, которой на самом деле нет. Это называется soft-404. И это серьезная ошибка с точки зрения SEO.

Разберемся, как правильно отдавать коды ответа и не создавать soft-404 случайно.

Что такое 404

Код ответа 404 означает, что страница не найдена. Робот получает этот код и понимает: индексировать нечего, страницу нужно убрать из поиска.

Правильный ответ сервера выглядит так:

HTTP/1.1 404 Not Found

Если сервер вернул 404, робот не будет считать эту страницу частью сайта. Это честно и понятно.

Чем опасен soft-404

Soft-404 - это когда страница не существует, но сервер отдает код 200. Робот думает, что все хорошо, и пытается проиндексировать пустую или бессмысленную страницу.

Представь, что сайт отдает такую страницу:

<h1>Страница не найдена</h1> <p> Извините, такой страницы нет. </p>

Но при этом сервер вернул код 200. Робот видит заголовок «Страница не найдена», а код говорит, что все в порядке. Получается противоречие.

Чем это плохо:

Робот тратит время на индексацию мусора. В поиске появляются пустые страницы. Пользователи попадают на них и уходят. Поведенческие факторы падают.

Как отдавать правильные коды

Если страница не найдена, сервер должен вернуть 404. Это делается на стороне сервера или бэкенда.

Вот пример на PHP:

<?php http_response_code(404); include '404.php'; ?>

Вот пример для Nginx:

error_page 404 /404.html;

Вот пример для Apache через .htaccess:

ErrorDocument 404 /404.html

Главное правило: если страницы нет, код ответа должен быть 404, а не 200.

Как не создать soft-404 случайно

Самая частая причина soft-404 - неправильная обработка несуществующих адресов.

Например, сайт на PHP делает так:

<?php if ($page) { include $page; } else { include '404.php'; } ?>

Но код ответа не меняется. Сервер отдает 200, хотя показывает страницу 404. Это и есть soft-404.

Чтобы этого избежать, всегда явно устанавливай код ответа:

<?php if ($page) { include $page; } else { http_response_code(404); include '404.php'; } ?>

Еще одна причина soft-404 - редиректы на главную. Если страница не найдена, не надо перенаправлять пользователя на главную с кодом 200. Лучше отдать честный 404.

Практические задачи

Расскажите, чем отличается код ответа 404 от soft-404.

Почему soft-404 опасны для SEO? Назовите минимум две причины.

Дан код на PHP:

<?php if ($page) { include $page; } else { include '404.php'; } ?>

Найдите ошибку и исправьте ее так, чтобы сервер отдавал правильный код.

Дан файл .htaccess:

ErrorDocument 404 /index.html

Что произойдет, если пользователь зайдет на несуществующую страницу? Будет ли это soft-404?

Дана верстка страницы 404:

<h1>Страница не найдена</h1> <p> Попробуйте вернуться на главную. </p> <a href="/">На главную</a>

Сервер отдает эту страницу с кодом 200. Переделайте так, чтобы код ответа был правильным. Опишите, что нужно изменить на сервере.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить