Gerar sitemap.xml com Spring MVC e Sitemapgen4j

Postado em por Wolmir Cezer Garbin em Java | 217 Visualizações
Última atualização em:

Se você quer melhorar o SEO do seu web site, criar um sitemap.xml vai te ajudar alavancar seu SEO. Veja neste post como gerar o sitemap.xml com Spring MVC utilizando o framework sitemapgen4j

Gerar sitemap.xml com Spring MVC e Sitemapgen4j

Dependência do maven para sitemapgen4j

O primeiro passo para iniciar este tutorial é adicionar as dependencias necessárias, se você estiver utilizando um projeto com spring mvc todas as dependências do spring já estão adicionadas e você precisará apenas adicionar a dependência do sitemapgen4j.

Para adicionar a dependência, abra seu pom.xml e adicione entre as tags <dependencies></dependencies> o código:

<!-- https://mvnrepository.com/artifact/com.github.dfabulich/sitemapgen4j -->
<dependency>
    <groupId>com.github.dfabulich</groupId>
    <artifactId>sitemapgen4j</artifactId>
    <version>1.0.2</version>
</dependency>

Criando o seu controller do Spring MVC para o sitemap

O sitemap.xml é um arquivo em formato xml, existem algumas regras para sua criação, voçê pode ver as regras para a criação de um sitemap.xml acessando este outro artigo, mas para o momento já nós basta saber seu formato, num próximo momento você pode aperfeiçoar seu arquivo.

Então vamos lá, seu controller deve ficar no seguinte padrão:

import com.redfin.sitemapgenerator.ChangeFreq;
import com.redfin.sitemapgenerator.WebSitemapGenerator;
import com.redfin.sitemapgenerator.WebSitemapUrl;
import org.springframework.core.io.FileSystemResource;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.io.File;
import java.net.MalformedURLException;
import java.util.Date;
import java.util.List;


@Controller
public class HomeController {

    private final static String BASE_URL = "http://receitasdecodigo.com.br";


    @RequestMapping(path = "/sitemap.xml", produces = {MediaType.APPLICATION_XML_VALUE})
    @ResponseBody
    public FileSystemResource sitemap(HttpSession httpSession, Model model) {
        try {
            WebSitemapGenerator sitemap = WebSitemapGenerator
                    .builder(BASE_URL, new File("/home/wolmir/sitemap"))
                    /*.gzip(true)*/
                    .build();

            WebSitemapUrl url = new WebSitemapUrl
                    .Options(BASE_URL + "/post/other")
                    .lastMod(new Date())
                    .priority(0.8)
                    .changeFreq(ChangeFreq.WEEKLY)
                    .build();
            
            for (int i = 0; i < 1000; i++) {
                sitemap.addUrl(url);
            }

            List<File> write = sitemap.write();

            return new FileSystemResource(write.get(0));
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }

        return null;
    }
}

O importante neste controller que deve ser observado é o tipo do retorno, onde está recebendo uma chamada GET e produzindo XML, outra coisa importante é que estamos utilizando o nome como sitemap.xml dessa forma será criado o sitemap sempre que for chamado por algum spinner

Sem muito segredo o que vai precisar fazer a partir deste momento é criar seu código para montar as URL's que existam em seu site.

Acessando o conteúdo do sitemap.xml

Após adicionar a dependência e criar o controller basta verificar se tudo funcionou corretamente, abra o navegador e acesse, http://localhost:8080/sitemap.xml ou se estiver utilizando um contexto em sua aplicação adiciona a chamada, mas lembre-se de manter o sitemap.xml na rais de sua aplicação.

Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

Posts relacionados


Code Conference

Esta é uma conferência de código realizada na cidade de Pato Branco para dissiminar tendências e informações sobre programação e novas tecnológias

Veja mais sobre o Code Conference

Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar