Sitemaps & <link rel = ... для четырехсторонних веб-сайтов

Я понимаю, что есть много похожих вопросов, но я думаю, что это объединяет несколько путаниц. Этот вопрос следует из большого совета, приведенного здесь . У меня есть сайт, на котором есть отдельная версия для мобильных и настольных компьютеров, и каждая версия имеет отдельную английскую и польскую версии. Так, например,

  • Английский Рабочий стол ~ http://www.example.com/index.html
  • English Mobile ~ http://www.example.com/m/index.html
  • Польский рабочий стол ~ http://www.example.com/pl/index.html
  • Польский мобильный ~ http://www.example.com/m/pl/index.html

Теперь я знаю, что каждый должен иметь свои собственные файлы Sitemap, и каждая карта сайта должна ссылаться на альтернативные страницы. Но я сделал это правильно - и если я также хочу использовать аннотацию ссылок на каждой странице html, то я сделал это правильно, примеры моей структуры sitemaps, например, усеченные только на целевую страницу.

Рабочий стол на английском языке:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
  <loc>http://www.example.com/</loc>
  <xhtml:link rel="alternate" hreflang="pl" href="http://www.example.com/pl/"/>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/"/>
  <xhtml:link rel="alternate" hreflang="en" media="only screen and (max-width: 640px)" href="http://www.example.com/m/"/>
  <xhtml:link rel="alternate" hreflang="pl" media="only screen and (max-width: 640px)" href="http://www.example.com/m/pl/"/>
</url>

Рабочий стол для польских сайтов:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
  <loc>http://www.example.com/pl/</loc>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/"/>
  <xhtml:link rel="alternate" hreflang="pl" href="http://www.example.com/pl/"/>
  <xhtml:link rel="alternate" hreflang="en" media="only screen and (max-width: 640px)" href="http://www.example.com/m/"/>
  <xhtml:link rel="alternate" hreflang="pl" media="only screen and (max-width: 640px)" href="http://www.example.com/m/pl/"/>
</url> 

Мобильный английский сайт:

<?xml version="1.0" encoding="UTF-8" ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
  <loc>http://www.example.com/m/</loc>
  <mobile:mobile/>
  <xhtml:link rel="alternate" hreflang="pl" media="only screen and (max-width: 640px)" href="http://www.example.com/m/pl/"/>
  <xhtml:link rel="alternate" hreflang="en" media="only screen and (max-width: 640px)" href="http://www.example.com/m/"/>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/"/>
  <xhtml:link rel="alternate" hreflang="pl" href="http://www.example.com/pl/"/>
</url>

Мобильный польский субсайт:

<?xml version="1.0" encoding="UTF-8" ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
  <loc>http://www.example.com/m/pl/</loc>
  <mobile:mobile/>
  <xhtml:link rel="alternate" hreflang="en" media="only screen and (max-width: 640px)" href="http:/www.domain.com/m/"/>
  <xhtml:link rel="alternate" hreflang="pl" media="only screen and (max-width: 640px)" href="http://www.example.com/m/pl/"/>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/"/>
  <xhtml:link rel="alternate" hreflang="pl" href="http://www.example.com/pl/"/>
</url>

И затем следующая структура ссылок на каждой странице:

На всех страницах рабочего стола на английском языке:

<link rel="alternate" hreflang="pl" href="http://www.example.com/pl/[corresponding page name].html" />
<link rel="alternate" media="only screen and (max-width: 640px)"  href="http://www.example.com/m/[corresponding page name].html" />

На всех страницах польского рабочего стола:

<link rel="alternate" hreflang="en" href="http://www.example.com/[corresponding page name].html" />
<link rel="alternate" media="only screen and (max-width: 640px)"  href="http://www.example.com/m/pl/[corresponding page name].html" />

На всех английских мобильных страницах:

<link rel="canonical href="http://www.example.com/[corresponding desktop page].html" />
<link rel="alternate" hreflang="pl" media="only screen and (max-width: 640px)" href="http://www.example.com/m/pl/[corresponding page name].html" />
<link rel="alternate" href="http://www.example.com/[corresponding desktop page].html" />

На всех польских мобильных страницах:

<link rel="canonical href="http://www.example.com/pl/[corresponding desktop page].html" />
<link rel="alternate" hreflang="en" media="only screen and (max-width: 640px)" href="http://www.example.com/m/[corresponding page name].html" />
<link rel="alternate" href="http://www.example.com/pl/[corresponding desktop page].html" />

