Ошибка 404 на сайте означает, что сервер не нашел страницу по запрошенному адресу. Чтобы найти битые страницы, сверьте отчеты Google Search Console и Яндекс Вебмастера с обходом сайта краулером. Дальше решение простое: если у страницы есть замена, ставьте редирект 301 на самую близкую по смыслу страницу, а если замены нет, оставляйте честный ответ 404 или 410.
Обычно о проблеме узнают случайно: клиент пишет менеджеру, что ссылка из рассылки ведет в пустоту. Или после редизайна заявки с сайта падают на треть, а в отчете Search Console появляется несколько сотен адресов со статусом «Не найдено (404)». Специально страницы никто не удалял: сменилась структура каталога, у товаров поменялись адреса, раздел акций выключили. Ниже порядок, по которому мы на проектах B2BPRO.KZ разбираем такие случаи, и правила, которые помогают не наделать новых ошибок, исправляя старые.
Что такое ошибка 404 и откуда берутся битые страницы
Ошибка 404 — это код ответа сервера «Not Found»: адрес запрошен, но документа по нему нет. Битая страница — это адрес, который отдает 404, хотя на него до сих пор ведут ссылки, закладки пользователей или старые записи в индексе поисковиков. Сама по себе ошибка 404 нормальна, проблемой она становится, когда на несуществующий адрес продолжают приходить люди и роботы.
Причины на сайтах наших клиентов в Казахстане повторяются от проекта к проекту:
- смена структуры адресов при редизайне или переезде на другую CMS, например с Tilda или самописного движка на WordPress или 1С-Битрикс;
- переименование товаров, услуг и категорий, когда вместе с названием меняется и адрес;
- удаление снятых с продажи товаров, прошлых акций, вакансий и новостей;
- опечатки во внутренних ссылках, в меню и в текстах статей;
- ссылки с других сайтов, каталогов и соцсетей, в которых адрес набран с ошибкой;
- смена протокола или домена без переадресации, например переход с http на https или с одного домена на другой.
Вредят ли битые страницы позициям сайта
Сами ошибки 404 позиции живых страниц напрямую не обрушивают, но через них сайт теряет трафик, ссылочный вес и доверие пользователей. Google в своей документации прямо пишет, что уже проиндексированные адреса, которые начали отдавать код 4xx, удаляются из индекса, а обход таких адресов постепенно замедляется. Подробности есть в справке Google о кодах ответа HTTP и ошибках сети.
Если страница услуги приносила заявки из поиска, а после смены адреса стала отдавать 404, она выпадет из выдачи, и новая страница начнет набирать позиции с нуля. Внешние ссылки, которые вели на старый адрес, перестанут работать на сайт. Пользователь, который пришел по закладке или из рассылки, увидит ошибку и, скорее всего, уйдет к конкуренту. Google отдельно отмечает в справке по отчету «Индексирование страниц», что ответ 404 для страницы, удаленной без замены, проблемой не считается. Поэтому цель простая: ни один ценный адрес не должен остаться без правильного ответа. Обнулять все 404 незачем.
Чем отличаются коды 404, 410, 301, 302 и ложная ошибка 404
Для каждой битой страницы выбирают один из пяти вариантов ответа:
| Ответ | Что означает | Когда использовать |
|---|---|---|
| 404 Not Found | Документа по адресу нет | Страница удалена, замены нет, или адреса никогда не существовало |
| 410 Gone | Ресурс удален окончательно | Страница удалена навсегда и возвращать ее не планируют |
| 301 Moved Permanently | Страница навсегда переехала на другой адрес | Сменился адрес, страницы объединены, есть близкая по смыслу замена |
| 302 Found | Страница временно доступна по другому адресу | Технические работы, временные тесты, сезонная подмена |
| Ложная ошибка 404 (soft 404) | Сервер отдает 200, но на странице сообщение «не найдено» или пустой шаблон | Никогда: это ошибка настройки, ее нужно исправлять |
Яндекс в справочнике кодов статуса HTTP для Вебмастера советует использовать 302 только для временных задач, а для постоянного переезда ставить 301 и сохранять перенаправление минимум 6 месяцев. Google в рекомендациях по переезду сайта говорит о сроке «как правило, не меньше года». Мы редиректы вообще не снимаем без веской причины: правило в конфигурации сервера ничего не стоит, а ссылка на старый адрес может всплыть через несколько лет.
Ложная ошибка 404 — это страница, которая выглядит как ошибка, но отдает код 200. Так бывает, когда движок вместо 404 показывает главную, пустую категорию или заглушку. Поисковик тратит на такие адреса время обхода и может держать их в индексе как пустые страницы. Search Console помечает их отдельной причиной «Ложная ошибка 404».
Как найти битые страницы на сайте
Надежнее всего искать битые страницы сразу в трех источниках: в отчетах поисковиков, краулером и по данным посещаемости. Каждый видит свою часть проблемы.
Google Search Console
В разделе «Индексирование» откройте отчет «Страницы» и найдите причины «Не найдено (404)» и «Ложная ошибка 404». В списке будут адреса, которые Google знает и которые сейчас не отвечают нормально. После исправления на странице причины есть кнопка «Проверить исправление». Проверка обычно идет около двух недель, и нажимать кнопку повторно, пока она не закончилась, не нужно.
Яндекс Вебмастер
В Вебмастере есть отчет о неработающих ссылках. По описанию в справке Яндекса о неработающих ссылках, он делит их на внешние, которые ведут на ваш сайт с других ресурсов, и внутренние, между страницами самого сайта, а также отдельно показывает ссылки, по которым реально переходят пользователи. Их исправляйте первыми: по ним уходят живые посетители. Справка также предупреждает, что часть ссылок в отчет не попадает, например если страница с ссылкой роботу неизвестна. Поэтому отчет Вебмастера не заменяет собственный обход сайта.
Краулер
Краулер — это программа, которая обходит сайт по ссылкам так же, как поисковый робот, и записывает код ответа каждой страницы. Самый известный вариант для этой задачи — Screaming Frog SEO Spider: в бесплатной версии он обходит до 500 адресов, находит ссылки на 404, ошибки сервера и цепочки редиректов. Небольшому сайту услуг этого лимита обычно хватает, каталогу на тысячи товаров нужна платная лицензия или облачный сервис аудита. Краулер показывает и битый адрес, и страницу, где стоит ссылка на него, а без второго внутренние ссылки не исправить.
Данные посещаемости и логи сервера
В Яндекс Метрике и Google Analytics можно отфильтровать визиты на страницы с заголовком вашей страницы 404 и посмотреть, какие адреса посетители запрашивали и откуда пришли. Логи сервера полнее: в них виден каждый запрос с кодом 404, включая запросы роботов. Нет доступа к логам, попросите выгрузку у хостинга.
Как решить, что делать с каждой битой страницей
Для каждого битого адреса нужно ответить на один вопрос: есть ли на сайте страница, которая решает ту же задачу пользователя. От ответа зависит, ставить редирект или оставить 404. Список из всех источников сведите в одну таблицу, уберите дубли и пройдите по нему в таком порядке:
- Отметьте адреса, на которые есть внешние ссылки, переходы пользователей или которые раньше приносили поисковый трафик. Это приоритет: на них теряются деньги.
- Для каждого такого адреса найдите замену. Товар переименован — ведите на новый адрес товара. Товар снят с продажи — на категорию или на ближайшую модель. Две статьи объединены — на итоговую.
- Если замены по смыслу нет, оставьте ответ 404 или поставьте 410 для страниц, удаленных навсегда.
- Исправьте внутренние ссылки на битые адреса прямо в меню, текстах и шаблонах, а не только поставьте редирект. Ссылка должна сразу вести на рабочий адрес.
- Обновите карту сайта sitemap.xml: в ней должны остаться только адреса с ответом 200.
- Проверьте результат повторным обходом краулером и запустите проверку исправления в Search Console.
Самая частая ошибка, которую мы встречаем на аудитах: редирект всех битых страниц на главную. Google в руководстве по переезду сайта со сменой адресов предупреждает, что массовая переадресация старых адресов на нерелевантную страницу, например на новую главную, путает пользователей и может считаться ложной ошибкой 404. Ссылочный вес не передается, а человек, который искал конкретный товар, оказывается на главной и не понимает, что произошло.
Как настроить редирект 301 на WordPress, 1С-Битрикс и на сервере
Редирект 301 настраивают одним из трех способов: в конфигурации веб-сервера, плагином или модулем CMS, или кодом самого движка. Серверный вариант работает быстрее всего, потому что запрос не доходит до CMS. Google тоже рекомендует серверные постоянные редиректы и пишет, что 301 не приводит к потере PageRank.
Apache и файл .htaccess
На хостингах с Apache редирект одной страницы записывается одной строкой в файле .htaccess в корне сайта:
Redirect 301 /old-page/ https://site.kz/new-page/
Правила лучше ставить выше блока # BEGIN WordPress, чтобы правила движка их не перехватили. Перед правкой сохраните копию файла: ошибка в синтаксисе .htaccess кладет весь сайт с ошибкой 500.
Nginx
Если сайт работает на Nginx, правило добавляют в конфигурацию сервера, например так:
location = /old-page/ { return 301 https://site.kz/new-page/; }
Правку конфигурации обычно делает разработчик или администратор хостинга.
WordPress
WordPress сам переадресует старые адреса записей, если у них сменился ярлык (slug): функция ядра wp_old_slug_redirect в документации WordPress ищет запись по прежнему ярлыку и отдает постоянный редирект 301. Но у этого механизма есть ограничение: иерархические типы записей, к которым относятся обычные страницы, он пропускает. Если переименовать страницу услуги, старый адрес начнет отдавать 404.
Для остальных случаев обычно ставят плагин. Redirection, по данным его страницы на wordpress.org, установлен более чем на 2 миллионах сайтов. Он ведет журнал ошибок 404, позволяет массово назначать редиректы, сам создает переадресацию при смене постоянной ссылки записи и выгружает правила в формат .htaccess или Nginx. Удобная схема: плагин собирает 404, раз в месяц вы разбираете журнал, а важные правила переносите на сервер.
1С-Битрикс
На сайтах на 1С-Битрикс редиректы чаще всего прописывают в .htaccess или в конфигурации Nginx, по тем же правилам, что описаны выше. При переносе каталога важно заранее выгрузить список старых адресов товаров и разделов: после переезда восстановить его будет гораздо сложнее. Если сайт меняет движок или структуру, соответствие старых и новых адресов стоит заложить в техническое задание, а не собирать после запуска. Именно так мы работаем, когда делаем разработку сайтов под ключ с переносом со старой платформы: таблица редиректов входит в план запуска наравне с дизайном.
Какие ошибки при настройке редиректов встречаются чаще всего
Чаще всего редиректы портят цепочки, петли и неверный тип переадресации. Полный список того, что мы находим на аудитах:
- Цепочки редиректов. Старый адрес ведет на промежуточный, тот на следующий, и только потом на рабочий. Googlebot проходит до 10 переходов, но Google советует вести сразу на конечный адрес, а если не получается, держать цепочку короткой, в идеале не больше трех шагов. Каждое новое правило проверяйте: не стоит ли уже редирект на адрес, с которого вы перенаправляете.
- Петли: страница А ведет на Б, а Б обратно на А. Браузер показывает ошибку о слишком большом числе переадресаций, страница недоступна совсем.
- 302 вместо 301. Часть плагинов и конструкторов по умолчанию ставит временный редирект. Для постоянного переезда поисковик может долго держать в индексе старый адрес.
- Редирект без исправления ссылок: меню, футер и статьи продолжают ссылаться на старые адреса, и каждый клик проходит через лишний переход.
- Битые адреса в sitemap.xml. Карта сайта сообщает поисковику, что адрес важен, а он отдает 404 или редирект.
- Закрытие удаленных разделов только в robots.txt. Яндекс допускает такой вариант для удаленного раздела, но если на страницы есть внешние ссылки, полезнее перенаправить их на живой раздел.
Какой должна быть страница 404
Хорошая страница 404 отдает настоящий код 404 и помогает человеку продолжить путь по сайту. Проверить код можно в Search Console через проверку адреса или любым онлайн-сервисом проверки ответа сервера: введите заведомо несуществующий адрес, например site.kz/proverka-404, и посмотрите, какой код пришел. Если пришел 200, у вас ложная ошибка 404, и ее нужно исправлять в настройках темы или сервера.
Что стоит разместить на самой странице:
- понятное сообщение без технического жаргона: страница не найдена, возможно, адрес изменился;
- поиск по сайту;
- ссылки на главные разделы: услуги, каталог, контакты;
- телефон или кнопку мессенджера, чтобы клиент мог спросить напрямую.
Страница 404 не должна автоматически перебрасывать человека на главную через несколько секунд. Для поисковика это та же ложная ошибка, а пользователь не успевает понять, что случилось.
Пример: переезд каталога без потери заявок
Условный пример, типичный для наших проектов: компания в Алматы продает промышленное оборудование и переводит сайт с устаревшего движка на WordPress. На старом сайте 600 адресов товаров и 40 категорий, при переезде меняется вся структура: вместо /catalog/item.php?id=154 появляются понятные адреса вида /catalog/nasosy/nasos-cnl-40/.
Если запустить новый сайт без подготовки, в течение пары недель Search Console покажет сотни адресов «Не найдено (404)», а позиции по товарным запросам обнулятся. До запуска делают так:
- Выгружают все старые адреса из sitemap.xml, из Search Console, из Метрики и краулером.
- Составляют таблицу соответствия «старый адрес — новый адрес» для каждого товара и категории.
- Снятые с производства позиции ведут на категорию или на модель-замену, а для служебных страниц, у которых нет аналога, оставляют 404.
- Правила редиректов загружают на сервер одновременно с запуском нового сайта.
- В первый день проверяют краулером выборку старых адресов: каждый должен отдавать 301 и вести на страницу с ответом 200, без цепочек.
- Следующие 4-6 недель раз в неделю смотрят журнал 404 и отчеты поисковиков и добавляют пропущенные правила.
Тогда просадка трафика после переезда обычно короткая, а заявки с товарных страниц не теряются: посетитель со старой ссылки попадает на тот же товар. Без таблицы редиректов компания запускает новый сайт с нулевой историей.
Как часто проверять сайт на ошибку 404
Для сайта услуг достаточно проверки раз в месяц, для интернет-магазина и каталога с частыми изменениями ассортимента лучше раз в неделю. Отдельная проверка нужна после любого крупного изменения: редизайна, смены CMS, переименования разделов, перехода на новый домен или протокол.
Минимальный регламент, который мы рекомендуем клиентам, выглядит так: раз в месяц открыть отчет «Страницы» в Search Console и отчет о неработающих ссылках в Вебмастере, разобрать новые адреса по правилу из раздела выше и раз в квартал прогонять сайт краулером. Это час-два в месяц, зато ни одна страница с трафиком не выпадет из поиска незаметно. Если на это нет времени у своей команды, проверку битых страниц и редиректов можно включить в регулярное SEO-продвижение сайта: технический аудит, исправление 404 и контроль переездов входят в нашу ежемесячную работу. Если сайт уже потерял позиции после переделки, начните с того, чтобы получить SEO-аудит сайта с полным списком битых адресов и готовой таблицей редиректов.
Частые вопросы
Нужно ли исправлять все ошибки 404 на сайте?
Нет, исправлять нужно только те 404, на которые ведут ссылки, приходят пользователи или которые раньше приносили трафик. Если страница удалена и замены ей нет, ответ 404 считается нормальным, и Google прямо пишет, что это не проблема. Важно, чтобы на такие адреса не ссылались ваши собственные меню, статьи и карта сайта.
Можно ли сделать редирект всех битых страниц на главную?
Делать так не стоит. Google предупреждает, что массовая переадресация старых адресов на нерелевантную страницу, например на главную, путает пользователей и может считаться ложной ошибкой 404, поэтому вес старых страниц не передается. Ведите каждый адрес на ближайшую по смыслу страницу, а если такой нет, оставляйте честный ответ 404 или 410.
Сколько времени держать редирект 301?
Яндекс советует сохранять перенаправление минимум 6 месяцев, Google рекомендует держать его, как правило, не меньше года. На практике лучше не снимать редиректы вообще, если для этого нет технической причины. Правило в конфигурации сервера почти не влияет на скорость, а ссылки на старый адрес могут встречаться на других сайтах годами.
Чем 301 редирект отличается от 302?
Редирект 301 сообщает, что страница переехала навсегда, а 302 означает временное перемещение. При 301 поисковик заменяет в индексе старый адрес новым и передает ему сигналы старой страницы. Код 302 подходит для технических работ или временных тестов, а для смены адреса, объединения страниц и переезда сайта нужен именно 301.
Как быстро поисковики увидят исправленные 404?
Обычно на это уходит от нескольких дней до нескольких недель, в зависимости от того, как часто робот заходит на сайт. В Google Search Console после исправления можно нажать «Проверить исправление» в отчете «Страницы», проверка обычно занимает около двух недель. Ускорить процесс помогает обновленная карта сайта sitemap.xml без битых адресов.
