Gerar sitemap.xml com Spring MVC e Sitemapgen4j
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
Última atualização em: | 7149 Visualizações
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.
Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.