Receitas de SEO

Receitas para Otimização para Motores de Pesquisa usando o Polyglot

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.

Declaração de Língua HTML

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.

SEO multilingue usando tags alternate hreflang

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 %}

Tudo o anterior (hreflang e canonical)

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.

Usar o polyglot com o jekyll-seo-tag

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.

Canonical de fallback para páginas não traduzidas

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: true

Com isto ativado:

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.

Usar o polyglot com o jekyll-redirect-from

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.

Localizar os _redirects do Netlify

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
  - /app

Com 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  302

Os 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.