В чем разница между двумя метатегами HTML для указания содержимого веб-страницы в Испании:
<meta name="language" content="Spanish">
и
<meta http-equiv="content-language" content="es">
В чем разница между двумя метатегами HTML для указания содержимого веб-страницы в Испании:
<meta name="language" content="Spanish">
и
<meta http-equiv="content-language" content="es">
<meta name="language" content="Spanish">
Это не определено ни в одной спецификации (включая проект HTML5)
<meta http-equiv="content-language" content="es">
Это версия плохого человека реального HTTP-заголовка и должна быть действительно выражена в заголовках. Например:
Content-language: es
Content-type: text/html;charset=UTF-8
В нем говорится, что документ предназначен для говорящих на испанском языке (он, однако, не означает, что документ написан на испанском языке, он может, например, быть написан на английском языке в рамках языкового курса для испаноговорящих).
Поле заголовка объекта Content-Language описывает естественный язык целевой аудитории для закрытого объекта. Обратите внимание, что это может быть не эквивалентно всем языкам, используемым в сущности.
Если вы хотите указать, что документ написан на испанском языке, используйте:
<html lang="es">
Вы просили разницу, но вы не можете сравнить эти два.
Обратите внимание, что <meta http-equiv="content-language" content="es">
устарел и удален в HTML5. Он использовался для указания "языка по умолчанию для всего документа" с его атрибутом http-equiv
, что делает его директивой pragma (который имитирует заголовок ответа HTTP, например Content-Language
, который не был отправлен с сервера, поскольку он не может переопределить реальный).
Что касается <meta name="language" content="Spanish">
, вы вряд ли найдете надежную информацию. Его нестандартный и, вероятно, был изобретен как SEO неспециализированный.
Однако Рекомендация HTML5 W3C рекомендует авторам использовать lang
в корневых элементах html
(значения атрибутов должны быть действительны теги языка BCP 47:
<!DOCTYPE html>
<html lang="es-ES">
<head>
…
В любом случае, если вы хотите указать язык контента для инструктирования роботов поисковых систем, вы должны рассмотреть эту цитату из Справка Google Search Console на многоязычных сайтах:
Google использует только видимый контент вашей страницы, чтобы определить его язык. Мы не используем любую информацию на уровне кода, такую как атрибуты
lang
.
Google рекомендует использовать hreflang, читать подробнее
Примеры:
<link rel="alternate" href="http://example.com/en-ie" hreflang="en-ie" />
<link rel="alternate" href="http://example.com/en-ca" hreflang="en-ca" />
<link rel="alternate" href="http://example.com/en-au" hreflang="en-au" />
<link rel="alternate" href="http://example.com/en" hreflang="en" />
Html5 также рекомендуется использовать <html lang="es-ES">
В теге small letter lang указывается только: код языка
В большой букве указывается: код страны
Это действительно полезно для ie.Chrome, когда браузер предлагает перевести веб-контент (то есть google translate)