Использование мета-тегов 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 выглядит правильным, если вы сделали указания на альтернативные языковые версии для каждой страницы, включая внутренние страницы. Важно также следить за тем, чтобы все ссылки