[XML, Разработка веб-сайтов] XML сайты в результатах поиска

Автор Сообщение
news_bot ®

Стаж: 6 лет 2 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
09-Июл-2020 18:31

Что такое XML сайт
XML сайт это сайт страницы которого являются простыми XML файлами с MIME типом "text/xml". Они содержат только уникальные данные для этой страницы.
В таком XML файле задаётся ссылка на XSLT шаблон который преобразует XML в HTML или в XHTML в браузере пользователя.
Проблема
Для классических html веб страниц поисковики в качестве заголовка отображают содержимое тега title. В описании отображается кусочки текста с найденными ключевыми словами или содержимое тега meta description.
Поисковики обычно не исполняют скрипты на страницах которые индексируют и соответственно не видят конечный вариант страницы после их исполнения. Соответственно они не видят теги title и meta которые вставляются XSLT шаблоном. Они индексируют текст который есть в XML документе как есть.
Решение
Наша задача правильно добавить теги title и meta в XML чтобы браузер, поисковик и меседжер в котором отправляется ссылка на страницу их понимали.
Таким же образом можно будет добавить и другие HTML теги для поисковиков, меседжеров и даже браузера если он вдруг не исполнит XSLT шаблон.
Как страница отображается без тегов
Например у нас такой XML:
<запись>
    <заголовок>Текст заголовка</заголовок>
    <текст>Текст записи</текст>
</запись>

Как он отображается в поиске без title и meta тегов:
  • XML показывается в одну строку (Гугл)
    Заголовок: <запись><заголовок>Текст заголовка</заголовок><текст>...
    Описание: <запись><заголовок>Текст заголовка</заголовок><текст>Текст записи</текст></запись>
  • Сокращённый вариант (duckduckgo.com)
    Заголовок: example.com
    Описание: запись>заголовок>Текст заголовка...
  • Только содержимое тегов в загаловке (startpage.com)
    Заголовок: Текст заголовка Текст записи
  • Страница не отображается в поиске (Яндекс)
    Я запускал несколько раз переиндексацию страницы но яндексу упорно не нравился mime тип страницы. Потом когда я начал писать эту статью они мне прислали увидомление что добавили в поиск. Но сегодня страница снова исчезла из поиска.

Вставляем теги
Для того чтобы вставить теги title и meta в xml и при этом браузер и поисковик понимали что это html теги им надо задать пространство имён "http://www.w3.org/1999/xhtml".
Варианты вставки:
  • Задать префикс для html тегов.
    <!-- родительском элементе объявляем префикс 'xh' для xhtml элементов -->
    <запись xmlns:xh="http://www.w3.org/1999/xhtml">
        <!-- далее используем этот префикс перед именем элемента -->
        <xh:title>Текст заголовка для страницы поиска и меседжеров</xh:title>
        <xh:meta name ="description"
                 content="Часть текста записи для страницы поиска и меседжеров"/>
        <!-- у элементов без префикса пространство имён остаётся пустым -->
        <заголовок>Текст заголовка</заголовок>
        <текст>Текст записи</текст>
    </запись>

    Этот вариант самый краткий но выяснилось что Гугл его не понимает.
  • Обернуть в элемент с заданным пространством имён поумолчанию.
    <запись>
        <!-- в теге head определяем пространство имён поумолчанию -->
        <head xmlns="http://www.w3.org/1999/xhtml">
            <!-- все дочерние элементы наследуют это пространство имён -->
            <title>Текст заголовка</title>
            <meta name="description" content="Часть текста записи для страницы поиска и меседжеров"/>
        </head>
        <!-- элементы вне тега head остаются с пустым пространством имён -->
        <заголовок>Текст заголовка</заголовок>
        <текст>Текст записи</текст>
    </запись>

    Тут пространство имён поумолчанию задаётся в родительском элементе и распространяется на дочерние.
    Гугл понял такой вариант и иcпользовал текст из title в качестве заголовка и текст из meta description в качестве описания страницы.
    С этим вариантом возникает проблема на web.archive.org. Архив в данном виде воспринимает страницу как html и пихает в неё свои теги "поправляя" те теги которых не знает. В результате документ перестаёт быть правильным XML и не отображается.
    Пример работы web.archive.org над этим вариантом.
    <запись>
        <head xmlns="http://www.w3.org/1999/xhtml"><script ...</script>
            <title>Текст заголовка</title>
            <meta name="description" content="Часть текста записи для страницы поиска и меседжеров"/>
        </head>
        <заголовок>Текст заголовка</заголовок>
        <текст>Текст записи</текст>
    </запись>

  • Задать пространство имён поумолчанию каждому элементу индивидуально.
    <запись>
        <!-- задаём пространство имён каждому элементу индивидуально -->
        <title xmlns="http://www.w3.org/1999/xhtml">Текст заголовка</title>
        <meta xmlns="http://www.w3.org/1999/xhtml" name="description" content="Часть текста записи для страницы поиска и меседжеров"/>
        <!-- остальные элементы остаются с пустым пространством имён -->
        <заголовок>Текст заголовка</заголовок>
        <текст>Текст записи</текст>
    </запись>

    Данный способ хорош когда нам нужен только один элемент из этого пространства имён и мы можем указать его пространство имён прям в нём.
    Этот вариант я только поставил на тест так что результат отображения в Гугле не известен.

Результат
После правильной вставки тегов title и meta в результатах поиска после переиндексации страницы она появляется уже с заданным заголовком и описанием. Также после отправки ссылки на сайт в сообщении подгружается её заголовок и описание.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_xml, #_razrabotka_vebsajtov (Разработка веб-сайтов), #_xml, #_xml_sajt (xml сайт), #_xml, #_razrabotka_vebsajtov (
Разработка веб-сайтов
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 03-Май 09:01
Часовой пояс: UTC + 5