Обработка ошибки 404


This post is also available in: Английский

Я думаю всем известна ошибка 404. Суть ее в том, что сервер не нашел страницу, на которую указывает ссылка. Обычно если пользователь попадает на такую страницу, то чувствует себя в тупике и сразу же закрывает страницу сайта. Любому будет понятно, что это негативно сказывается на посещаемости сайта и нужно что-то делать. К счастью в WordPress есть возможность настройки этой страницы.

Главное для пользователя, это попасть на страницу с информацией, которую он хочет узнать. Ему не интересно почему случилась ошибка и чья в этом вина. Наша задача сохранить трафик и доверие посетителя.

Стандартно WordPress предлагает просто чудовищную страницу. Посмотреть на это можете сами здесь. Не сложно догадатся, что пользователь сразу закроет страницу, и только еденицы воспользуются поиском или архивом.

Решение

К счастью эту страницу можно настроить в WordPress. Для этого нужно зайти в редактор дизайна и открыть Шаблон ошибки 404 (404.php)

Теперь нужно разобраться с возможностями которые предоставляет нам WordPress, а возможностей хватает. Практически все используют ЧПУ(ЧеловекоПонятный Урл), WordPress сохраняет эту информацию в переменной $wp_query->query_vars['name'] Правда хранится это дело в виде строки с дурацкими дефисами(-).

Если информация о желаниях пользователя у нас есть, то нужно ее обрабатывать. Для начала удалим все глупости, которые могли добавить ссылающиешся на вас люди.

$s = $wp_query->query_vars['name'];

$s = preg_replace(«/(.*)-(html|htm|php|asp|aspx)$/»,»$1",$s);

$s = str_replace(«-»,» «,$s);

Теперь у нас есть набор слов, которые хотел увидеть пользователь. Теперь нужно выполнить поиск, ведь пользователь ленив и сам вводить слова в поиск врятли будет.

if (count($posts) == 0) {  $posts = query_posts('post_type=any&s='.$s);}

Ну а теперь нужно показать пользователю информацию, которую нашел поисковик.

if (count($posts) > 0) {   echo «<p>Сожалеем, но страница на которую вы перешли не существует. Возможно вы искали <strong>одну из этих</strong> статей или страниц?</p>«;   echo «<ul>»;   foreach ($posts as $post) { ?>

<h3><a href=»<?php the_permalink() ?>» rel=»bookmark» title=»Permanent Link to <?php the_title_attribute(); ?>«><?php the_title(); ?></a></h3>

<small><?php the_time(__('l, F jS, Y','fusion')) ?></small>

<p><?php the_tags(__('Tags: ','fusion'), ', ', '<br />'); ?> <?php printf(__('Posted in %s','fusion'), get_the_category_list(', '));?> | <?php edit_post_link(__('Edit','fusion'), », ' | '); ?>  <?php comments_popup_link(__('No Comments','fusion'), __('1 Comment','fusion'), __('% Comments','fusion')); ?></p>

<?php

}

}

Выявление ошибок

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

Для начала нужно разобраться что могло вызвать ошибку. Вы могли допустить ошибку при создании ссылки на сайте, либо на чужом сайте указана «битая» ссылка.

У себя на сайте эту проблему решить просто. Нужно найти проблемную ссылку и заменить ее на правильную. Звучит просто, но что делать если на сайте сотни страниц. Нужно обратится к сторонним средствам. Например Google Webmaster tools

webmaster

На странице видно, какие страницы вызвали ошибку 404 и с каких страниц на них ведут ссылки.

Сложнее становится, если на ваш сайт переходят по битой ссылке. Не будем же мы писать автору с просьбой исправить :) . Нужно перенаправить посетителя туда, куда он хотел попасть. Для этого существуют специальные плагины. Я использую Platinum SEO, в котором есть функция создания постоянного перенаправления страницы (301) в случае изменения пути ссылки.

Некоторые мелочи

Обработка ошибки 404 в WordPress решает некоторые проблемы, но нужно знать некоторые мелочи, что-бы правильно понимать ее работу.

  • Internet explorer показывает свою стандартную страницу ошибки, если длина вашей привышает 512 байт. Вместить страницу WordPress в такой объем затруднительно.
  • Страница 404 это не только код страницы, это еще и HTTP хедер, который должна генерировать страница. Если этого не будет сделано, то в индексе поисковика будут висеть ошибочные страницы.

Не бойтесь сообщения об ошибках, они сделаны для того, что-бы информировать вас, а не пугать. А информацию следует использовать.

Статья написана после прочтение этой (English)

И напоследок

Работая с Главмед ты услышишь звон монет!

Поделитесь с другими:
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Facebook
  • Twitter
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • Digg
  • БобрДобр
  • MisterWong.RU
  • Memori.ru
  • МоёМесто.ru
  • Сто закладок
Оцените прочитаное
1 Star2 Stars3 Stars4 Stars5 Stars (2оценок, в среднем: 5.00 из 5) баллов
загрузка...

HowTO, SEO, Tips&Tricks, WordPress


Понравилась статья? Подпишись на рассылку по E-Mail
Или следите за новыми статьями по RSS
также можно оставить комментарий или trackback на своем блоге.

  1. #1 by YoYurec on 18 Март 2010 - 2:58

    спасибо за статью. надо бы свой блог почистить от 404, а то за годы накопилось неимоверно ((

  2. #2 by Yaroslav.CH on 2 Февраль 2010 - 12:19

    Спасибо за статью.

    Добавлю один небольшой момент. Если на Вашем сайте набрать, предположим, http://tigor.org.ua/ping (поисковый запрос, по которому нет результатов), то поисковик не отрабатывает, просто выдавая сообщение об ошибке и строку поиска.

    Соответственно, оптимальнее было бы сделать так:
    Если поисковый запрос присутствует – выводить результаты поиска.
    Если поискового запроса нет – выводить (для примера) 10 последних материалов.

    Иначе, в том случае,если запроса нет, вы сами возвращаетесь к тому, с чего начали.

(никто не узнает)


Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: