Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jhonblr

Gerar Sitemap.xml automaticamente com PHP

Recommended Posts

Fala galera do iMasters Fórum, tudo bem? Estou com uma duvida, estou desenvolvendo uma plataforma social, e observei que as outras plataformas como Instagram e facebook tem um sistema de destaque de usuários. Ou Seja destaque no Buscador da Google entre outros. Segue Print Abaixo:

 

print.png

 

Eu queria um sistema similar a este, que pegue os usuários mais acessados e, que esses usuários tivesse um destaque ao buscar o nome da empresa.

 

Alguem me da uma ideia de como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais... O Google que faz recolhimento do link mais acessado?


Ata entendi, mais teria como enviar essas informações automaticamente? ou seja algum plugin ou script?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conforme consta no texto do link, sim. Assumindo que você tenha por exemplo o analytics instalado no seu site, é extremamente fácil para o google mensurar quais são as páginas de maior interesse para o seu público.

Compartilhar este post


Link para o post
Compartilhar em outros sites

segue abaixo um exemplo, qualquer duvida estarei a disposição

<?php

//arquivos de configurações e conexão no banco de dados
require_once('config/dbaSis.php');
require_once('config/outSis.php');
require_once('config/getSis.php');
require_once('config/setSis.php');

//começa gerar o xml
$xml = '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
//lista de páginas personalisadas que não existem por padrão no BD
	<url>
      <loc>http://meudominio.com.br</loc>
      <lastmod>'.date('Y-m-d').'</lastmod>
      <changefreq>hourly</changefreq>
      <priority>1.000</priority>
   </url>
   <url>
      <loc>http://meudominio.com.br/contato.php</loc>
      <lastmod>'.date('Y-m-d').'</lastmod>
      <changefreq>weekly</changefreq>
      <priority>0.600</priority>
   </url>
';
$urlmenu = array(
'http://meudominio.com.br/pgsearch.php?option=venda&tipo=1&bairro=',
'http://meudominio.com.br/pgsearch.php?option=venda&tipo=2&bairro=',
'http://meudominio.com.br/pgsearch.php?option=venda&tipo=4&bairro=',
'http://meudominio.com.br/pgsearch.php?option=venda&tipo=5&bairro=',
'http://meudominio.com.br/pgsearch.php?option=venda&tipo=10&bairro=',
'http://meudominio.com.br/pgsearch.php?option=venda&tipo=11&bairro=',
'http://meudominio.com.br/pgsearch.php?option=venda&tipo=12&bairro=',
'http://meudominio.com.br/pgsearch.php?option=Loca%C3%A7%C3%A3o&tipo=&bairro='
);
foreach($urlmenu as $res){
$xml .='	<url>
      <loc>'.$res.'</loc>
      <lastmod>'.date('Y-m-d').'</lastmod>
      <changefreq>hourly</changefreq>
      <priority>0.600</priority>
   </url>
';
echo $res.'<br>';
}
//tráz os dados dos produtos do banco de dados
$readimovel = read('imovel',"WHERE situacao = 1");
if(count($readimovel) > 0){
	foreach($readimovel as $res){
		
		$contarimagens = 0;
		$imovelid = $res['imovelid'];
$xml .='	<url>
		<loc>http://meudominio.com.br/imovel/'.$res['url'].'</loc>
';
                        if(isset($imovelid)){
                             $lerimagens = read('imgimovel',"WHERE imovelid='$imovelid'");
                        }
                 
                        if(!empty($lerimagens)){
                             foreach($lerimagens as $img){
                                 if(!empty($img['alt'])){
                                     $title = $img['alt'];
                                 }else{
                                     $title = SITENAME;
                                 }
                                 $imagem = $img['img'];
                                 $caminho = BASE.'imagens/'.$imagem;
                                 $thumb = $imagem;
                                 $exit = substr($thumb, -3);
                                 $countthumb = strrpos($thumb,'.');
                                 $thumb = substr($thumb, 0, $countthumb);
                                 $caminhothumb = BASE.'imagens/'.$thumb.'_thumb.'.$exit;
                                 $caminhomedio = BASE.'imagens/'.$thumb.'_medio.'.$exit;
                                 $legend = $img['alt'];
                                 $xml .='			<image:image>
				<image:loc>'.$caminhothumb.'</image:loc>
				<image:caption>'.$title.' Baixa Resolução</image:caption>
			</image:image>
			<image:image>
				<image:loc>'.$caminhomedio.'</image:loc>
				<image:caption>'.$title.' '.$res['condominio'].' Resolução Padrão</image:caption>
			</image:image>
			<image:image>
				<image:loc>'.$caminho.'</image:loc>
				<image:caption>'.$title.' Alta Resolução</image:caption>
				<image:geo_location>'.$res['endereco'].' / '.$res['bairro'].', '.$res['cidade'].' - '.$res['estado'].'</image:geo_location>
			</image:image>'
			;  
			$contarimagens++;
                                 }
								 
                            }
			echo 'Imóvel '.$res['condominio'].' => ';
			echo $contarimagens.' Imagens Adicionadas ao imóvel<br>';

$xml .='      <lastmod>'.date('Y-m-d').'</lastmod>
      <changefreq>weekly</changefreq>
      <priority>0.500</priority>
   </url>
';
}
}
$xml .= '
</urlset>';

$arquivo = fopen('Sitemap.xml', 'w'); //abre o arquivo ou tenta cria-lo se ele não exixtir
if(fwrite($arquivo,$xml)){  //gravamos os dados no arquivo
echo 'criado o novo com sucesso';
}
fclose($arquivo); //fechamos o arquivo
?>

como estamos gravando os dados em um arquivo externo (.xml), é necessário o agendamento da execução do script no cron(caso linux), para que seu sitemap seja atualizado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito interessante Wesley, mais.. como é recolhido os links automaticos dos usuários cadastrados na plataforma social? Exemplo: plataform.com/Daniel

 

Me explica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o Sitemap.xml é usado para dizer ao buscador o que as vezes a inteligência dele falha.

 

Explicação do google sobre sitemap

https://support.google.com/webmasters/answer/156184?hl=pt-BR

 

Se você configura suas páginas com a meta robots

http://googlewebmastercentral.blogspot.com.br/2007/03/using-robots-meta-tag.html

dependendo da configuração ele ira rastrear as páginas e seus links e estabelecer um ranking para elas

 

quando você envia um sitemap você informa ao buscador informações importantes como

<loc> //pagina
<lastmod>//quando sofreu a ultima modificação
<changefreq>//frequencia com que é atualizada
<priority>//nivel de prioridade (podes definir um número maior para páginas de usuários mais acessados)

//as imagens referentes a pessoa

 

não ajuda muita coisa, só que você auxilia o buscador e diz para ele qual as páginas tem mais importância na realidade e agiliza o rastreamento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.