Xpoint
   [напомнить пароль]

Про <noindex> и XHTML

Метки: [без меток]
2006-05-28 13:04:32 [обр] Максим Вуец[досье]
AFAIK, элемента noindex в семействе HTML языков нет. Но та функциональность, которую на него повесили, порой очень нужна. Поэтому у меня два вопроса:
  1. Обращают ли современные поисковые боты внимание на этот элемент вообще?
  2. Если обращают, то каким образом его можно использовать в XHTML, что бы такой документ проходил валидацию?
спустя 2 часа 29 минут [обр] Николай Бубело(6/113)[досье]
  1. Насколько мне помнится — только Яндекс.
  2. Скорее всего, это взаимоисключающие вещи, т.е., или <noindex>, или валидация.
См: http://webmaster.yandex.ru/faq.xml?id=502464#noindex
спустя 2 часа 46 минут [обр] Максим Вуец[досье]
Я надеюсь, что найти решение всё же можно. Найти валидное решение.
Я когда-то встречал страницу (то ли XHTML, то ли XML), в теле которой был дополнительно объявлен какой-то элемент. Или мнемоника (entity). Точно не помню. Может быть и в даном случае можно выкрутиться? То есть, помимо XHTML doctyp’а сделать SGML-объявление (или как это правильно назвать) с описанием элемента noindex. И валидацию проходить будет, и с поисковиками подружиться. Так сказать, дурак не поймёт, а умный оценит :)
Если такое решение возможно, пожалуйста, ткните в пример или документацию. Если нет, то ткните в другое решение :)
спустя 18 часов [обр] fetis(0/82)[досье]
Максим Вуец[досье] Вы очевидно говорите про новое пространство имен (namespace), в котором будет объявлен тег noindex. Но я сомневаюсь, что тогда Яндекс будет воспринимать запись <my:noindex>bla-bla</my:noindex>.
спустя 5 часов [обр] Даниэль Алиевский(3/125)[досье]
Кроме поисковых ботов, есть и другие роботы, которым нужен <noindex>. Например, робот рекламной сети clx.ru
спустя 4 часа 14 минут [обр] Максим Вуец[досье]

fetis[досье] Боюсь, что это не то. Это только догадка, так как SGML я не знаю, но быть может можно записать вот так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!ELEMENT noindex - - (%block;)+ -->
<!ATTLIST noindex %attrs; >
<html xmlns="http://www.w3.org/1999/xhtml">
…

И так далее.
Или действительно можно, то подскажите, pls, как правильно оформить это объявление.

спустя 2 минуты [обр] Максим Вуец[досье]
Даниэль Алиевский[досье] О! Вот ещё один аргумент для использования обсуждаемого элемента.
спустя 14 дней [обр] WWWoron(0/9)[досье]
Единственное валидное решение которое я знаю, чтобы закрыть текст и/или ссылки от поисковиков (допускаю что могут быть и другие варианты), это:
<script type="text/javascript">document.writeln('Тут текст');</script>
<br />
<script type="text/javascript">document.writeln('<a href="index.html">Тут ссылка<\/a>');</script>
спустя 27 минут [обр] WWWoron(0/9)[досье]
P.S.: Хотя ссылки наверно лучше кидать через window.open, потому что Tidy вышеприведенный код считает валидным, а W3C в таком ввиде на ссылке "спотыкается".
спустя 2 минуты [обр] Алексей В. Иванов(0/2861)[досье]
Т.к. xhtml нельзя использовать document.write
спустя 14 минут [обр] WWWoron(0/9)[досье]

Насчет write не знал и поэтому спорить не буду, но вот такой код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
   <title>Untitled</title>
   <script type="text/javascript">
   function llink() {
         window.open("index.html")
      }
   </script>
</head>

<body>

   <script type="text/javascript">
      document.writeln('Тут текст')
   </script>
   <br />
   <a href="javascript:llink()">Тут ссылка</a>
   

</body>
</html>

при Transitional W3C признал валидным (This Page Is Valid XHTML 1.0 Transitional!). А вот при Strict, да, не проходит.

спустя 5 дней [обр] Владимир Палант(0/4445)[досье]

WWWoron[досье]
Валидность кода еще не говорит, что он корректный. Валидатор и такой код признает корректным:

<script type="text/javascript">
<!--
alert('This alert will never appear in XHTML');
//-->
</script>

Проблема лишь в том, что в XHTML комментарии интерпретируются везде, для скриптов никаких исключений не делается. То есть весь скрипт игнорируется, поскольку он находится в коммендарии. Ну и про document.write валидатору знать неоткуда (валидатор логики скриптов еще никто не написал), но в XHTML он не работает, и работать никак не может.

спустя 17 дней [обр] Давид Мзареулян(6/1003)[досье]
Даже если бы работал, вряд ли поисковые боты будут исполнять скрипты.
спустя 20 дней [обр] Ярослав Федин(0/2)[досье]

не вижу проблемы вообще, честно говоря.

если хотеть геморроя, так по-крупному: ЧТо мешает использовать что-то вроде

<a title="http://google.ru">123</a>
a.href = a.title

?

Лучше, конечно, вообще, типа

<?

if ($Searchbot) {
echo "<noindex>";
}

?>

спустя 2 часа 9 минут [обр] WWWoron(0/9)[досье]
<?
if ($Searchbot) {
echo "<noindex>";
}
?>
а смысл?
спустя 1 час 58 минут [обр] Алексей Севрюков(9/1280)[досье]

Ярослав Федин[досье]

if ($Searchbot) {
echo "<noindex>";
}

А за это поисковая система может наказать, страницы должны быть идеентичны и для робота и для пользователей. Правда не знаю насколько это касается конкретно вставки <noindex>.

Powered by POEM™ Engine Copyright © 2002-2005