Sitemap e robots no Jekyll

A idéia é listar todas páginas e falar para os mecanismos de busca o que deve ser indexado e o que não deve ser indexado.

Instalar sitemap

Primeira coisa e mais importante é criar um mapa de site para informar aos buscadores onde está nossas URL`s que queremos indexar.

Para isso adicione no arquivo _config.yml.

gems:
    - jekyll-sitemap

Por padrão todas páginas irão serem incluidas no sitemp, as que você não quiser, utilize sitemap: false no YAML front matter do seus documentos ou páginas.

Adicione robots.txt

Crie um aquivo chamado robots.txt na raiz da aplicação, defina como será o link de acesso dele, e informe que não usará layout nenhum.
Se você já manja dos códigos, clique aqui ir direto ao código completo.
Prevendo que usarmeos uma configuração padrão para todos user agents, colocaremos um * ali no meio.
---
permalink: robots.txt
layout:
---
User-agent: *
Como acabamos de criar o mapa de site, primeira coisa coisa é mostrar aos buscadores qual endereço fica nosso sitemap. Logo adicionamos a linha abaixo em nosso arquivo
Sitemap: {{ site.url }}/sitemap.xml

Próximo passo é mostrar aos buscadores tudo que não queremos indexar.

Se você configurou no YAML front matter do seus documentos ou páginas a opção sitemap: false para os itens que não quer indexar. Então usaremos um código usando essa propriedade para listar essas URL`s para serem bloqueadas.

1
2
{% assign noindexPages = site.pages | where: 'sitemap', false %}
{% assign noindexDocuments = site.documents | where: 'sitemap', false %}

Verificamos se existe URL`s. Caso exista, teremos dois loops, um para cada lista de URL`s imprimindo a instrução de bloqueio.
Caso não exista URL`s a serem bloqueadas, colocamos a instrução para liberar acesso para a aplicação inteira.

1
2
3
4
5
6
{% for node in noindexPages %}
    Disallow: {{ node.url }}
{% endfor %}
{% for node in noindexDocuments %}
    Disallow: {{ node.url }}
{% endfor %}

O código completo deverá ficar algo como isso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
---
permalink: robots.txt
layout:
---

User-agent: *
Sitemap: {{ site.url }}/sitemap.xml

{% assign noindexPages = site.pages | where: 'sitemap', false %}
{% assign noindexDocuments = site.documents | where: 'sitemap', false %}

{% if noindexDocuments or noindexPages %}
    {% for node in noindexPages %}
        Disallow: {{ node.url }}
    {% endfor %}
    {% for node in noindexDocuments %}
        Disallow: {{ node.url }}
    {% endfor %}
{% else %}
    Disallow:
{% endif %}