Disallow: /*PHPSESSID - быть или не быть

Автор maestrosite.ru, 18 марта 2012, 22:09:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

maestrosite.ru

Доброго времени суток!

По какой-то причине началась просто эпидемия вопросов про правило
Disallow: /*PHPSESSID
особенно в свете индексирования яндексом. Для наглядности проведите эксперимент с этим правилом для своего форума SMF 2.x.

1. В панели вебмастера запросите любую страницу, которая должна находится в индексе поисковика. Например, раздел или тему обсуждения.
http://webmaster.yandex.ru/server-response.xml

2. В полученном ответе, узнайте канонический адрес страницы - Псевдоссылка "содержимое страницы" - значение тега <link rel="canonical"

3.  Запросите канонический адрес из предыдущего пункта с вашим файлом robots.txt - http://webmaster.yandex.ru/robots.xml


В итоге.

Если на вашем форуме выдаётся штатный canonical_url со штатным SID (PHPSESSID):
1. Если в вашем robots.txt присутствует указанное правило, то изначально запрошенная страница выпадает из поиска.
2. Если правило отсутствует, то в поиске будут дубли страниц из-за различных идентификаторов сессий.


Если же ваш canonical_url указывает на реальный адрес без сессионной переменной, то для этой страницы указанное правило влияния не оказывает.
Но здесь есть маленький нюанс - для поисковика все внутренние страницы всегда будут с сессионной переменной (PHPSESSID). Таким образом, если правило присутствует, то поисковику необходимо каким-то образом указать имеющиеся страницы, то есть как минимум иметь актуальный sitemap




upd:
По результатам последовавшего обсуждения сформулирую по-другому вывод:



1. Если ваши страницы содержат теги rel="canonical", то указанное правило никакой пользы, кроме вреда не принесёт.
2. Если ваши страницы содержат реальные адреса в rel="canonical", то не имеют смысла схожие правила:
Цитировать
Disallow: /forum/*.msg
Disallow: /forum/*.new
Disallow: /forum/*topicseen
Disallow: /forum/*prev_next


и добавлю рекламу: http://custom.simplemachines.org/mods/index.php?mod=3315 - мод "выводит тег "canonical" для главной страницы, страниц разделов и тем, строго без сессисоной переменной"




upd2:
Если решите задать вопрос, пожалуйста, указывайте больше конкретики. Адрес проблемной страницы, адрес форума, и тд
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

pehser

я решил подобный вопрос таким образом нашол в index.php
loadSession();
и заменил на
$ref = $_SERVER['HTTP_USER_AGENT'];
if (!preg_match('/YandexBot/i',$ref)) loadSession();


и проблема с Яшей решина

maestrosite.ru

Цитата: pehser от 11 апреля 2012, 13:52:04
я решил подобный вопрос таким образом нашол в index.php
loadSession();
и заменил на
$ref = $_SERVER['HTTP_USER_AGENT'];
if (!preg_match('/YandexBot/i',$ref)) loadSession();


и проблема с Яшей решина
В этом случае, чем править код, лучше Яндекс внести в список пауков.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

pehser

в фукции loadSession проверки на поуков нету по этому занесения в пауков не даст ни какого результата, PHPSESSID будет возникать

maestrosite.ru

Цитата: pehser от 11 апреля 2012, 14:19:40
в фукции loadSession проверки на поуков нету по этому занесения в пауков не даст ни какого результата, PHPSESSID будет возникать
Видимо вы не знакомы с QueryString.php и добавлением сессионной переменной в адреса.
Вы добавили паука, но ссылки у вас по-прежнему содержат PHPSESSID ?
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

pehser

А причем сдесь QueryString.php в урл добовляется PHPSESSID не тотому что пхп скрипт ее дописует а потому что пхп возрошяет сессию в залоговках
Добавил YandexBot в заголовках вижу появляется Set-Cookie, при том методе который я предложил Set-Cookie не формируется

maestrosite.ru

Цитата: pehser от 11 апреля 2012, 15:18:43
А причем сдесь QueryString.php в урл добовляется PHPSESSID не тотому что пхп скрипт ее дописует а потому что пхп возрошяет сессию в залоговках
мда...
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

pehser

Заметил одну парадоксальную закономерность
если сылку проверять через http://webmaster.yandex.ua/server-response.xm
то первый раз в загалоках возрашяется Set-Cookie
если повторно туже страницу проверить то его уже нету  idiot

pehser

Цитата: maestrosite.ru от 11 апреля 2012, 15:26:12
мда...
Я про адрес урл аля адресная строка, a не ссылки на странице

plintus

 :facepalm: У меня точтно такая же проблема! Этот rel="canonical" убивает страницы! 1656 страниц не являются каноническими, а потом и вовсе все станут такими. Это пока я переехал на новый домен. Но многие же страницы это и есть темы форума. Какие дубли стреиц? Пожалуйста помогите избавиться от этого проклятия!  :'(  Вот адрес гляньте пожалуйста http://guitardriver.ru
Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

GeorG

Вы вообще знаете что такое - канонический URL?
Зачем вы хотите открыть дубли? Вот и Кактус тоже хочет - http://www.simplemachines.ru/index.php?topic=14572.0
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

plintus

GeorG ну а почему тогда не дубли не индексируются?
Проклятый яндекс я уже запарился с ними ругаться
Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

karavan

Яндекс? Нет, не слышал :D  Все мои знакомые пользуют только гугл...

plintus

#13
Гугл то что можно и что нельзя всё проиндексил, но надо чтоб и Яндекс.
Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

maestrosite.ru

Цитата: plintus от 21 апреля 2012, 02:22:29
:facepalm: У меня точтно такая же проблема! Этот rel="canonical" убивает страницы! 1656 страниц не являются каноническими, а потом и вовсе все станут такими. Это пока я переехал на новый домен. Но многие же страницы это и есть темы форума. Какие дубли стреиц? Пожалуйста помогите избавиться от этого проклятия!  :'(  Вот адрес гляньте пожалуйста http://guitardriver.ru
Не убивает, а, наоборот, размножает добавлением параметра PHPSESSID. Каждое новое значение параметра - новая страница. Какой адрес вы вводите на шаге 1, какой canonical получаете на шаге 2 и на шаге 3 ?
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

plintus

А зачем это размножение нужно?
Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

plintus

Потихоньку яндекс начинает индексировать, но исключено 2400 страниц
Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

Roman

Цитата: maestrosite.ru от 18 марта 2012, 22:09:06
http://custom.simplemachines.org/mods/index.php?mod=3315 - мод "выводит тег "canonical" для главной страницы, страниц разделов и тем, строго без сессисоной переменной"
Заметил, что при использовании данной модификации на 2.0.2, для главной страницы ставится <link rel="canonical" href='http://site.ru/index.php.html' />
А без модификации: <link rel="canonical" href='http://site.ru/index.php' />, ну и все стандартные ссылки идут именно на site.ru/index.php.

Понятно, что это наверняка лучше, чем все время с разными PHPSESSID, но тем не менее, как там можно правильно прописать дополнительное условие для главной?
Вероятно, что-то с $current_action=='home'.

maestrosite.ru

#18
Цитата: Roman от 09 июля 2012, 21:18:54
Заметил, что при использовании данной модификации на 2.0.2, для главной страницы ставится <link rel="canonical" href='http://site.ru/index.php.html' />
А без модификации: <link rel="canonical" href='http://site.ru/index.php' />, ну и все стандартные ссылки идут именно на site.ru/index.php.
Это ошибка. Спасибо за сообщение. Исправление http://smf2.maestrosite.ru/index.php/topic,10.msg56.html#msg56.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Roman

Благодарю за оперативный апдейт! Все работает.

Stanic

ЦитироватьDisallow: /*PHPSESSID - быть или не быть
А разве для решения вопроса не достаточно директивы Clean-param в файле роботс или я чего-то не догоняю? Яндекс эту директиву понимает, а для гугла параметры, не принимаемые во внимание, можно указать в панели вебмастера. Вроде после этого при индексации параметр PHPSESSID  перестанет учитываться или нет?  wallbash

maestrosite.ru

Для решения какого вопроса, "Быть или не быть"?
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Nemo000

maestrosite.ru Ваш мод будет работать с TinyPortal и Pretty URLs ?

maestrosite.ru

Да, работает. Если будут ошибки - сообщайте
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Nemo000

К примеру если ставлю Ваш мод тег rel="canonical", появляется на главной (напомню стоит TinyPortal ) и разделах, темах, но его нет на странице http://мойсайт/forum/

И еще, я правильно понял, прочитав первый пост, что используя данный надо убрать из robots.txt
Цитата: maestrosite.ru от 18 марта 2012, 22:09:06Disallow: /*PHPSESSID
Disallow: /forum/*.msg
Disallow: /forum/*.new
Disallow: /forum/*topicseen
Disallow: /forum/*prev_next

maestrosite.ru

Задача мода - убрать сессионную переменную из канонического адреса. Формирование же адреса - задача соответствующих контроллеров. То есть для action=forum адрес должен формироваться тинипорталом, так как именно он добавляет эту страницу.

PS добавление адресов для страниц профилей и календаря - просто дополнение к основной задаче
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Nemo000

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

Я кстати Вам писал на smf@maestrosite.ru по поводу своего форума так ответа и не получил.

maestrosite.ru

Да, при правильном canonical адреса в индексе будут без PHPSESSID. Для action=forum если страница нужна в выдаче, то для неё надо формировать canonical.

Письменный ответ готовится, не волнуйтесь.

PS Правила влияния не оказывают, можно добавлять, можно и без них.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Nemo000

Цитата: maestrosite.ru от 23 августа 2012, 12:43:33Для action=forum если страница нужна в выдаче, то для неё надо формировать canonical.
Нужна, решение можно сворганить? Можете включить в тот отчет, готовится...

maestrosite.ru

BoardIndex.php, замените // Set a canonical URL for this page.
$context['canonical_url'] = $scripturl;

на:
// Set a canonical URL for this page.
$context['canonical_url'] = $scripturl . '/forum/';
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Nemo000

Заменил тег так и не появился

Yworld_garry

Цитата: Nemo000 от 23 августа 2012, 15:35:13Заменил тег так и не появился

Насколько я сейчас вижу у вас вообще нет нигде canonical, если конечно что то не делаете сейчас.

Nemo000

как это нет? на главной и в разделах, темах. откройте исходный код и поиском воспользуйтемь. Везде кроме http://мойсайт/forum/

ОН прямо перед закрывающим тегом </head>

Yworld_garry

Цитата: Nemo000 от 23 августа 2012, 15:54:01ОН прямо перед закрывающим тегом </head>
Да увидел, но это ни есть гут размещать его после скриптов и стилей, поднимите на свое место.

Nemo000

Я его, что ли туда пихаю? Мод туда запихал.

Yworld_garry

Цитата: Nemo000 от 23 августа 2012, 16:10:02Я его, что ли туда пихаю? Мод туда запихал.
Как угодно будет, хотя поднять его не так сложно и будет правильно, логично и понятно ПС всем поддерживающим.

Nemo000

#36
Спасибо Вам, что обратили на это внимание. А не подскажите как? Где рыть

Ага понял надо этот кусок в index.template.php поднять повыше?
   // Present a canonical url for search engines to prevent duplicate content in their indices.
   if (!empty($context['canonical_url']))
      echo '
   <link rel="canonical" href="', $context['canonical_url'], '" />';

maestrosite.ru

Цитата: Yworld_garry от 23 августа 2012, 16:06:26
Да увидел, но это ни есть гут размещать его после скриптов и стилей, поднимите на свое место.
Век живи, век учись. Не поделитесь ссылкой на спецификацию для размещения тега?
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

maestrosite.ru

Цитата: Nemo000 от 23 августа 2012, 15:35:13
Заменил тег так и не появился
Покажите кусок кода который у вас получился после редактирования. Вместе со строками до и после, штук по 5.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Yworld_garry

#39
Цитата: maestrosite.ru от 23 августа 2012, 18:25:44Век живи, век учись. Не поделитесь ссылкой на спецификацию для размещения тега?

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

Тема не для спора, внутри тега же... 

И не забываем, что гугл( соответственно и яндекс) рассматривает canonical как подсказку, а не как строгую инструкцию(это в манах легко найдете)
Ради интереса посмотрите что в индексе яндекса вашего форума.

Можно ли использовать атрибут rel="canonical" для указания канонического URL на другом домене?

Цитата из мана гугла, и видео есть, если владеете английским. Это я к тому что в индексе будет иногда появляться всякий мусор, календари по 500 станиц, профили и все остальное. И даже используя ваш мод, есть смысл подстраховаться robots.txt, ну не будет хуже.
ЦитироватьВ некоторых случаях настроить переадресацию непросто. Например, пусть требуется выполнить переход на новое имя домена на веб-сервере, который не поддерживает переадресацию. В таком случае можно использовать элемент ссылки rel="canonical", чтобы указать точный URL-адрес предпочтительного домена для индексации. Несмотря на то, что элемент ссылки rel="canonical" рассматривается как подсказка, а не как строгая инструкция, Google следует ему по мере возможности.

Nemo000

Цитата: maestrosite.ru от 23 августа 2012, 18:27:06Покажите кусок кода который у вас получился после редактирования. Вместе со строками до и после, штук по 5.
Сообщить
BoardIndex.php
// For wireless, we use the Wireless template...
if (WIRELESS)
$context['sub_template'] = WIRELESS_PROTOCOL . '_boardindex';
else
loadTemplate('BoardIndex');

// Set a canonical URL for this page.
$context['canonical_url'] = $scripturl . '/forum/';

// Do not let search engines index anything if there is a random thing in $_GET.
if (!empty($_GET))
$context['robot_no_index'] = true;


Цитата: Nemo000 от 23 августа 2012, 16:21:29Ага понял надо этот кусок в index.template.php поднять повыше?
Код: [Выделить]

       // Present a canonical url for search engines to prevent duplicate content in their indices.
       if (!empty($context['canonical_url']))
          echo '
       <link rel="canonical" href="', $context['canonical_url'], '" />';
Так я правильно сообразил или нет? Проблема в том, что делая изменения index.template.php тег местоположение не меняет.

Yworld_garry

Цитата: Nemo000 от 23 августа 2012, 19:34:25Так я правильно сообразил или нет?
Да правильно и думаю именно это и поднять в районе <title>

И проверьте сразу.

Nemo000



   echo '
   <meta http-equiv="Content-Type" content="text/html; charset=', $context['character_set'], '" />
   <meta name="description" content="', $context['page_title_html_safe'], '" />', !empty($context['meta_keywords']) ? '
   <meta name="keywords" content="' . $context['meta_keywords'] . '" />' : '', '
   <title>', $context['page_title_html_safe'], '</title>';

   // Present a canonical url for search engines to prevent duplicate content in their indices.
   if (!empty($context['canonical_url']))
      echo '
   <link rel="canonical" href="', $context['canonical_url'], '" />';
   
   // Please don't index these Mr Robot.
   if (!empty($context['robot_no_index']))
      echo '
   <meta name="robots" content="noindex" />';

Кусок отредактированного мной index.template.php изменения сохраняются, файл перезаписывается. Загружаю страницу, смотрю исходный код - тег там же. Елы палы wallbash
Для тем нет, что-тор вроде своего кеша? Естественно, в браузере  все обновил.

Yworld_garry

В админке форума, в обслуживании, обновить кеш.

Nemo000

ЦитироватьЗадача 'Очистить файл кэша' успешно выполнена.
Тег там же. wallbash

Yworld_garry

#45
Цитата: Nemo000 от 23 августа 2012, 20:01:11Тег там же. wallbash

Угу, капайте дальше. Subs.php


Yworld_garry

Цитата: digger от 23 августа 2012, 21:03:07А зачем его вообще двигать?


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

maestrosite.ru

Не надо никуда передвигать. У вас Optimus Brave убивает канонической адрес
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Nemo000

Цитата: maestrosite.ru от 24 августа 2012, 15:40:02Не надо никуда передвигать. У вас Optimus Brave убивает канонической адрес
Подробнее можно? Ваш мрд несовместим с Optimus Brave ?