2016-12-19 4 views
5

Я хочу добавить несколько URL-адресов к карте сайта, предназначенной для определенного места только, но я не могу понять, как это сделать. Есть много документации о том, как добавить специфические для местоположения альтернативы в карту сайта (с hreflang), но я не могу найти никаких ресурсов о том, как добавлять страницы только для определенного местоположения. Моя первоначальная мысль состояла в том, чтобы просто опустить значение <loc> и указать только теги <xhtml:link rel="alternate">, но в соответствии с specification<loc> не требуется.Как добавить адресные URL-адреса для сайта?

Итак, каков правильный способ добавления адресов местоположения в asitemap?

ответ

1

Примечание 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>.

ИМХО, этот вывод опасен, и у меня нет абсолютно никакой подсказки, если оно действительно. Но вы можете попробовать его с помощью одной новой тестовой страницы, которая не будет мешать вашему веб-сайту и посмотреть, как это работает.

Я не пошел бы так по причинам, упомянутым выше.

+0

Альтернативы на веб-сайте не являются взаимоисключающими, чтобы помещать их в карту сайта, и есть веские причины использовать их (например, размещение альтернатив в sitemap позволяет инструментам рассуждать о интернационализации без обхода, а наличие в HTML позволяет искателю обнаруживать альтернативы, даже если они не являются частью файла Sitemap). В моем случае я фактически уже использую оба, именно по этой причине. Ваше предлагаемое решение unfortunataly не распространяется на sitemaps: sitemaps не имеют альтернативы 'x-default', которая может быть опущена, но вместо этого требуется * обязательный элемент' loc'. – Tiddo

+0

Ну, я вижу вещи немного более расслабленными. Я просто предполагаю, что карта сайта заставит Google сканировать URL-адреса, и это тот момент, когда Google может принимать решения. Но, конечно, я вижу вашу точку зрения, и поэтому в моем ответе был раздел «Очень опасные рассуждения». Этот раздел предлагает именно то, что вы делаете сейчас, в соответствии с вашим собственным ответом. – Binarus

+0

На практике Google не будет сканировать все URL-адреса, которые он находит в карте сайта, хотя (если у вас нет только нескольких десятков страниц). Я полностью неправильно прочитал вашу последнюю часть вчера (давайте обвиняем ее в раннем понедельнике), но вы правы. Мне жаль, что я уже отдал щедрость другому ответу, но я по крайней мере по-прежнему отметил ваш ответ как принятый. – Tiddo

0

Короткие ответы: Да. Можно добавить несколько URL-адреса/<loc>, которые ориентированы ТОЛЬКО для определенного географического положения.

Как?

Создайте специфическую запись в локали, включая один альтернативный вариант для самой локали. То естьвместо обычного:

<url> 
    <loc>http://example.com/</loc> 
    <xhtml:link 
       rel="alternate" 
       hreflang="en" 
       href="http://www.example.com/" /> 
    <xhtml:link 
       rel="alternate" 
       hreflang="de-ch" 
       href="http://www.example.com/schweiz-deutsch/" /> 
</url> 

Do:

<url> 
    <loc>http://example.com/schweiz-deutsch/</loc> 
    <xhtml:link 
       rel="alternate" 
       hreflang="de-ch" 
       href="http://www.example.com/schweiz-deutsch/" /> 
</url> 

Это, кажется, достаточно для Google, чтобы сделать вывод о том, что страница предназначена только для де-канальным пользователей и не имеет альтернативы представление на любом другом языке.

Также можно указать Google, что ваш веб-сайт (все URLs) предназначены для конкретной страны через GeoTargeting

Ссылки:

+0

После прочтения ваших ресурсов и гораздо большего тестирования это * делает * кажется возможным, см. Мой собственный ответ [здесь] (http://stackoverflow.com/a/42766588/532901). Поскольку вы отвечаете, это тот, который заставил меня на правильном пути, я вручу вам награду. – Tiddo

+0

ладно, да, тогда я уточню свой ответ, чтобы не вводить в заблуждение других. –

Смежные вопросы