';You may not be able to find the » You did a search on » We think that the » You were incorrectly referred to »
page you were after because of:';
str+='';
str+=' An out-of-date bookmark\/favorite »
';
str+=' A search engine that has an out- »
of-date listing for us';
str+=' A mis-typed address';
str+='';
document.write(str);
}
Устаревшая ссылка на поисковике
Если значение referrer присутствует, мы можем поискать в нем URL поискового сервера (разумеется здесь вы можете дать простор своей фантазии). После этого мы можем разобрать параметры поиска, найти список ключевых слов, которые посетитель вводил на поисковом сервере и предложить ему страницу, подходящую по нашему мнению под его запрос.
if (strReferrer.length!=0)
{
if ((strReferrer.indexOf(".looksmart.co")>0)||
(strReferrer.indexOf(".ifind.freeserve")>0)||
(strReferrer.indexOf(".ask.co")>0)||
(strReferrer.indexOf("google.co")>0)||
(strReferrer.indexOf("altavista.co")>0)||
(strReferrer.indexOf("msn.co")>0)||
(strReferrer.indexOf("yahoo.co")>0))
{
blnSearchReferral=true;
//get site domain — split at the first forward-slash
var arrSite=strReferrer.split("/");
// now find search parameters
var arrParams=strReferrer.split("?");
var strSearchTerms = arrParams[1];
arrParams=strSearchTerms.split("&");
strSite=arrSite[2];
var sQryStr="";
//define what search terms are in use by the »
different engines
var arrQueryStrings = new Array();
arrQueryStrings[0]="q="; //google, altavista, msn
arrQueryStrings[1]="p="; //yahoo
arrQueryStrings[2]="ask="; //ask jeeves
arrQueryStrings[3]="key="; //looksmart
for (i=0;i<arrParams.length;i++)
//loop through all the parameters in the referring »
page’s URL
{
for (q=0;q<arrQueryStrings.length;q++)
{
sQryStr = arrQueryStrings[q];
if (arrParams[i].indexOf(sQryStr)==0)
{//we’ve found a search term!
strSearchTerms = arrParams[i];
strSearchTerms = strSearchTerms.split(sQryStr);
strSearchTerms = strSearchTerms[1];
strSearchTerms = strSearchTerms.replace("+", " ");
}
}
}
//Tell the visitor what site is at fault, what the
//search terms were
document.write ("
" + »
strSite + " for \""»
+ strSearchTerms + "\". However, »
their index appears to be out of date. »
All is not lost!
following page(s)on our site will be able to help »
you:");
В код можно добавить несколько строк, чтобы перехватывать какие-то особые ключевые слова, для которых у вас точно есть какие-то материалы на сайте. Например, у вас есть хорошие материалы по ключевым словам "электроника" или "аксессуары", но вы недавно переместили страницы в другой каталог сайта - обидно было бы потерять всех, кто придет к вам на сайт с Google по этим ключевым словам?
if (
(strSearchTerms.indexOf("widgets")>=0)||
(strSearchTerms.indexOf("electronics")>=0)
)
{
document.write("Our »
excellent widgets page
");
}
}
}
Разумеется, если у вас на сайте есть свой поисковый механизм, вы могли бы использовать ключевые слова из referrer и произвести поиск автоматически. Однако ручной поиск все-таки предпочтительнее, так как автоматический поиск может выдать совершенно не те страницы.
Битая ссылка на сайте
Мы позаботились о посетителях, пришедших по битым ссылкам с поисковых серверов. Теперь давайте позаботимся о ссылках не с поисковых серверов (или с тех поисковых серверов, о которых вы не знаете). В код надо добавить еще несколько условий:
if (!blnSearchReferral) {
strSite = strReferrer;
strSite = strSite.split("/");
strSite = strSite[2];
document.write("
this page by: " + strSite + " »
We suggest you try one of the links below: »
}
... и этими ссылками будут ссылка на карту сайта и ссылка на главную страницу сайта, о которых мы говорили в начале.
А что, если проблема в вашем сайте?
Вы не можете взять и написать на вашей 404-ой странице " На сайте, с которого вы пришли, неверная ссылка", когда неверный referrer - это ваш собственный сайт. В таком случае было бы нелишне изменить формулировку и признать свою вину.
blnInsiteReferral =((strReferrer.indexOf("http:// »
www.mysite.co.uk")>=0)||
(strReferrer.indexOf("http://www.myothersite.com") »
>=0))
if (blnInsiteReferral)
{
document.write("This one’s down to us! Please »
accept our apologies for this — we’ll see to it »
that the developer responsible for this broken »
link is given 20 lashes (but only after he or »
she has fixed this problem).");
}
Решение проблемы
Итак, мы сумели найти путь из мрачных недр 404-ой ошибки. Но исправили ли мы сами ошибки? Нет. Тем не менее, у вас есть несколько вариантов действий, так как мы уже знаем, какая страница запрашивалась и какая страница сделала ошибочную ссылку (если конечно она была). Мы можем занести эту информацию в базу данных, либо автоматически либо с помощью кнопки "сообщите о сломанной ссылке администратору", которую можно поместить на 404-ой странице. Второй способ уменьшит уровень "шума", так как посетители обычно нажимают такие кнопки только в случае очень важной сломанной ссылки. Дальше вы уже сами решайте, как вы будете распоряжаться накопленной информацией.
Что еще почитать
Посмотрите, как данные советы работают в реальной жизни. Вот примеры с сайтов Accessify и A List Apart:
Скопируйте данную ссылку в адресную строку броузера, чтобы сымитировать случай с устаревшей закладкой: http://www.accessify.com/err.asp
А вот вариант со сломанной ссылкой
Имитация ссылки из результатов поиска на Google [тут задействована промежуточная страница]
Выкачайте пример 404-й страницы с кодом, описанным в статье, и измените его по своему усмотрению.
Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.
Сотрудничая с нами, вы будете не клиентом, а нашим партнером. Благодаря этому мы будем развивать ваш бизнес как собственный. Мы так же как и вы заинтересованы в успехе проекта, поскольку ваша успешность будет нашей рекламой.