web-dev-qa-db-pt.com

Os hreflangs são necessários no mapa do site XML se forem usados ​​no cabeçalho de cada página?

Eu tenho um site em vários idiomas como este:

example.com/de/about
example.com/fr/about
example.com/about (English)

Decidi colocar os elementos do link hreflang no <head> de cada arquivo. Agora, eu me pergunto, é suficiente colocar apenas o URL padrão em inglês no mapa do site assim:

<url>
  <loc>example.com/about</loc>
</url>

ou tenho que colocar todas as versões de idioma no mapa do site:

<url>
      <loc>example.com/de/about</loc>
    </url>
  <url>
      <loc>example.com/fr/about</loc>
    </url>
  <url>
      <loc>example.com/about</loc>
    </url>
1
Adam

Onde quer que você coloque o hreflang, você deve usar apenas um dos métodos acima. Encontre os métodos sugeridos pelo Google aqui: Informe ao Google sobre versões localizadas da sua página

Métodos para indicar suas páginas alternativas Existem três maneiras de indicar ao Google várias versões de idioma/código do idioma:

  1. Tags HTML
  2. Cabeçalhos HTTP
  3. Mapa do site

Por experiência pessoal, sugiro usar o método head

Mapa do site:

Prós: mais controle sobre quais páginas possuem idioma alternativo Configuração fácil (rastreamento e definição)

Contras: atualização mensal

Cabeça:

Prós: o processo pode ser automatizado por uma variedade de plugins e scripts por aí

Contras: você pode acabar facilmente com problemas de hreflang em páginas sem idioma alternativo (a menos que isso seja feito manualmente, ignore)

Nota: Não tenho muita certeza do que acontece se você mantiver os dois, mas eu acho isso desnecessário, mantenha-o simples e saudável para evitar erros e, eventualmente, o Google ignorando seu hreflang.

Exemplos

Usando hreflang no mapa do site.

O Sitemap deve ficar assim:

<url>
    <loc>http://www.example.com/english/page.html</loc>
    <xhtml:link 
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>

O cabeçalho não deve incluir hreflang, pois o temos no mapa do site.

<head> no hreflang </head>

Usando hreflang no cabeçalho

O Sitemap deve ficar assim

<url>
    <loc>http://www.example.com/english/page.html</loc>

  </url>

Cabeçalho deve ficar assim:

<link rel="alternate" href="http://www.example.com/deutsch/page.html" hreflang="de">
<link rel="alternate" href="http://www.example.com/schweiz-deutsch/page.html" hreflang="de-ch">
<link rel="alternate" href="http://www.example.com/english/page.html" hreflang="en">
<link rel="alternate" href="http://www.example.com/english/page.html" hreflang="x-default">
3
John Could

Você precisa especificar cada URL específico do idioma no seu mapa do site. O Google tem uma postagem em sua página de webmasters que você pode conferir. Possui uma seção específica dedicada aos mapas do site e versões localizadas do seu site com um exemplo detalhado. Nessa seção, lê-se:

Você pode usar um Sitemap para informar ao Google todas as variantes de idioma e região para cada URL. Para fazer isso, adicione um elemento que especifique uma URL única, com entradas filho listando todas as variantes de idioma/local da página, incluindo a própria. Portanto, se você tiver 3 versões de uma página, seu mapa do site terá 3 entradas, cada uma com 3 entradas filho idênticas.

0
Σπύρος Γούλας