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