Se instalou a gema jekyll-polyglot, estas adições ao cabeçalho do seu site podem facilmente dar ao seu blogue jekyll os bónus de SEO oferecidos pelo Google.
De acordo com o WHATWG HTML Living Standard, deve declarar a língua da página usando o atributo lang no elemento HTML raiz. Adicione isto ao seu layout:
<html lang="{{ site.active_lang }}">Isto permite que navegadores, motores de pesquisa e tecnologias de apoio (leitores de ecrã, ferramentas de tradução) processem o seu conteúdo corretamente.
Pode facilmente adicionar tags alternate hreflang="pt-PT" ao seu site, obtendo SEO nas pesquisas multilingues do Google. Quando o navegador usa uma língua não suportada, o site recorre à versão predefinida com hreflang="x-default".
Certifique-se de que inclui tags canónicas ao identificar conteúdo em páginas semelhantes da mesma língua.
{% if page.lang == site.default_lang %}
<link rel="canonical"
href="http://yoursite.com{{page.permalink}}" />
{% else %}
<link rel="canonical"
href="http://yoursite.com/{{page.lang}}{{page.permalink}}" />
{% endif %}
<link rel="alternate"
hreflang="{{site.default_lang}}"
href="http://yoursite.com{{page.permalink}}" />
<link rel="alternate"
hreflang="x-default"
href="http://yoursite.com{{page.permalink}}" />
{% for lang in site.languages %}
{% if lang == site.default_lang %}
{% continue %}
{% endif %}
<link rel="alternate"
hreflang="{{lang}}"
href="http://yoursite.com/{{lang}}{{page.permalink}}" />
{% endfor %}Pode obter o link canónico, os links alternate hreflang e o fallback x-default com uma única tag adicionada ao seu head.html:
{% I18n_Headers %}Nota: continua a ter de adicionar <html lang="pt-PT"> ao elemento raiz do seu layout separadamente, conforme descrito acima.
Com este SEO, cada clique numa página de qualquer língua do site contará para o total de cliques de todas as línguas do site.
O jekyll-seo-tag é outro plugin do Jekyll que emite tags <title> e <meta> para SEO. O {% I18n_Headers %} do Polyglot foi concebido para conviver com ele: deixe o jekyll-seo-tag tratar de tudo exceto do URL canónico, e deixe o polyglot tratar do canonical e dos alternates hreflang (algo que consegue fazer corretamente entre línguas):
{% seo canonical=false %}
{% I18n_Headers %}A opção canonical=false requer o jekyll-seo-tag v2.9.0 ou posterior.
Por predefinição, uma página sem tradução na língua ativa recebe na mesma um canonical a apontar para o seu URL traduzido. Para melhorar o SEO, pode fazer com que as páginas de fallback apontem o seu URL canónico para a versão na língua predefinida. Adicione ao seu _config.yml:
fallback_canonical_to_default_lang: trueCom isto ativado:
/es/sobre-nosotros/)./about/ em vez de /es/about/).Isto consolida a autoridade de SEO no conteúdo original e evita que os motores de pesquisa indexem páginas de fallback duplicadas entre línguas.
O plugin jekyll-redirect-from permite que as páginas declarem URLs antigos a partir dos quais devem ser redirecionadas. O polyglot integra-se com ele de duas formas:
Redirecionamentos automáticos entre línguas via page_id. Quando duas páginas partilham um page_id mas têm permalinks diferentes, o polyglot adiciona automaticamente os permalinks das outras línguas ao redirect_from da página. Não é necessária qualquer configuração manual — basta garantir que ambas as páginas têm o mesmo page_id no front matter.
redirect_from com âmbito de língua. Quando uma página numa língua não predefinida declara o seu próprio redirect_from, o polyglot prefixa automaticamente os caminhos com o código de língua da página, de modo que /old-path se torna /fr/old-path numa página em francês. Os caminhos que já começam pelo código de língua são mantidos como estão.
Inclua um layout redirect.html personalizado no seu site.
Novidade na versão 1.13.0.
Quando faz deploy no Netlify com um ficheiro _redirects, o Polyglot pode gerar automaticamente cópias de cada regra com o prefixo da língua, para que funcionem em todos os seus URLs localizados.
Ative-o no _config.yml:
localize_redirects: true
exclude_from_redirect_localization:
- /signin
- /appCom isto, uma única regra como:
/github https://github.com/org/repo 302é expandida em cópias com prefixo de língua para cada língua configurada:
/github https://github.com/org/repo 302
/fr/github https://github.com/org/repo 302
/de/github https://github.com/org/repo 302
/sv/github https://github.com/org/repo 302Os URLs de destino externos são preservados tal como estão. Os caminhos listados em exclude_from_redirect_localization não são localizados, o que é útil para endpoints de autenticação ou rotas de single-page-app que só devem existir na raiz.