Textpattern - на русском языке

форум общения русскоязычных пользователей CMS Текстпаттерн

Вы не зашли.

#1 16-12-2010 22:13:49

activizator
добро
Зарегистрирован: 31-05-2007
Сообщений: 46

Индексация txp яндексом

Здравствуйте. Есть сайт на txp с формируемым url типа site.ru/section/id/nazvanie-statiy

Яндекс подходит к индексации довольно забавно. То проиндексирует указанный адрес, а то может лишь до тире в названии статьи, то есть:
site.ru/section/id/nazvanie

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

Вопрос: можно ли как-то изменить это поведение таким образом, чтобы адрес был однозначным и зачем так вообще сделано?

Отредактированно activizator (17-12-2010 13:03:36)

Неактивен

 

#2 17-12-2010 01:13:04

the_ghost
ять
Откуда: Минск
Зарегистрирован: 01-05-2007
Сообщений: 1957
Вебсайт

Re: Индексация txp яндексом

activizator написал:

Здравствуйте. Есть сайт на txp с формируемым url типа site.ru/section/id/nazvamie-statiy

Яндекс подходит к индексации довольно забавно. То проиндексирует указанный адрес, а то может лишь до тире в названии статьи, то есть:
site.ru/section/id/nazvamie

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

Вопрос: можно ли как-то изменить это поведение таким образом, чтобы адрес был однозначным и зачем так вообще сделано?

Отвечу с конца - txp парсит урл и выдирает оттуда id статьи - все, что после слеша им не учитывается.
Как исправить? Использовать rel="canonical" - http://devaka.ru/articles/link-rel-canonical - может Яндекс вслед за Гуглом начнет поддерживать этот урл. Ну и плюс к этому использовать карту сайта sitemap.xml - по идее поисковик должен брать урлы оттуда, если будет идти конкуренция дублей.


.      Создание шаблонов для Textpatern http://textpattern.ru/forum/viewtopic.php?id=1665 (<txp:make_template quality="best" />)
КОНСУЛЬТАЦИИ по Textpattern - ICQ#8458496, nemiga@gmail.com <txp:if_question><txp:pay /></txp:if_question>
       Список всех тегов - http://textbook.textpattern.net/wiki/in … _Reference

Неактивен

 

#3 17-12-2010 10:38:36

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: Индексация txp яндексом

И багрепорт Яндексу написать, кстати. А пример покажите?

Отредактированно glebotr (17-12-2010 10:41:57)


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#4 17-12-2010 12:49:45

activizator
добро
Зарегистрирован: 31-05-2007
Сообщений: 46

Re: Индексация txp яндексом

Привожу пример:
Есть страница "Страхование имущества граждан" на сайте domvmo.ru:
http://www.domvmo.ru/vip/2195/strakhova … a-grazhdan

Под таким адресом она проходит на сайте:
http://img-fotki.yandex.ru/get/4606/domvmo.1d/0_47dd9_a0b4a40d_L.jpg

http://img-fotki.yandex.ru/get/4510/domvmo.1d/0_47dda_f40864f7_L.jpg

И в sitemap:
http://img-fotki.yandex.ru/get/5901/domvmo.1d/0_47ddb_bd149002_L.jpg

Яндекс карту видит нормально:
http://img-fotki.yandex.ru/get/4806/domvmo.1d/0_47ddc_3ec93bdf_L.jpg

Но тем не менее индексирует:
http://img-fotki.yandex.ru/get/5800/domvmo.1d/0_47ddd_8e48e33f_L.jpg

Неактивен

 

#5 17-12-2010 12:52:23

activizator
добро
Зарегистрирован: 31-05-2007
Сообщений: 46

Re: Индексация txp яндексом

Таким образом, откуда у него берется эта дурость с изменением адресов я не знаю, но это не единичный случай. К сожалению про rel="canonical" не думал, да и не обрабатывает его Яндекс. А вот сайтмэп есть и используется. Жду еще мнений. В яндекс напишу.

Неактивен

 

#6 17-12-2010 14:11:56

activizator
добро
Зарегистрирован: 31-05-2007
Сообщений: 46

Re: Индексация txp яндексом

rel="canonical" добавил:

Код:

<txp:if_individual_article>
<link rel="canonical" href="<txp:permlink />" />
</txp:if_individual_article>

Неактивен

 

#7 17-12-2010 15:11:47

the_ghost
ять
Откуда: Минск
Зарегистрирован: 01-05-2007
Сообщений: 1957
Вебсайт

Re: Индексация txp яндексом

activizator написал:

rel="canonical" добавил:

Код:

<txp:if_individual_article>
<link rel="canonical" href="<txp:permlink />" />
</txp:if_individual_article>

Правильный подход smile
Еще можно попробовать сравнивать url и если он отличается от правильного полного урла, то делать 301-й редирект


