Примечание 1
Пожалуйста, обратите внимание, что есть и другие поисковые системы, чем Google, которые принимают сайтмепы. Пространство имен xmlns:xhtml
, которое необходимо для атрибута hreflang
в файлах Sitemap, является расширением карты сайта, которое не может быть принято всеми поисковыми системами. В спецификации sitemap не упоминается этот атрибут. Поэтому я бы не стал его использовать.
Примечание 2
В вашем вопросе, вы используете терминам location
и language
. Я не уверен, что именно вы подразумеваете под location
. Но учтите, что существует разница между языком, на который следует нацеливаться, определенным языковым ориентиром языка, а - (который может не иметь никакого отношения к языку или языку).
Этот вопрос немного не по теме, поэтому я не буду приводить длинную цитату здесь. В разделе «Поддерживаемые языковые значения» со страницы, которую я связал ниже, есть информация об этом.
Возможное решение
Даже если вы заботитесь только о Google, вы просто не может быть в состоянии сделать то, что вы хотите - на первый взгляд, я и не мог найти никакого прямого ответа на свой вопрос ,
Но, к счастью, вам не нужно вводить такую метаинформацию в файлы Sitemap. Вместо этого вы можете добавить его в <head>
ваших HTML-файлов. Из this document (курсив мой):
Если у вас есть несколько языковых версий в URL, каждый язык страницы должны идентифицировать различные языковые версии, >>>>>> в том числе сам < < < < < <. Для Например, если ваш сайт предоставляет контент на французском, английском и испанском , испанская версия должна включать в себя отн = «альтернативный» hreflang = «х» ссылка >>>>>>для себя < < < < < < в дополнение к ссылкам на французская и английская версии.Кроме того, английские и французские версии должны каждый включать >>>>>> тот же < < < < < < ссылки на французском, английском и испанском языках.
Так что ясно, что страница не только может, но даже должны содержать rel="alternate" hreflang="<insert uri of page itself here>"
ссылку.
Возможно, это вызывает беспокойство, поскольку разумный человек не назвал бы определенную, данную страницу альтернативой этой же странице; с другой стороны, это имеет смысл и упрощает вещи, если все эти записи <link>
имеют одинаковую форму. Таким образом, вы можете вставить точно такую же группу из <link>
s на каждую страницу (например, путем копирования и вставки или позволяя ей делать какой-либо инструмент или скрипт).
Ключевым моментом здесь является то, что это работает независимо от того, имеет ли страница что-то разумное лицо может назвать «альтернативным». Если это не так, страница является единственной «альтернативной» из себя, поэтому просто добавьте ее, соответствующую <link>
в ее <head>
.
Теперь, возвращаясь к вашей проблеме, вы можете
- удалить все xhtml:link
элементы и xmlns:xhtml
имен из карты сайта
- на каждой странице, добавьте точно hreflang
ссылки, которые необходимы; особенно на каждой странице, которая должна ориентироваться только на один язык, просто добавьте одну ссылку (с соответствующим атрибутом hreflang
), который ссылается на эту страницу.
Очень небезопасное рассуждение
Если вы еще хотели бы решить проблему только с помощью карта сайт файлов, вы в конечном итоге можно сделать вывод (по аналогии), что включение только один альтернативной ссылки за <loc>
будет производить те же результаты, как если бы у вас будет <link>
на соответствующей странице <head>
.
ИМХО, этот вывод опасен, и у меня нет абсолютно никакой подсказки, если оно действительно. Но вы можете попробовать его с помощью одной новой тестовой страницы, которая не будет мешать вашему веб-сайту и посмотреть, как это работает.
Я не пошел бы так по причинам, упомянутым выше.
Альтернативы на веб-сайте не являются взаимоисключающими, чтобы помещать их в карту сайта, и есть веские причины использовать их (например, размещение альтернатив в sitemap позволяет инструментам рассуждать о интернационализации без обхода, а наличие в HTML позволяет искателю обнаруживать альтернативы, даже если они не являются частью файла Sitemap). В моем случае я фактически уже использую оба, именно по этой причине. Ваше предлагаемое решение unfortunataly не распространяется на sitemaps: sitemaps не имеют альтернативы 'x-default', которая может быть опущена, но вместо этого требуется * обязательный элемент' loc'. – Tiddo
Ну, я вижу вещи немного более расслабленными. Я просто предполагаю, что карта сайта заставит Google сканировать URL-адреса, и это тот момент, когда Google может принимать решения. Но, конечно, я вижу вашу точку зрения, и поэтому в моем ответе был раздел «Очень опасные рассуждения». Этот раздел предлагает именно то, что вы делаете сейчас, в соответствии с вашим собственным ответом. – Binarus
На практике Google не будет сканировать все URL-адреса, которые он находит в карте сайта, хотя (если у вас нет только нескольких десятков страниц). Я полностью неправильно прочитал вашу последнюю часть вчера (давайте обвиняем ее в раннем понедельнике), но вы правы. Мне жаль, что я уже отдал щедрость другому ответу, но я по крайней мере по-прежнему отметил ваш ответ как принятый. – Tiddo