Перейти к содержимому

MOAB

* * * * * 3 Голосов

Обработка ошибки 404: не найдена страница на сайте

ошибка 404 страница 404

  • Войдите, чтобы ответить
Сообщений в теме: 14

#1 uniks

uniks

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 3 070 сообщений
2 909
  • ИзИркутск

Отправлено 29 Март 2015 - 10:48

Удивлюсь, если встречу человека, который хотя бы год активно пользуется интернетом и ни разу не встречал ошибку 404: не найдена страница. При этом существует много сайтов, где до сих пор не уделяют должного внимания корректной обработке 404 ошибки, тем самым теряя посетителей. Источник возникновения ошибки 404 всегда один: страница удалена (не найдена) по заданному адресу. А причин может быть много: в основном это технические проблемы.

Это нормальный процесс жизни сайта, когда какие-то материалы удаляются, и на их месте ничего нового не появляется, либо происходят сбои внутри системы управления. Главное, чтобы глюки оперативно устранялись и не успевали массово попасть к поисковым роботам, так как это может привести к падению позиций за счет исключения страниц из поиска, смены релевантных или потери веса от внешних ссылок.

Одно дело, когда есть понимание ошибки и как ее решить, другое дело, как это видит посетитель сайта. Представим ситуацию, что он переходит по ссылке с форума на ваш сайт, а ему говорят, что страницы не существует. Его действия логичны - он тут же уходит. Если же он попадает на такую страницу по ссылке внутри вашего сайта, то здесь вероятность 50 на 50 - может уйти, а может нажать кнопку "Назад" в браузере (см. битые ссылки).


Как минимизировать риск от 404 ошибки:

1. Красивая страница сайта: даже если у вас идеальная структура и нет битых ссылок, пользователь все равно может неверно ввести адрес страницы, и ваш сайт выдаст ошибку 404. Поэтому всегда оформляйте страницу с ошибкой 404 в стиле сайта и указывайте на ней дополнительную навигацию, чтобы не заставлять посетителя думать, что делать дальше.

2. Удаление материала или перенос: если у вас меняется адрес страницы с материалом или целиком структура сайта, то лучше сделать 301 редиректы, тем самым исключив вероятность возникновения 404 ошибки. Когда вы удаляете материал, то позаботьтесь, чтобы на него не осталось ссылок - как внутренних, так и внешних. Для интернет-магазинов, у которых часто меняется ассортимент, важно иметь архивы товаров, но ни в коем случае не удалять их страницы с сайта.

3. Технические сбои: оперативный мониторинг количества страниц сайта, ошибок в поисковых системах и наличия битых ссылок позволяют снизить риск, вызванный проблемами со стороны движка. Выявили, написали программистам, получили ответ, проверили результат.


Поисковые системы нормально относятся к появлению небольшого процента ошибок 404 на сайте, особенно если это вызвано только удалением материалов и полным отсутствием ссылок на них. Во всех остальных случаях это может привести к серьезным последствиям в продвижении, поэтому необходимо оперативно принимать меры по устранению проблем, которые приводят к возникновению таких ошибок, и вести постоянный контроль над ситуацией.


Вернуться к содержанию SEO-курса

Мои услуги: Консультации по SEO от 15000 р. | Продвижение сайтов от 29000 р. | Разработка сайтов под SEO

Алексей Благих

#2 Spinne

Spinne

    Зануда™

  • Основатель
  • PipPipPipPipPip
  • 1 859 сообщений
3 194
  • Излесу, вестимо

Отправлено 29 Март 2015 - 17:11

Просмотр сообщенияuniks (29 Март 2015 - 10:48) писал:

Как минимизировать риск от 404 ошибки:
Хочется немножко "пораспрягаться" на эту тему, она всегда волнует аудиторию. :) Тем более что Алексей дал вероятный сценарий: посетитель увидит число 404, обидится и уйдет.

Часто из этого делают неверный вывод: а вот поставлю-ка редирект на главную, и пусть все катятся туда – авось что-нибудь привлечет внимание и посетитель так просто не уйдет.
На практике такой подход мало что даст. Если посетитель идет на внутреннюю страницу по ссылке – неважно, где он эту ссылку взял, но он пришел за конкретным материалом. Оказавшись на главной, он чаще всего не понимает, что его "перебросили". Зато отлично понимает, что нужного материала здесь нет и делать ему на этом сайте нечего. Человек чувствует себя обманутым.

