Как правильно применять hreflang для мета-тега и для файла карты сайта?

У меня есть вопрос о мета-теге hreflang. Я ознакомился с темой, но не нашел достаточно примеров его использования, поэтому хотел бы уточнить следующее: 

1. Как лучше использовать мета-теги для указания языка: следует ли применять <br/> 
<pre><code class="html">&lt;html lang="ru-RU"&gt;
&lt;html lang="en-GB"&gt;</code></pre> 
или использовать: <br/> 
<pre><code class="html">&lt;link rel="alternate" hreflang="ru" href="https://site.ru/"&gt;
&lt;link rel="alternate" hreflang="en" href="https://site.ru/en"&gt;</code></pre> 
Или возможно их комбинировать? 

2. Если я выберу использование hreflang, правильно ли я оформил теги в следующем коде? Вот пример для главных страниц на русском и английском языках: <br/> 
RU: <br/> 
<pre><code class="html">&lt;link rel="alternate" hreflang="ru" href="https://site.ru/"&gt;
&lt;link rel="alternate" hreflang="x-default" href="https://site.ru"&gt;</code></pre> 
EN: <br/> 
<pre><code class="html">&lt;link rel="alternate" hreflang="en" href="https://site.ru/en/"&gt;
&lt;link rel="alternate" hreflang="x-default" href="https://site.ru"&gt;</code></pre> 
Для внутренних страниц (например, новостей), включая GET параметры: <br/> 
EN: <br/> 
<pre><code class="html">&lt;link rel="alternate" hreflang="en" href="https://site.ru/en/news?page=2"&gt;
&lt;link rel="alternate" hreflang="x-default" href="https://site.ru"&gt;</code></pre> 
RU: <br/> 
<pre><code class="html">&lt;link rel="alternate" hreflang="ru" href="https://site.ru/news?page=2"&gt;
&lt;link rel="alternate" hreflang="x-default" href="https://site.ru"&gt;</code></pre> 
Правильно ли я их использую?

Также у меня есть вопрос о карте сайта (sitemap.xml). Я хотел бы узнать, верно ли она сформирована: <br/> 
Основная карта: <br/> 
<pre><code class="html">&lt;?xml version="1.0" encodi...
  • 3 февраля 2025 г. 11:14
Ответы на вопрос 1
Использование мета-тегов hreflang и карта сайта (sitemap.xml) для управления многоязычными страницами — это важный аспект поисковой оптимизации. Давайте подробно разберем ваши вопросы.

### 1. Использование мета-тегов hreflang

Использование как атрибута `lang` в HTML, так и тегов `link` с `hreflang` имеет свои плюсы:

- Атрибут `lang`:
  ```html
  <html lang="ru-RU">
  <html lang="en-GB">
  ```
  Он позволяет указать язык страницы поисковым системам и браузерам для правильного отображения контента и улучшения доступности. Однако это не достаточно для указания альтернативных языковых версий страниц.

- Теги `link` с `hreflang`:
  ```html
  <link rel="alternate" hreflang="ru" href="https://site.ru/">
  <link rel="alternate" hreflang="en" href="https://site.ru/en">
  ```

  Эти теги помогают поисковым системам определить, какие страницы являются заменами для пользователей в зависимости от языка и региона. Вы можете использовать их в комбинации — это оптимальный подход. Таким образом, у вас будет не только информация о языке документа, но и указание на другие языковые версии.

### 2. Оформление тегов hreflang

Ваши теги `link` с `hreflang` выглядят достаточно хорошо, но есть несколько моментов для уточнения:

#### Главные страницы
Для главной страницы на русском и английском языках:
```html
<!-- Русская версия -->
<link rel="alternate" hreflang="ru" href="https://site.ru/" />
<link rel="alternate" hreflang="x-default" href="https://site.ru/" />

<!-- Английская версия -->
<link rel="alternate" hreflang="en" href="https://site.ru/en/" />
<link rel="alternate" hreflang="x-default" href="https://site.ru/" />
```
Правильным будет указать для каждой версии, где находится другая версия. То есть:

Для страницы на русском:
```html
<link rel="alternate" hreflang="ru" href="https://site.ru/" />
<link rel="alternate" hreflang="en" href="https://site.ru/en/" />
<link rel="alternate" hreflang="x-default" href="https://site.ru/" />
```

Для страницы на английском:
```html
<link rel="alternate" hreflang="en" href="https://site.ru/en/" />
<link rel="alternate" hreflang="ru" href="https://site.ru/" />
<link rel="alternate" hreflang="x-default" href="https://site.ru/" />
```

#### Внутренние страницы (например, новости)
Для новостей можно применить схожую структуру, но если используете GET-параметры, это нормально, просто убедитесь, что указываете правильные URL для всех языковых вариантов:

Для страницы на русском:
```html
<link rel="alternate" hreflang="ru" href="https://site.ru/news?page=2" />
<link rel="alternate" hreflang="en" href="https://site.ru/en/news?page=2" />
<link rel="alternate" hreflang="x-default" href="https://site.ru/" />
```

Для страницы на английском:
```html
<link rel="alternate" hreflang="en" href="https://site.ru/en/news?page=2" />
<link rel="alternate" hreflang="ru" href="https://site.ru/news?page=2" />
<link rel="alternate" hreflang="x-default" href="https://site.ru/" />
```

### 3. Карта сайта (sitemap.xml)

Для корректного создания карты сайта с указанием альтернативных языков необходимо использовать правильный синтаксис. Например, в mapsite.xml вы можете указать hreflang следующим образом:

```xml
<url>
  <loc>https://site.ru/</loc>
  <xhtml:link rel="alternate" hreflang="ru" href="https://site.ru/"/>
  <xhtml:link rel="alternate" hreflang="en" href="https://site.ru/en/"/>
</url>
```

Каждая страница должна содержать правильные ссылки на альтернативные языковые версии с помощью тегов `<xhtml:link>`.

Таким образом, ваше использование hreflang выглядит правильным, если вы сделали указания на альтернативные языковые версии для каждой страницы, включая внутренние страницы. Важно также следить за тем, чтобы все ссылки
Похожие вопросы