Polylang xml sitemap для мультиязычного сайта , по рекомендациям google /

Если у вас мультиязычный сайт, очень важно верно составить sitemap для того чтобы поисковые системы знали что у вас есть несколько языков.

02 / 07 / 2019 288 wordpress Aвтор: Фрилансер

Polylang xml sitemap для мультиязычного сайта , по рекомендациям google

Если у вас мультиязычный сайт, очень важно верно составить sitemap для того чтобы поисковые системы знали что у вас есть несколько языков.


Исходя из рекомендации google 

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

Google может найти альтернативные версии ваших страниц, даже если вы не предпримете никаких действий, но все же желательно указывать их явно.

Сообщить Google о вариантах страницы можно с помощью файла Sitemap. Для этого добавьте в него элемент <loc>, указав в нем URL страницы, а в дочерних тегах <xhtml:link> – ссылки на все ее языковые и региональные варианты, включая саму страницу. Таким образом, если у вас есть три варианта страницы, в файле Sitemap будет три элемента с тремя идентичными дочерними тегами.

Правила для файлов Sitemap

  • Указывайте пространство имен xhtml следующим образом:
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
  • Создавайте отдельный элемент <url> для каждого URL.
  • В каждом элементе <URL> должен быть дочерний элемент <loc>, в котором указывается URL страницы.
  • В каждом элементе <URL> должен быть дочерний элемент <xhtml:link rel="alternate" hreflang="код языка">, в котором перечисляются все варианты страницы, включая текущую.  Порядок дочерних элементов <xhtml:link> не имеет значения, но вы можете придерживаться определенной последовательности, чтобы было проще отслеживать ошибки.

 

 Для реализации будем использовать плагин XML Multilanguage Sitemap Generator. Он хорошо подходит, и совместим с плагином polylang, но есть несколько минусов.

-Нету hreflang для языка по умолчанию (это не обязательно, но рекомендовано google).

- Нет страниц других языков

Чтобы это все исправить нужно немного подправить плагин!!

Все изменения делаем в папке xml-multilanguage-sitemap-generator\includes\loop\polylang\

файл polylang-post-type.php

$query = new WP_Query( array( 'post_type' => $post_type, 'post__not_in' => $idToExclude, 'lang' => $default_polylang_lang, 'posts_per_page' => -1 ) );

Заменить на:

$query = new WP_Query( array( 'post_type' => $post_type, 'post__not_in' => $idToExclude, 'posts_per_page' => -1 ) );

Код ниже можно закомментировать (он удаляет язык по умолчанию) 

if (($key = array_search($default_polylang_lang, $excluded_default_langs)) !== false) {
            unset($excluded_default_langs[$key]);
}

 

файл polylang-taxonomies.php

$terms = get_terms(array(
    'taxonomy'      =>  $taxonomy,
    'hide_empty'    =>  true,
    'lang'          =>  $default_polylang_lang
));

Заменить на:

$terms = get_terms(array(
    'taxonomy'      =>  $taxonomy,
    'hide_empty'    =>  true    
));

Также закомментировать код:

/*if (($key = array_search($default_polylang_lang, $excluded_default_langs)) !== false) {
            unset($excluded_default_langs[$key]);
        }*/

Код внизу файла:

 $term_map = array(
            'permalink'     =>      get_term_link( $default_lang_term_id ),
            'changefreq'    =>      $changefreq_ar,
            'priority'      =>      $priority_ar,
            'languages'     =>      $languages_arg,
        );

Заменить на:

$term_map = array(
            'permalink'     =>      $lang_url,
            'changefreq'    =>      $changefreq_ar,
            'priority'      =>      $priority_ar,
            'languages'     =>      $languages_arg,
        );

Все.теперь карта будет по рекомендация google

Пример карты

<?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" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://expertseeds.com.ua/product/prdsolnechnik-amato-granstar-50-gr/</loc>
    <xhtml:link rel="alternate" hreflang="ru" href="https://expertseeds.com.ua/product/prdsolnechnik-amato-granstar-50-gr/"/>
    <xhtml:link rel="alternate" hreflang="uk" href="https://expertseeds.com.ua/ua/product/sonyashnik-amato-granstar-50-gr/"/>
    <changefreq>weekly</changefreq>
    <priority>1</priority>
  </url>
  <url>
    <loc>https://expertseeds.com.ua/ua/product/sonyashnik-amato-granstar-50-gr/</loc>
    <xhtml:link rel="alternate" hreflang="ru" href="https://expertseeds.com.ua/product/prdsolnechnik-amato-granstar-50-gr/"/>
    <xhtml:link rel="alternate" hreflang="uk" href="https://expertseeds.com.ua/ua/product/sonyashnik-amato-granstar-50-gr/"/>
    <changefreq>weekly</changefreq>
    <priority>1</priority>
  </url>
</urlset>

 

3 случайных Поста

Card image cap
Как запрет webmoney повлияет на Украинских фрилансеров
Card image cap
Форма обратной связи в телеграм
Card image cap
Всплывающее окно с формой при переходе по utm метке

коммент.

© SiteBlog designer