Como criar um sitemap e para que serve
Sê você pretente que seu pobre site possua muitas visitas, vindas de sites do google por exemplo, é super importante que você tenha um sitemap. Mas para que serve esse negócio? Oras bolas, para facilitar a indexação de suas páginas. E também lhe garante uma porcentagem muito maior de páginas adicionadas.
Os blogs atuais que utilizam sistemas prontos como Wordpress por exemplo, já vem com tudo pronto: Os famosos feeds e rss, que facilitam muito a indexação, mas e se você mesmo desenvolveu completamente seu site em PHP, como fazer um sitemap?
A nossa disposição temos alguns geradores na internet, mas tem coisa que nenhum gerador faz, e então precisamos montar nosso próprio sistema de geração de sitemap.
Na tentativa de criar um sitemap para meu site www.tutoriaisnaweb.com procurei na internet e o melhor que achei foi: http://www.xml-sitemaps.com/. Gerou um sitemap, porém apenas com as páginas do meu forum de discussão, e dos demais conteúdos não. A solução foi criar meu próprio gerador de sitemap, que por ser desenvolvido em php, tem contato direto com meu banco de dados, sendo asim, quando o site é atualizado, o sitemap também é.
Vou explicar como você pode fazer um sitemap para seu site com banco de dados, em php.
O Primeiro passo é editar o arquivo .htaccess que fica no diretorio do seu host, onde ficam seus arquivos. Se não encontrar no seu host o arquivo, crie-o. Seu nome é exatamente .htaccess . Não possui nome, é só a extensão. Exatamente como acima.
Após o arquivo aberto, edite-o e adicione a seguinte linha:
AddType application/x-httpd-php .php .xml
Explicando: Esta linha faz com que o servidor interprete arquivos php com a extensão xml.
Após esse passo acima, crie um arquivo de nome sitemap.xml por exemplo:
No começo do arquivo eu adicionei as seguintes linhas:
<? echo “<?xml version=’1.0′ encoding=’ISO-8859-1′?>”; ?>
<urlset xmlns=”http://www.google.com/schemas/sitemap/0.84” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd“>
Cada caso é um caso, então não tem muito o que eu explicar aqui, o que posso ensinar, é como foi que montei o meu arquivo, que serve para gerar uma lista com todas as URL dos tutoriais cadastrados em meu site de tutoriaisnaweb.com
Logo abaixo:
<?
include(”funcoes.php”);
$mysql = new artigos;
$mysql->conectar();
$query = mysql_query(”SELECT * FROM $tabela ORDER BY id DESC”);
while($artigo=mysql_fetch_array($query)) {
$titulo=$artigo[”titulo”];
$art_id=$artigo[”id”];
$target=”";
$artigo_id=”ler.php?id=$art_id”;
$artigo_id=”view.php?id=$art_id”;
$titulo=str_replace(” “,”-”,$titulo);
$titulo=str_replace(”&”,”&”,$titulo);
?>
Explicando: As 3 primeiras linhas é responsável pela conexão com o banco de dados.
Logo abaixo, temos a “função” que pega os dados da tabela, que serão posteriormente listados, temos também o While, que é a parte responsável pelo “loop” que vai percorrer a tabela até pegar todos os dados da tabela.
As variáveis mais abaixo, são responsável por armazenar dados como a id do artigo, e titulo. Algo como: “Como conventer DVD para DivX”, etc, assim a cada passada pelo loop, pega o título do artigo.
Mais abaixo a linha $titulo=str_replace(” “,”-”,$titulo); substitui os espaços entre as letras no título, pelo caractere “-”.
Mais abaixo a linha $titulo=str_replace(”&”,”&”,$titulo); substitui o caracter & por &. Se não fizer isso, se em alguma string contiver o caracte &, vai dar erro na geração do arquivo. Então é necessário isso, pois é um caracter especial.
E após estas linhas vem:
<url>
<loc>http://www.tutoriaisnaweb.com/<?=$artigo_id?>&artigo=<?=$titulo?></loc>
<priority>1.0</priority>
<changefreq>weekly</changefreq>
</url>
A linha: <loc>http://www.tutoriaisnaweb.com/<?=$artigo_id?>&artigo=<?=$titulo?></loc> Vai “escrever” a url de cada artigo.
weekly diz ao google que seu site é atualizado semanalmente. Você pode colocar aways (sempre), daily (diariamente), monthly (mensalmente), never (nunca), yearly (anualmente).
E para finalizar o loop coloque:
<? } ?>
</urlset>
Esse </urlset> é realmente quer dizer que terminou o arquivo xml.
Após todas estas linhas o meu arquivo deve ficar assim:
<? echo “<?xml version=’1.0′ encoding=’ISO-8859-1′?>”; ?>
<urlset xmlns=”http://www.google.com/schemas/sitemap/0.84” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd“>
<?
include(”funcoes.php”);
$mysql = new artigos;
$mysql->conectar();
$query = mysql_query(”SELECT * FROM $tabela ORDER BY id DESC”);
while($artigo=mysql_fetch_array($query)) {
$autor=$artigo[’autor’];
$titulo=$artigo[”titulo”];
$art_id=$artigo[”id”];
$target=”";
$artigo_id=”ler.php?id=$art_id”;
$artigo_id=”view.php?id=$art_id”;
$titulo=str_replace(” “,”-”,$titulo);
$titulo=str_replace(”&”,”&”,$titulo);
?>
<url>
<loc>http://www.tutoriaisnaweb.com/<?=$artigo_id?>&artigo=<?=$titulo?></loc>
<priority>1.0</priority>
<changefreq>weekly</changefreq>
</url>
<? } ?>
</urlset>
É só você modificar seu o seu site map de acordo com suas necessidades.
Veja o meu script funcionando: http://www.tutoriaisnaweb.com/sitemap.xml
E para acessar a página onde pode enviar seu sitemap para o google acesse: https://www.google.com/webmasters/tools/siteoverview?hl=pt-BR e siga os passos da página.
Qualquer dúvida, não exite em postar.

[…] o seu blog é em Wordpress, você pode querer criar um sitemap para ele. E existe plugin específico para isso, que é simples e fácil de instalar, e foi […]
Na URL dentro das tags o “&” (e comercial) deve ser substituido por “&” (sem aspas), senão ocorre erro de execução do XML.
Então no meu site deu erro, igual a do “Vinicius Juliani”
obrigado pela iniciativa….
Oi, fui tentar fazer e deu o seguinte erro: Não é possível exibir a entrada XML usando a folha de estilos . Corrija o erro e clique no botão Atualizar ou tente novamente mais tarde.
——————————————————————————–
Espaços em branco não são permitidos neste local. Erro ao processar o recurso…
Como proceder?
hi
Agree
Ola, estou a tentar fazer um sitemap descente, há muito tempo. Obrigado pelo tópico, bem funcional e direto. Parabéns.
http://www.empregoemsaopaulo.com
É por causa de pessoas que gostam do que fazem, que conseguimos melhorar nosso mortal conhecimento. Um pouco mais.
Muito útil seu tutorial, praticamente me tirou do zero.
Obrigado.
esse é meu http://www.facildownloads.com.br/sitemap.txt
seguinte: tenho mais de 15 mil produtos, mas so foram indexados 79, o que será que aconteceu? o google nao indexa tudo de uma vez? se indexa, veja por favor o que pode estar errado, grato Leandro
demora um pouco mesmo