Необходимый минимум заботы о посетителе – честно сообщить об ошибке и дать рекомендации, чтобы он не ушел просто так. Начнем с "Такой страницы нет. Возможно, вы воспользовались неправильной ссылкой". И дать ссылки на главную и на карту сайта (кстати, это тот случай, когда HTML-карта просто необходима, и XML для роботов ее не заменит). Неплохо, если карта сайта будет на странице ошибки вместе с сообщением. Если в вашем функционале есть поиск по сайту, позаботьтесь, чтобы поисковая форма тоже была на "странице 404".

Есть еще тема "прикольных страниц 404" – какое-нибудь забавное/остроумное/неожиданное оформление страницы. Ссылки на такие странички передают из рук в руки, из такого может даже получиться неплохой приток трафика на "страницу 404". Вам такие ссылки встречались? Если встречались, вспомните, захотелось ли вам посмотреть на весь остальной сайт. :) Скорее всего, дальше этой страницы вы не пошли...

И пара слов на тему "для роботов". Хостеры бывают разные, иногда не слишком добросовестные с неверного адреса перекидывают посетителя 302-м редиректом на свою страницу. Не поленитесь проверить – выдает ли ваша страница ошибки реальный статус "404 Not Found" в HTTP-заголовке. Для роботов это необходимо.
Ник не менял, подпись поменяю позже. Ваш Зануда. Он же AHP-net, но это уже там

#3 AdisPrint

AdisPrint

    Почетный

  • Активный участник
  • PipPipPipPipPip
  • 1 943 сообщений
1 594

Отправлено 09 Октябрь 2016 - 22:03

Просмотр сообщенияSpinne сказал:

с неверного адреса перекидывают посетителя 302-м редиректом на свою страницу. Не поленитесь проверить – выдает ли ваша страница ошибки реальный статус "404 Not Found" в HTTP-заголовке. Для роботов это необходимо.
Апну тему. Речь не про хостера. Не существующие адреса 302 редиректом переадресуются на 404 страницу, Своя 404 страница на сайте отдает заголовок 404 Not Found, хотя не для ПС потому что в роботсе Disallow: /404.html. В результате при попытке проверить ответ сервера Яндекс и Гугл выдают Данный URL запрещён к индексированию в файле robots.txt
В результате к примеру удаленные страницы так и продолжают присутствовать в структуре сайта, яндекс бот так и продолжает в них долбится и в вебмастере они висят с HTTP 302.

На 404 нужно как-то по другому переадресовываться или просто яндекс бот слегка туповат.
СНПЧ, чернила, картриджи, фотобумага для принтеров и МФУ - AdisPrint.ru

#4 snatch

snatch

    Мастер

  • Активный участник
  • PipPipPipPip
  • 1 257 сообщений
1 378
  • ИзFuturama

Отправлено 10 Октябрь 2016 - 01:23

Просмотр сообщенияAdisPrint сказал:

Не существующие адреса 302 редиректом переадресуются на 404 страницу, Своя 404 страница на сайте отдает заголовок 404 Not Found, хотя не для ПС потому что в роботсе Disallow: /404.html
сложно то как :)
Теперь нужно доступ к этим страницам через robots открыть, чтоб бот зашел увидел

Просмотр сообщенияAdisPrint сказал:

заголовок 404 Not Found
и удалил все ненужное из индекса, иначе так и останется

#5 AdisPrint

AdisPrint

    Почетный

  • Активный участник
  • PipPipPipPipPip
  • 1 943 сообщений
1 594

Отправлено 10 Октябрь 2016 - 09:34

snatch, Ну так в CMS намутили.

Просмотр сообщенияsnatch сказал:

Теперь нужно доступ к этим страницам через robots открыть, чтоб бот зашел увидел
В смысле к этим? К этим, которых нет доступ открыт, он закрыт к 404 странице на которую они переадресуются.
СНПЧ, чернила, картриджи, фотобумага для принтеров и МФУ - AdisPrint.ru

