Leobreda.Net

HTML | DHTML | JavaScript | DOM | Ajax | Asp | Asp.net | PHP | Ms. SQL | MySQL

TAG cloud

.net     ajax     api     arquivo     array     asp     asp.net     banco de dados     bing     bloqueio     boas práticas     bug     c sharp     c#     c#     chart     classe     collate     collation     complemento     complementos     componente     conexão sql     connection string     css     cursor location     desativar programas     dom     erro cs0246     explorer     ferramenta de busca     firefox     ftp     função     global.asa     global.asax     google     gráfico     helicon     hospedagem ruim     hostphd     http 301     imagem     include     indexação     inicialização     insert     internet lenta     legendas     limit

Pesquisa por: indexação

Monte um sitemap.xml dinâmico

bing, google, indexação, seo, sitemap.xml, yahoo

26 de julho de 2009     14:11361 visitas

Um bom mapa do site (sitemap.xml) armazena TODAS as urls de seu site, de modo que algum motor de busca (Google, Bing Yahoo!, etc) possa acessar tal arquivo e localizar quais páginas de seu site estará visível em alguma busca.

O meu mapa do site atual é este aqui:

<?xml version="1.0" encoding="utf-8"?>
<!-- Autor="Leonardo Breda"-->
<!-- Gerador="http://www.leobreda.net"-->
<!-- Paginas encontradas: "71"-->
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
  <loc>http://www.leobreda.net/</loc>
</url>

<url>
  <loc>http://www.leobreda.net/artigos/</loc>
</url>

<url>
  <loc>http://www.leobreda.net/artigos/asp-evitando-o-codigo-spaghetti-13.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/artigos/criando-urls-amigaveis-20.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/artigos/desativando-programas-na-inicializacao-do-windows-15.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/contato.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/curriculum.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/game-design.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/tags/ajax.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/tags/asp.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/tags/aspnet.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/tags/banco-de-dados.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/tags/google.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/tags/seo.html</loc>
</url>

<url>
  <loc>http://www.leobreda.net/tags/serverhtmlencode.html</loc>
</url>

</urlset>

Instruções

1. Seu site deverá ter suporte ao componente MOD REWRITE, com a seguinte regra no arquivo .htaccess (ou httpd.ini):

RewriteRule ^/sitemap.xml$ /sitemap.xml.asp

2. É necessário um Banco de Dados (Ms. SQL ou MySQL) para armazenar os endereços de seu site. Como o MySQL é gratuito e todos os servidores possuem este acesso:

CREATE TABLE TB_SITEMAP

(

  SITEMAP_COD INT AUTO_INCREMENT,

  URL VARCHAR(200),

  PRIMARY KEY (SITEMAP_COD)

 );

3. Abra TODAS as URLS de seu site e insira o seguinte código. Se você utiliza INCLUDES, Classes, melhor ainda!

<%

PAGINA_URL = Replace(request.ServerVariables("HTTP_X_REWRITE_URL"), "'", "''")
   strSQL = "SELECT SITEMAP_COD FROM TB_SITEMAP WHERE URL='" & PAGINA_URL & "'"
   call abreConexao : set objRecordset=createObject("ADODB.Recordset") : objRecordset.Open strSQL, objConexao
      if objRecordset.EOF Then

          objRecordset.Close : set objrecordset=Nothing : call fechaConexao

          strSQL = "INSERT INTO TB_SITEMAP (URL) VALUES ('" & PAGINA_URL & "')"

          executaConexao(strSQL)

      Else

          objRecordset.Close : set objrecordset=Nothing : call call fechaConexao

      End If

 4. Crie um arquivo chamado sitemap.xml.asp...

<%
  response.ContentType="text/xml"

  strSQL="SELECT URL FROM TB_SITEMAP ORDER BY URL"
  call abreConexao: set obJRecordset=createObject("ADODB.Recordset") : objRecordset.cursorLocation=3 : objRecordset.Open strSQL, objConexao
    i=0
    Redim SITEMAP(objRecordset.RecordCount-1)
    while NOT objRecordset.EOF
      SITEMAP(i) = objRecordset("URL")
      i=i+1
    objRecordset.moveNext : wend : objRecordset.Close : set objRecordset=Nothing : call fechaConexao

%><?xml version="1.0" encoding="utf-8"?>
<!-- Autor="Leonardo Breda"-->
<!-- Gerador="http://www.leobreda.net"-->
<!-- Paginas encontradas: "<%=uBound(SITEMAP)+1%>"-->
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">

<%for i=0 to uBound(SITEMAP)%>
<url>
  <loc>http://<%=Servervariables("HTTP_HOST")%>/<%=server.HTMLEncode(SITEMAP(i))%></loc>
</url>
<%next : erase SITEMAP%>
</urlset>

 5. Rode algumas páginas, e agora acesse o arquivo sitemap.xml, verificando se indexou corretamente suas URLs...

 

Quanto ao meu site, possuo um painel de controle na qual posso gerenciar todo o meu sitemap da seguinte maneira:

 

Quando a estrela está cinza, significa que tal url não será publicada no sitemap; clico em tal estrela, e via Ajax, a url é publicada, além da estrela mudar de cor.

Ao clicar na imagem X em vermelho, posso excluir tal url do índice. Personalizando desta maneira, não há necessidade de ir manualmente no banco de dados e deletar tal registro.

 

2010 - Leonardo Breda