Валидный тег noindex
Верстая шаблон для блога Desian.ru, я поставил себе цель – попытаться соорудить валидный html код. Поначалу все шло очень гладко, но стоило мне заключить кусочек кода в тег noindex, так валидатор тут же выдавал ошибку.
Покопавшись в сети я впервые узнал, что тега <noindex> в спецификации HTML просто нет. Его используют исключительно чтобы подмоститься нашему Яндексу.
Ну не любит Яша делать как у всех, у того же Гугла есть атрибут ссылок rel=”nofollow”, который, впрочем, применим только к ссылкам.
Как же скрыть от пристального взгляда Яндекса кусок HTML-кода соблюдая валидность?
Решение, как всегда, идет через задний проход, с применением альтернативного синтаксиса CDATA.
Синтаксис CDATA (character data, символьные данные)
<![CDATA[
Обрабатываемые символы
]]>
Все что помещено между <![CDATA[ и ]]> обрабатывается не как разметка, а как простой набор символов. Что, впрочем, не мешает боту Яши увидеть в нем разметку.
Что получаем:
<span class=”no”><![CDATA[<noindex>]]></span>
то, что необходимо запретить индексировать Яндексу
<span class=”no”><![CDATA[</noindex>]]></span>
<span class=”no”>…</span> - этот тег, собственно, необходим исключительно для скрытия от глаз пользователя набора символов внутри CDATA, ибо браузер выдает код <noindex> как символы, а не интерпритирует как тег. Скрытию способствует класс стилей для <span>:
span.no {display: none}
Ну вот и все. Код валидный, все довольны.
PS: атрибут ссылок rel=”nofollow” – валидный и с ним нет никаких заморочек.
Leave a Reply