#6 snatch

snatch

    Мастер

  • Активный участник
  • PipPipPipPip
  • 1 257 сообщений
1 378
  • ИзFuturama

Отправлено 10 Октябрь 2016 - 11:48

Если у вас 404 страница отдает код 404 Not Found, то откройте ее, зачем ее закрытой держать. Потому у вас и висят балластом уже удаленные страницы

Боту доступ закрыт, и пс думает что у вас там что то осталось, чтоб так не думал нужно ему показать 404

#7 KaSH

KaSH

    Инструктор по счастью

  • Основатель
  • PipPipPipPip
  • 1 263 сообщений
2 057
  • Изморя и с гор

Отправлено 10 Октябрь 2016 - 12:32

Просмотр сообщенияAdisPrint (09 Октябрь 2016 - 22:03) писал:

Апну тему. Речь не про хостера. Не существующие адреса 302 редиректом переадресуются на 404 страницу, Своя 404 страница на сайте отдает заголовок 404 Not Found, хотя не для ПС потому что в роботсе Disallow: /404.html. В результате при попытке проверить ответ сервера Яндекс и Гугл выдают Данный URL запрещён к индексированию в файле robots.txt
В результате к примеру удаленные страницы так и продолжают присутствовать в структуре сайта, яндекс бот так и продолжает в них долбится и в вебмастере они висят с HTTP 302.

На 404 нужно как-то по другому переадресовываться или просто яндекс бот слегка туповат.
Любая страница, которая не существует, должна отдавать 404 заголовок без редиректа.
Иначе, ПС могут очень сильно тупить с этим.
Есть вещи получше качалки, сноуборда, виндсерфинга, кайтсерфинга, роликов, батута, танцев... Но я о них никогда не слышал Изображение
Серьезные сайты размещаю на VPS, простые в TimeWeb. Старые, более ненужные мне сайты я продаю на Телдери. Бухгалтерию и отчеты в налоговую за меня делает Эльба.

#8 AdisPrint

AdisPrint

    Почетный

  • Активный участник
  • PipPipPipPipPip
  • 1 943 сообщений
1 594

Отправлено 10 Октябрь 2016 - 13:23

snatch, 404 открыл, но удаленные страницы все равно отдают 302, Яндекс бот с них на 404 страницу не идет.

Просмотр сообщенияKaSH сказал:

Любая страница, которая не существует, должна отдавать 404 заголовок без редиректа.
Как? Вы у себя на сайте создаете красивую 404 страницу, которая отдает 404 заголовок. А к примеру страницы http://сайт.ру/неттакойстраницы.html на сайте нет, соответственно никакого заголовка у такой страницы нет, ее нужно переадресовать на 404 страницу.
Я в сети не раз встречал вопрос, типа как убрать промежуточный 302 редирект на 404. У меня в CMS вот так переадресуется
header("HTTP/1.1 404 Not Found");

СНПЧ, чернила, картриджи, фотобумага для принтеров и МФУ - AdisPrint.ru

#9 snatch

snatch

    Мастер

  • Активный участник
  • PipPipPipPip
  • 1 257 сообщений
1 378
  • ИзFuturama

Отправлено 10 Октябрь 2016 - 14:06

У вас видимо самопис? Я в большинстве случаев Joomla использую, там с этим ок вроде, нет редиректов, есть оформление, и страница отдает 404. Только что специально проверил

Цитата

HTTP/1.1 404 Материал не найден
Server: nginx/1.10.1
Date: Mon, 10 Oct 2016 09:57:29 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.29
Set-Cookie: 51d7a57a4714652afda786674ad14792=32f74ff56d61cbf9f9fc50161fd95aec; path=/; HttpOnly
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Cache-Control: no-cache
Pragma: no-cache

В данном случае менял оформление 404 страницы, по умолчанию в жумле оформление простенькое, я делал под свои нужды.

Просмотр сообщенияAdisPrint сказал:

404 открыл, но удаленные страницы все равно отдают 302, Яндекс бот с них на 404 страницу не идет.
нужно подождать какое то время

#10 AdisPrint