.      Создание шаблонов для Textpatern http://textpattern.ru/forum/viewtopic.php?id=1665 (<txp:make_template quality="best" />)
КОНСУЛЬТАЦИИ по Textpattern - ICQ#8458496, nemiga@gmail.com <txp:if_question><txp:pay /></txp:if_question>
       Список всех тегов - http://textbook.textpattern.net/wiki/in … _Reference

Неактивен

 

#8 17-12-2010 16:52:37

activizator
добро
Зарегистрирован: 31-05-2007
Сообщений: 46

Re: Индексация txp яндексом

Спасибо за подсказку. Сделал и 301-ый редирект. Вот код для моего случая:

Код:

<txp:if_individual_article>
<txp:php>
function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}

$ThisPageURL = curPageURL();
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";

$ThisPagePermlink = $pageURL.$GLOBALS['prefs']['siteurl'].'/'.$GLOBALS['thisarticle']['section'].'/'.$GLOBALS['thisarticle']['thisid'].'/'.$GLOBALS['thisarticle']['url_title'];

if ($ThisPagePermlink != $ThisPageURL)
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$ThisPagePermlink);
exit();
}

</txp:php>
</txp:if_individual_article>

К сожалению, ['thisarticle']['permlink'] отказался работать, а то было бы вообще просто.

Посмотреть результат можно на любой странице domvmo.ru, стерев часть из адреса и перезагрузив страницу.

Неактивен

 

#9 17-12-2010 17:01:44

activizator
добро
Зарегистрирован: 31-05-2007
Сообщений: 46

Re: Индексация txp яндексом

Забыл заметить, код надо вставлять сразу после <body>

Неактивен

 

#10 17-12-2010 17:14:06

activizator
добро
Зарегистрирован: 31-05-2007
Сообщений: 46

Re: Индексация txp яндексом

А заодно и .htaccess подправил, чтобы domvmo.ru редиректился на www.domvmo.ru . Теперь буду смотреть.
Всем спасибо за подсказки.

Неактивен

 

#11 17-12-2010 20:45:40

the_ghost
ять
Откуда: Минск
Зарегистрирован: 01-05-2007
Сообщений: 1957
Вебсайт

Re: Индексация txp яндексом

activizator написал:

Забыл заметить, код надо вставлять сразу после <body>

header в первую очередь всегда...


.      Создание шаблонов для Textpatern http://textpattern.ru/forum/viewtopic.php?id=1665 (<txp:make_template quality="best" />)
КОНСУЛЬТАЦИИ по Textpattern - ICQ#8458496, nemiga@gmail.com <txp:if_question><txp:pay /></txp:if_question>
       Список всех тегов - http://textbook.textpattern.net/wiki/in … _Reference

Неактивен

 

#12 18-12-2010 12:22:47

activizator
добро
Зарегистрирован: 31-05-2007
Сообщений: 46

Re: Индексация txp яндексом

А вот и более правильное и универсальное решение permlink:

Код:

$ThisPagePermlink = permlink();

Вместо:

Код:

$ThisPagePermlink = $pageURL.$GLOBALS['prefs']['siteurl'].'/'.$GLOBALS['thisarticle']['section'].'/'.$GLOBALS['thisarticle']['thisid'].'/'.$GLOBALS['thisarticle']['url_title'];

Неактивен

 

#13 18-12-2010 12:25:10

activizator
добро
Зарегистрирован: 31-05-2007
Сообщений: 46

Re: Индексация txp яндексом

И вся конструкция приобретает вид:

Код:

<body>

<txp:if_individual_article>
<txp:php>
function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}

$ThisPageURL = curPageURL();
 
$ThisPagePermlink = permlink();

if ($ThisPagePermlink != $ThisPageURL)
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$ThisPagePermlink);
exit();
}

</txp:php>
</txp:if_individual_article>

Красиво. Лаконично. Универсально. :-)

Неактивен

 

#14 18-12-2010 12:28:48

activizator
добро
Зарегистрирован: 31-05-2007
Сообщений: 46

Re: Индексация txp яндексом

И еще вопрос, как сообщить поисковику, что срок действия публикации закончился? Видимо надо что-то в meta прописать? А то он в панели вебмастера выдает ошибки на ненайденные страницы, а у них уже просто срок действия прошел... И надо ли это вообще делать?

Неактивен

 

#15 21-12-2010 20:21:03

activizator
добро
Зарегистрирован: 31-05-2007
Сообщений: 46

Re: Индексация txp яндексом

Пришел ответ из Яндекса по вопросу индексации. Ничего нового. Публикую:

Наш робот не обрезает страницы, а находит на них ссылки именно в таком виде.  Робот переходит по ним и индексирует страницы, так как они доступны на Вашем сайте (отдают код 200). В данном случае рекомендую Вам запретить индексирование не нужных Вам страниц в файле robots.txt или обратиться к системному администратору с просьбой настроить сервер таким образом, чтобы при обращении к несуществующим страницам Вашего сайта отдавалась ошибка 404.

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru