Предлагаемое расширение стандарта robots.txt - Форум об интернет-маркетинге
Этот сайт существует на доходы от рекламы.
Пожалуйста, выключите AdBlock.
Старый 14.01.2003, 21:08   #1
Приемная комиссия
 
Регистрация: 25.01.2001
Адрес: Moscow, Russia
Сообщений: 141
Репутация: 575

По умолчанию Предлагаемое расширение стандарта robots.txt

Сейчас в отделе поисковых систем активно обсуждается небольшое расширение стандарта robots.txt, связанное с зеркалами.

Суть состоит в появлении еще одного поля - Host, в котором указывается основное зеркало.

Это расширение уже добавлено в наш help:
http://www.yandex.ru/info/webmaster2.html#virtual

Что уважаемый All думает по этому поводу?

Для затравки предлагаю свою короткую переписку с Martijn Koster.
melkov вне форума   Ответить с цитированием

Реклама
Старый 14.01.2003, 21:12   #2
melkov
Приемная комиссия
 
Регистрация: 25.01.2001
Адрес: Moscow, Russia
Сообщений: 141
Репутация: 575

ТопикСтартер From: "Alexander Melkov" To: Martijn Koster

Hello Martijn!

I'm one of the developers of Russian search engine, Yandex (www.yandex.ru). For the reasons of
maintaining our robot's indexing speed fast, search database clean, and correct link popularity
calculation we have a database of mirror hosts.

When you have a number of mirrors, you'll have to choose one of them as a main. The fact is that no
algorithm of automatic choice can guess what any particular webmaster really thinks to be the main
mirror of his site.

The best solution for the webmaster is to disallow indexing of all the secondary mirrors with
robots.txt:
User-agent: *
Disallow: /

- but there are problems with virtual hosts and 'domain name parking' to somebody else's IP's. Most
of
the people have difficulties even with this SSI example for Apache servers:
<!--#if expr=" \"${HTTP_HOST}\" != \"www.main_name.ru\" " -->
User-Agent: *
Disallow: /
<!--#endif -->


For that reason we are about to introduce an extension to robots.txt, the 'Host:' field. I'll try to
explain what we've decided. Is there anything that is very wrong?

The idea is simple: webmaster can disallow all the addresses except his main mirror with a single host directive.
User-Agent: *
Disallow: /forum
Disallow: /cgi-bin
Host: www.myhost.ru

The value for HOST field is not host indeed, but a network location, i.e. host:port, where port=80 is
assumed by default. If our robot somehow does not recognize this value as a correct location (i.e.
host name violates RFC 952, 921, etc. or port=0, or the top level domain of the host name doesn't
exist), it ignores the line. Also, multiple Host lines are allowed.

If there is at least one correct Host line in the record, our robot matches current host name and port
with each (correct) Host line. If none of them match, it implies "Disallow: /" line at the end of the
record (otherwise, it does nothing).
melkov вне форума   Ответить с цитированием
Старый 14.01.2003, 21:15   #3
melkov
Приемная комиссия
 
Регистрация: 25.01.2001
Адрес: Moscow, Russia
Сообщений: 141
Репутация: 575

ТопикСтартер From: Martijn Koster To: Alexander Melkov

On Fri, 2003-01-10 at 18:46, Alexander Melkov wrote:

> The best solution for the webmaster is to disallow indexing of all the secondary mirrors with
> robots.txt:
> User-agent: *
> Disallow: /

I don't agree. There is value in robots indexing the mirrors,
so that the mirrors can be found, and so that the resulting load
can be shared across servers.

I think a better solution is to use a LINK tag that allows
a document to define some other document as its "original".
Then your robot could verify that, and decide how to display
it, say by listing the original first, and copies below it.
Or if you didn't want to be that comprehensive, you could
just follow that link tag, and index only the original instead.

No such LINK tag "rel" attribute exists at the moment, but:
- any HTML author can add it, without having to be webmasters
(or programmers)
- adding it doesn't break any existing standard.
- the w3c is presumably quite in favour of LINK
- there is a process of having this adopted as a W3C
recommendation, that people might actually pay attention to.

> - but there are problems with virtual hosts and 'domain name parking' to somebody else's IP's. Most of
> the people have difficulties even with this SSI example for Apache servers:
> <!--#if expr=" \"${HTTP_HOST}\" != \"www.main_name.ru\" " -->
> User-Agent: *
> Disallow: /
> <!--#endif -->

This sounds like it would achieve what you propose, and is easily
ported to cgi/php/servlets whatever.

If you mean that some people have difficulty applying this to
their server (because they don't have administrative control,
technical know-how, or a server platform that supports it),
then that's more a problem with their servers -- if they
want this, they should make it happen.