Я что-то пропустил или неправильно понял? Кажется немного странным, что я должен иметь каноническую ссылку, указывающую на соответствующую страницу рабочего стола, а также альтернативную ссылку, указывающую на ту же страницу. Кроме того, следует ли включить альтернативную ссылку на каждую мобильную страницу на страницу рабочего стола на альтернативном языке и альтернативную ссылку на каждой странице рабочего стола на мобильный сайт альтернативного языка. Смешение? Да! Любые советы приветствуются!

1 голос | спросил asimovwasright 2 12015vEurope/Moscow11bEurope/MoscowMon, 02 Nov 2015 18:23:26 +0300 2015, 18:23:26

1 ответ


2

Решение, которое вы ищете, на самом деле намного менее кропотливо, чем кажется на примере. Я начну с вершины и буду работать с объяснениями. Для удобства я собираюсь предположить, что веб-сайт создан из статических файлов, размещенных на удаленном файловом сервере.

Точка № 1 - Структура: Я бы настоятельно рекомендовал немного реструктуризации. Создайте два отдельных каталога в корне, один для английских страниц, а другой для польских страниц. Структура должна следовать этой общей форме: http://www.example.com/en/ и http://www.example.com/pl/

Пункт №2 - Мобильный: В каталоге каждого соответствующего языка создайте другой каталог для мобильных страниц. Структура должна следовать этой общей форме: http://www.example.com/en/m/ и http://www.example.com/pl/m/

Точка №3 - XML-файлы Sitemap: Я принципиально не согласен с этот ответ . Четыре XML-файла Sitemap не лучше, чем одно, потому что разделение проблем на самом деле здесь не применимо. Карта сайта - это всего лишь карта всего веб-сайта. Да, это громоздко. И я не говорю, что нет законных случаев, когда несколько файлов sitemaps имеют логический смысл, но обычно это когда вы имеете дело с несколькими подобластями, которых нет, поэтому я просто не вижу здесь обоснования. Существует причина, по которой вы можете указать аннотации к языку и мобильные аннотации в XML-карте сайта, поэтому избавите себя от проблем и поместите все в один аккуратный, организованный и хорошо сформированный XML-документ. Это будет выглядеть с аннотациями как для языка, так и для мобильных устройств.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">

<url>
    <loc>http://www.example.com/en/index.html</loc>
    <xhtml:link
           rel="alternate"
           media="only screen and (max-width: 640px)"
           href="http://www.example.com/en/m/index.html" />
    <xhtml:link
           rel="alternate"
           hreflang="pl"
           href="http://www.example.com/pl/index.html" />
    <xhtml:link
           rel="alternate"
           hreflang="en"
           href="http://www.example.com/en/index.html" />
</url>
<url>
    <loc>http://www.example.com/pl/index.html</loc>
    <xhtml:link
           rel="alternate"
           media="only screen and (max-width: 640px)"
           href="http://www.example.com/pl/m/index.html" />
    <xhtml:link
           rel="alternate"
           hreflang="en"
           href="http://www.example.com/en/index.html" />
    <xhtml:link
           rel="alternate"
           hreflang="pl"
           href="http://www.example.com/pl/index.html" />
</url>
</urlset>

Важные примечания:

  1. Вам нужно только добавить URL-адреса рабочего стола в теги <loc>. Mobile по умолчанию заботится, когда вы добавляете тег <link rel="canonical"> на мобильную страницу. Однако, если вы считаете, что собираетесь добавить еще несколько языков в будущем, то, возможно, вы должны добавить как рабочий, так и мобильный URL-адреса в карту сайта. Это, очевидно, на ваше усмотрение.
  2. Для каждой мобильной страницы требуется только один тег <link rel="canonical">, который указывает на соответствующую страницу рабочего стола.
  3. Для каждой мобильной страницы требуется только один тег <link rel="alternate">, который указывает на соответствующую версию языка (для мобильных устройств, конечно). Опять же, если вы решите добавить еще несколько языков в будущем, подумайте над тем, чтобы добавить это в файл Sitemap.
  4. Добавьте ссылку на карту XML в консоли поиска Google.
  5. Добавьте ссылку на карту вашего XML в файл robots.txt, для удовольствия.

Заключение

Здесь есть о чем подумать. Как я упоминал ранее, я настоятельно рекомендую реструктуризацию, чтобы отразить предлагаемую установку. Это может создать дополнительную краткосрочную работу для вас, но есть долгосрочные преимущества. Я также призываю вас серьезно рассмотреть мои моменты в XML-карте сайта, потому что это может быть больно, если сделано неправильно или неэффективно. Как и в большинстве случаев, лучше сделать это в первый раз и сэкономить головную боль по дороге.

ответил nburr 8 72015vEurope/Moscow11bEurope/MoscowSun, 08 Nov 2015 11:43:32 +0300 2015, 11:43:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132