Русский
Русский
English
Статистика
Реклама

XML сайты в результатах поиска

Что такое 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 тегов:


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

Вставляем теги


Для того чтобы вставить теги title и meta в xml и при этом браузер и поисковик понимали что это html теги им надо задать пространство имён "http://www.w3.org/1999/xhtml".


Варианты вставки:


  1. Задать префикс для html тегов.


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

    Этот вариант самый краткий но выяснилось что Гугл его не понимает.


  2. Обернуть в элемент с заданным пространством имён поумолчанию.


    <запись>    <!-- в теге head определяем пространство имён поумолчанию -->    <head xmlns="http://personeltest.ru/away/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 над этим вариантом.


    &lt;запись&gt;    <head xmlns="http://personeltest.ru/away/www.w3.org/1999/xhtml"><script ...</script>        <title>Текст заголовка</title>        <meta name="description" content="Часть текста записи для страницы поиска и меседжеров"/>    </head>    &lt;заголовок&gt;Текст заголовка&lt;/заголовок&gt;    &lt;текст&gt;Текст записи&lt;/текст&gt;&lt;/запись&gt;
    

  3. Задать пространство имён поумолчанию каждому элементу индивидуально.


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

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


    Этот вариант я только поставил на тест так что результат отображения в Гугле не известен.



Результат


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

Источник: habr.com
К списку статей
Опубликовано: 09.07.2020 16:21:19
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Xml

Разработка веб-сайтов

Xml сайт

Категории

Последние комментарии

© 2006-2020, personeltest.ru