> For that reason we are about to introduce an extension to robots.txt, the 'Host:' field. I'll try to
> explain what we've decided. Is there anything that is very wrong?
>
> The idea is simple: webmaster can disallow all the addresses except his main mirror with a single host
> directive.
> User-Agent: *
> Disallow: /forum
> Disallow: /cgi-bin
> Host: www.myhost.ru
>
> The value for HOST field is not host indeed, but a network location, i.e. host:port, where port=80 is
> assumed by default. If our robot somehow does not recognize this value as a correct location (i.e.
> host name violates RFC 952, 921, etc. or port=0, or the top level domain of the host name doesn't
> exist), it ignores the line. Also, multiple Host lines are allowed.
>
> If there is at least one correct Host line in the record, our robot matches current host name and port
> with each (correct) Host line. If none of them match, it implies "Disallow: /" line at the end of the
> record (otherwise, it does nothing).

Some comments:

- This doesn't help you with mirrors you don't control --
if a 3rd party copies your documents, without the robots.txt file,
then these copies still get indexed. (With the LINK idea
this isn't a problem).

- people will be confused by this; they're already confused
enough (by where to put the file, how records are separated,
how the pattern matching works etc).

- you're not going to get all robots to adopt this just because
you do, and having lots of inconsistent extensions to the
robots.txt doesn't help anyone.

- As you say, a server can already change its rules based on
the hostname used. Adding additional mechanisms then seems
somewhat superfluous.

- New fields in robots.txt may well cause some robots to break.

- I am no longer involved with robots, and have no interest
in extending the robots.txt standard. The HTML 4 spec
mentions robots.txt, so the W3C is probably the best organisation
to take it forward.

Personally I think this feature would only adress the problems
of very few people, in an in-adequate way, while complicating
the life all other webmasters (and robot writers) in the world,
and cause interoperability problems. So, no, I don't support it.

Regards,

-- Martijn
melkov вне форума   Ответить с цитированием
Старый 14.01.2003, 21:44   #4
AiK
Академик
 
Аватар для AiK
 
Регистрация: 27.10.2000
Адрес: SPb
Сообщений: 2,895
Репутация: 107656
Отправить сообщение для AiK с помощью ICQ Отправить сообщение для AiK с помощью Skype™
Социальные сети

По умолчанию

Идея хорошая, но реализация кривая - в этом я полностью согласен с Мартином.
Как вариант:
Код:
User-Agent: Yandex
Disallow: www.myhost.ru/forum
Disallow: www.myhost.ru/cgi-bin
На мой взгляд это более понятно, плюс явно относится только к роботу Яндекса, сл-но другие роботы это просто проигнорируют.
AiK вне форума   Ответить с цитированием
Старый 14.01.2003, 22:20   #5
melkov
Приемная комиссия
 
Регистрация: 25.01.2001
Адрес: Moscow, Russia
Сообщений: 141
Репутация: 575

ТопикСтартер

AiK, никто же не мешает написать "User-agent: Yandex" в группе с директивой Host .

Кроме того, в Ваше предложение точно неприемлемо:
1) Оно нарушает стандарт robots.txt. Директива disallow трактуется однозначно.
Заметьте, что роботы, следующие стандарту, строчку, начинающуюся с 'Host', должны попросту игнорировать.
2) Оно не позволит запретить зеркало, о котором Вы не знаете (кто-то "запарковал" свой ненужный хост на Ваш IP).
melkov вне форума   Ответить с цитированием
Старый 14.01.2003, 23:07   #6
AiK
Академик
 
Аватар для AiK
 
Регистрация: 27.10.2000
Адрес: SPb
Сообщений: 2,895
Репутация: 107656
Отправить сообщение для AiK с помощью ICQ Отправить сообщение для AiK с помощью Skype™
Социальные сети

По умолчанию

Цитата:
Оно нарушает стандарт robots.txt.
Как и Ваше
Неправильно оформленную строку парсер пропустит, а вот пропустит ли он дополнительную строку _внутри_ - не уверен.
Сентенцию насчёт парковки не понял. Видимо из-за того, что у меня домен виртуальный
AiK вне форума   Ответить с цитированием
Старый 15.01.2003, 00:04   #7
melkov
Приемная комиссия
 
Регистрация: 25.01.2001
Адрес: Moscow, Russia
Сообщений: 141
Репутация: 575

ТопикСтартер

> Как и Ваше
Наше расширение _не_ нарушает стандарт. То, что там ясно сказано об игнорировании незнакомых директив, и является местом, позволяющим данное расширение.
Повторюсь, об изменении трактовки "знакомых" директив не может быть и речи. Это более обсуждать не стоит.