AdisPrint

    Почетный

  • Активный участник
  • PipPipPipPipPip
  • 1 943 сообщений
1 594

Отправлено 10 Октябрь 2016 - 14:44

snatch, У меня vamshop, хотя учитывая количество доработок это уже пожалуй процентов на 50 самопис :lol:.
СНПЧ, чернила, картриджи, фотобумага для принтеров и МФУ - AdisPrint.ru

#11 KaSH

KaSH

    Инструктор по счастью

  • Основатель
  • PipPipPipPip
  • 1 263 сообщений
2 057
  • Изморя и с гор

Отправлено 10 Октябрь 2016 - 16:26

Просмотр сообщенияAdisPrint (10 Октябрь 2016 - 13:23) писал:

Как? Вы у себя на сайте создаете красивую 404 страницу, которая отдает 404 заголовок. А к примеру страницы http://сайт.ру/неттакойстраницы.html на сайте нет, соответственно никакого заголовка у такой страницы нет, ее нужно переадресовать на 404 страницу.
Я в сети не раз встречал вопрос, типа как убрать промежуточный 302 редирект на 404. У меня в CMS вот так переадресуется
header("HTTP/1.1 404 Not Found");
С этим проблем-то как раз нет.
Строчка в htaccess
ErrorDocument 404 /404.html
Как раз делает вот что - для всего, что на сервере не найдено, будет показана страница 404.html (условно, может быть любая другая).
Редирект при этом не происходит.

В подавляющем большинстве cms, однако, в htaccess есть переадресация всех запросов определенного вида на индексный файл, с последующим разбором адресной строки.
Именно поэтому, очень часто, если идет обращение к странице, которой на самом деле нет, оно перехватывается скриптом, и, уже после, отрабатывает так, как написано в скрипте. Если у вас скрипт отдает на такие страницы 302-й редирект, значит будет 302-ой редирект.
Нужно менять механизм внутри движка. :) Хотя, это не всегда просто.

В своих велосипедах я делаю весьма банально - если при разборе адреса выясняется что такой страницы нет, выплевывается исключение. На исключении висит шаблон 404 страницы.
Все корректно.
Хотя, в более ранних версиях, я тоже делал редирект. Когда-то бывали случаи, в которых это было оправдано. Сейчас предпочитаю так не делать. 404 заголовок лучше.

P.S. Да, и нужно четко следить чтобы в шаблоне 404 страницы не вызывалось ничего, что вызывает 404 страницу. Например, несуществующее изображение, какое-нибудь.
Давным давно мне мастерхост отключил один большой сайт за вот такую циклическую хрень. Она у них вызывала повышенную нагрузку ))) А все потому что в шаблоне 404-й страницы я опечатался в какой-то там картинке маленькой, и не заметил.
Есть вещи получше качалки, сноуборда, виндсерфинга, кайтсерфинга, роликов, батута, танцев... Но я о них никогда не слышал Изображение
Серьезные сайты размещаю на VPS, простые в TimeWeb. Старые, более ненужные мне сайты я продаю на Телдери. Бухгалтерию и отчеты в налоговую за меня делает Эльба.

#12 AdisPrint

AdisPrint

    Почетный

  • Активный участник
  • PipPipPipPipPip
  • 1 943 сообщений
1 594

Отправлено 10 Октябрь 2016 - 18:17

$PHP_SELF = '/index.php';
header("Location: ".DIR_WS_CATALOG."404.html");
Вот так у меня переадресование идет на 404 страницу.

Решил проблемку с 404 заголовком, изменив Location на Refresh. Теперь несуществующие страницы отдают роботу Код статуса HTTP 404 Not Found и при этом показывается своя 404 страница.
header('Refresh: 0; url=/404.html' );

СНПЧ, чернила, картриджи, фотобумага для принтеров и МФУ - AdisPrint.ru

#13 Spinne

Spinne

    Зануда™

  • Основатель
  • PipPipPipPipPip
  • 1 859 сообщений
3 194
  • Излесу, вестимо

Отправлено 11 Октябрь 2016 - 04:57

Просмотр сообщенияAdisPrint (10 Октябрь 2016 - 18:17) писал:

