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

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

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

Решение

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

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

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

Select Code
<?php $s = $wp_query->query_vars['name'];
$s = preg_replace("/(.*)-(html|htm|php|asp|aspx)$/","$1",$s);
$s = str_replace("-"," ",$s); ?>

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

Select Code
<?php $posts = query_posts('post_type=any&s='.$s); ?>

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

Select Code
<div id="searchtab">

<div>
<form method="get" id="searchform" action="http://tigors.net/">
<fieldset>
<input type="text" name="s" id="searchbox" value="<?php echo $s;?>" />
<input type="submit" value="Go" />
</fieldset>
</form>
</div>
</div>

<?php if (count($posts) > 0) { echo "<p>,        .    <strong>  </strong>   ?</p>"; foreach ($posts as $post) { ?>

<h3><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<small><?php the_time('l, F jS, Y') ?></small>
<p><?php the_excerpt(); ?></p>
<p><?php the_tags(); ?><br />  : <?php get_the_category_list(', ');?> | <?php comments_popup_link(); ?></p>

<?php
}
}
?>

<script> _gaq.push(['_trackEvent', 'Error 404', '<?php echo $wp_query->query_vars['name'];?>']); </script>

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

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

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

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

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

Еще я добавил простенький код на страницу ошибки, который при каждом показе отсылает событие в Google Analytics.

Select Code
<script>
_gaq.push(['_trackEvent', 'Error 404', '<?php echo $wp_query->query_vars['name'];?>']);
</script>

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

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

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

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

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

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