> он дополнительную строку _внутри_ - не уверен
Согласно стандарту - должен пропустить. Правда, практика показывает, что у значительного числа людей возникают трудности с чтением стандарта. Именно поэтому 'Host' и рекомендуется писать в конце записи.

> Видимо из-за того, что у меня домен виртуальный
Значит, поняли.
melkov вне форума   Ответить с цитированием
Старый 15.01.2003, 02:01   #8
AiK
Академик
 
Аватар для AiK
 
Регистрация: 27.10.2000
Адрес: SPb
Сообщений: 2,895
Репутация: 107656
Отправить сообщение для AiK с помощью ICQ Отправить сообщение для AiK с помощью Skype™
Социальные сети

По умолчанию

Цитата:
Значит, поняли.
Спасибо за идею

Цитата:
Согласно стандарту - должен пропустить.
Ок. Допустим, я хочу запретить только www.mysite.spb.ru (Яндекс правда итак с этим разберётся, но не суть).

Что будет, если я напишу, так как Вы и предлагали?:

Код:
User-Agent: *
Disallow: /
Host: www.mysite.spb.ru
Правильно, я закрою сайт mysite.spb.ru (и www.mysite.spb.ru, коль скоро он возвращает тот же robots.txt) для всех роботов, кроме робота Яндекса. Поэтому предлагаю во избежание путаницы всё же на странице
http://www.yandex.ru/info/webmaster2.html#virtual заменить * на Yandex.

Рекомендация для тех, кто решит воспользоваться Яндексовским расширением: размещайте дерективы для Яндекса в самом конце robots.txt во избежание неприятностей с роботами других поисковиков.

Цитата:
Повторюсь, об изменении трактовки "знакомых" директив не может быть и речи. Это более обсуждать не стоит.
Непонятно почему. Или Яндекс всегда идёт своим путём? Гугль же ввёл звёздочку и особо не перживает о том, что какой-то робот эту звёздочку не поймёт - если директива относится только к конкретному поисковику, то остальных это и не касается.
AiK вне форума   Ответить с цитированием
Старый 15.01.2003, 02:26   #9
funsad
Super Moderator
 
Регистрация: 15.11.2000
Сообщений: 1,593
Репутация: 79

По умолчанию

Спасибо, что снова подняли эту тему. Я почти год назад писал на форуме Яндекса предложение ввести отдельный файл, который бы регулировал поведение робота относительно проблемы зеркал. Назовем его условно mirrors.txt.

Во-первых, он не конфликтует с robots.txt и не вызывает путаницы. Во-вторых, этим файлом можно указать не только перечень индексируемых зеркал, но и полный перечень зеркал с указанием главного. Зачем? Зеркала могут быть частичными (скажем, для одного раздела), либо страницы могут отличаться какими-то небольшими деталями, и сайты уже не будут распознаны как зеркала. Если же содержание файлов mirrors.txt на двух и более серверах идентично (т.е. это не подложный mirrors), значит, все второстепенные зеркала можно не индексировать (если главное нормально доступно).

С уважением,
Александр Садовский.
funsad вне форума   Ответить с цитированием
Старый 15.01.2003, 02:59   #10
melkov
Приемная комиссия
 
Регистрация: 25.01.2001
Адрес: Moscow, Russia
Сообщений: 141
Репутация: 575

ТопикСтартер

AiK, Вы что-то не понимаете.

Host: www.mysite.spb.ru
запрещает всех, кроме www.mysite.spb.ru.
Об этом же ясно написано и в приведенной ссылке, и в процитированных письмах.
Ну а приведенный Вами robots.txt вообще все для всех запрещает, т.к. директива Host имеет тоже только запретительный характер, и не отменяет директив disallow.

> Гугль же ввёл звёздочку
Что-то я не заметил. Пожалуйста, дайте ссылку на то место, где это написано. А то вот в их хелпе только ссылки на www.robotstxt.org

> Или Яндекс всегда идёт своим путём
Это Вы следование стандарту называете "своим путем"?

funsad, лишний файл - это уж слишком .
>Зеркала могут быть частичными
На самом деле, не совсем понятно, зачем считать зеркалами то, что зеркалами не является.

Для склейки ИЦ? Со временем, подумав, можно просто прийти к "склейке" сайта, на котором лежит robots.txt, с сайтом, на который указывает директива Host. На первый взгляд, обмануть поисковую систему таким образом не удастся, поскольку хосты, запрещенные при помощи 'Host', индексироваться-то не смогут.
melkov вне форума   Ответить с цитированием
Ответ




Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Текущее время: 02:41. Часовой пояс GMT +3.

Регистрация Справка Календарь Поддержка Все разделы прочитаны