XML сайты в результатах поиска
XML сайт это сайт, страницы которого являются простыми XML файлами с MIME типом «text/xml» «application/xml»(XML Media Types). Они содержат только уникальные данные для этой страницы.
В таком XML файле задаётся ссылка на XSLT шаблон, который преобразует XML в HTML или в XHTML в браузере пользователя.
Проблема
Для классических html веб страниц поисковики в качестве заголовка отображают содержимое тега title . В описании отображается кусочки текста с найденными ключевыми словами или содержимое тега meta description .
Поисковики обычно не исполняют скрипты на страницах которые индексируют и соответственно не видят конечный вариант страницы после их исполнения. Соответственно они не видят теги title и meta которые вставляются XSLT шаблоном. Они индексируют текст который есть в XML документе как есть.
Решение
Наша задача правильно добавить теги title и meta в XML чтобы браузер, поисковик и меседжер в котором отправляется ссылка на страницу их понимали.
Таким же образом можно будет добавить и другие HTML теги для поисковиков, меседжеров и даже браузера если он вдруг не исполнит XSLT шаблон.
| результат |
|---|
| Yandex Webmaster |
Как страница отображается без тегов
Например у нас такой XML:
<запись><заголовок>Текст заголовказаголовок> <текст>Текст записитекст> запись>
Как он отображается в поиске без title и meta тегов:
- XML показывается в одну строку (Гугл)
Заголовок: <запись><заголовок>Текст заголовказаголовок><текст>.
Описание: <запись><заголовок>Текст заголовказаголовок><текст>Текст записитекст>запись> - Сокращённый вариант (duckduckgo.com)
Заголовок: example.com
Описание: запись>заголовок>Текст заголовка. - Только содержимое тегов в загаловке (startpage.com)
Заголовок: Текст заголовка Текст записи - Страница не отображается в поиске (Яндекс)
Я запускал несколько раз переиндексацию страницы но яндексу упорно не нравился mime тип страницы. Потом когда я начал писать эту статью они мне прислали увидомление что добавили в поиск. Но сегодня страница снова исчезла из поиска.
Вставляем теги
Для того чтобы вставить теги title и meta в xml и при этом браузер и поисковик понимали что это html теги им надо задать пространство имён «http://www.w3.org/1999/xhtml».
-
Задать префикс для html тегов.
<запись xmlns:xh="http://www.w3.org/1999/xhtml"> Текст заголовка для страницы поиска и меседжеров <заголовок>Текст заголовказаголовок> <текст>Текст записитекст> запись>
<запись> Текст заголовка <заголовок>Текст заголовказаголовок> <текст>Текст записитекст> запись>
Тут пространство имён поумолчанию задаётся в родительском элементе и распространяется на дочерние.
Гугл понял такой вариант и использовал текст из title в качестве заголовка и текст из meta description в качестве описания страницы.
UPD (04.08.2020): В этом варианте на тестовых страницах Гугл задал заголовок и описание после применения XSLT шаблона.
UPD (20.08.2020): После добавления на тестовых страницах Яндекс взял информацию из title и meta description но посчитал страницу не достаточно качественной.
С этим вариантом возникает проблема на web.archive.org. Архив в данном виде воспринимает страницу как html и пихает в неё свои теги «поправляя» те теги которых не знает. В результате документ перестаёт быть правильным XML и не отображается.
Пример работы web.archive.org над этим вариантом.
<запись>