$PHP_SELF = '/index.php';
header("Location: ".DIR_WS_CATALOG."404.html");
Вот так у меня переадресование идет на 404 страницу.
Так это и есть 302-й. Если для редиректа послать только Location, а хедер с кодом статуса не отсылать, Апач по умолчанию выдает 302.


Просмотр сообщенияAdisPrint (10 Октябрь 2016 - 18:17) писал:

Решил проблемку с 404 заголовком, изменив Location на Refresh. Теперь несуществующие страницы отдают роботу Код статуса HTTP 404 Not Found и при этом показывается своя 404 страница.
header('Refresh: 0; url=/404.html' );

В обоих случаях идет редирект. То есть, код статуса 404 бот не получает, а получает он только перенаправление на статическую страницу с сообщением об ошибке. Чтобы движок нормально отработал 404, вместо этого нужно сделать так:

header($_SERVER['SERVER_PROTOCOL']." 404 Not Found");
readfile("./404.html");
die();
То есть, отдается заголовок со статусом 404, далее readfile() считывает и отправляет вслед страницу с сообщением об ошибке (это уже для людей). А потом die(), дабы прекратить на этом месте выполнение скрипта и больше ничего не отправлять.

(в примере предполагается, что и исполняемый скрипт, и страница 404.html лежат в DOCUMENT_ROOT)
Ник не менял, подпись поменяю позже. Ваш Зануда. Он же AHP-net, но это уже там

#14 AdisPrint

AdisPrint

    Почетный

  • Активный участник
  • PipPipPipPipPip
  • 1 943 сообщений
1 594

Отправлено 11 Октябрь 2016 - 10:00

Spinne, 404 страницы как таковой нет в каталоге, она формируется средствами движка и существует как динамическая с SEO URL 404.html поэтому readfile("./404.html"); не работает, сервер сообщает что такой страницы нет.

В общем нарисовал новую статичную 404 страницу и сделал как Spinne посоветовал.
Яндекс ВМ выдает

Цитата


Код статуса HTTP 404 Not Found Время ответа сервера 23 мс IP сайта 87.236.18.65 Кодировка UTF-8(unicode-1-1-utf-8, UTF8) Размер страницы 1,42 КБ


  • Servernginx-reuseport/1.11.1
  • DateTue, 11 Oct 2016 15:37:51 GMT
  • Content-Typetext/html; charset=utf-8
  • Transfer-Encodingchunked
  • Connectionkeep-alive
  • Keep-Alivetimeout=30
  • VaryAccept-Encoding
  • Last-ModifiedTue, 11 Oct 2016 15:35:03 GMT
  • ETagW/"68e-53e989ec1b7c0"
  • Content-Encodinggzip

А как в гугле проверить? Посмотреть как гуглбот просто выдает Не найдено


СНПЧ, чернила, картриджи, фотобумага для принтеров и МФУ - AdisPrint.ru

#15 Spinne

Spinne

    Зануда™

  • Основатель
  • PipPipPipPipPip
  • 1 859 сообщений
3 194
  • Излесу, вестимо

Отправлено 13 Октябрь 2016 - 03:45

Просмотр сообщенияAdisPrint (11 Октябрь 2016 - 10:00) писал:

А как в гугле проверить? Посмотреть как гуглбот просто выдает Не найдено
Можно заглянуть в логи, что выдается гуглботу при обращении к удаленной странице. А можно вообще никуда не заглядывать, боты в этом отношении работают совершенно одинаково. :)
Ник не менял, подпись поменяю позже. Ваш Зануда. Он же AHP-net, но это уже там



Похожие темы


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных



© 2017 SMO&SEO форум «WEBIMHO» — продвижение и создание сайтов, интернет-маркетинг

По вопросам рекламы на форуме и цены на рекламу
Все материалы SEO форума разрешены к копированию только с установкой гиперактивной ссылки на webimho.ru,
тем, кто этого не сделает, мы оторвем руки и ноги и поменяем местами,
а когда выйдем из тюрьмы, опять оторвем и опять поменяем.


Россия, г. Москва

Мы в соцсетях: twitter | вконтакте | facebook | livejournal