Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom pessoal,
Sou Designer gráfico e me meto a besta com PHP. Por isso peço ajuda dos mais experientes para me dizer qual seria a melhor solução para criar url seo para meu site em vez que uso gerenciador de conteúdo. Dentre as opções abaixo foram as quais achei que seriam possíveis. Caso tenha alguma solução não descrita neste post, por favor me indique.
Vamos supor que eu tenho um site com gerenciador de conteúdo e que irei adicionar na seção notícias a matéria com o seguinte título: O Bope invade o morro do alemão
Opção 1.
Na tela de cadastramento da notícia, deixo um campo input (url_seo) para pegar a url seo automaticamente e gravar no banco, semelhante ao post do WordPress. Assim é possível personalizar cada url seo. Lógico que esse campo input será tratado para não inserir caracteres especiais e espaços. Mas no banco haveria um campo "url_seo" que receberia a url seo cadastrada.
Opção 2.
Cadastra-se a notícia normalmente sem se preocupar com a url seo e quanto for exibir no site, irei tratar o título para ficar www.meusite.com.br/noticias/o-bope-invade-o-morro-do-alemao.
Bom, dentre essas opções eu vejo alguns poréns:
Opção 1: Ficaria mais fácil fazer um SELECT e localizar a matéria em questão, já que poderia comparar a url_seo exibida com a url_seo cadastada. Alguns programadores me disseram que isso ficaria lento, já que a pesquisa no banco via texto é mais lenta do que via ID.
Opção 2: Dificultaria localizar a matéria pelo SELECT já que eu não teria nenhum parâmetro para localizar o ID da notícia. Neste caso teria que colocar a url assim: www.meusite.com.br/noticias/154/o-bope-invade-o-morro-do-alemao em que "154" já seria o ID da matéria. Porém isso complicaria a vida SEO no site, já que números não são tão bem interpretados.
Eu andei tentando estudar o wordpress e ví que ele não salva nada no banco de dados, mas existe o campo no admin que possibilita escolher a url seo. Se ele não cadastra no banco, onde mais está cadastrando? Acho essa prática interessante já que deixa flexível para o usuário criar suas próprias URL.
Espero ajuda dos mais experientes.
Abraços!
Não amigo, minha questão é PHP. Preciso saber qual é a melhor forma de fazer url seo em PHP. Se é cadastrando no banco ou tratando o título.
Essa URL seo que você cita se chama 'slug', perceba que em '/noticias/o-bope-invade-o-morro-do-alemao' há 2 slugs, 'noticias' para a página de notícias e 'o-bope-invade-o-morro-do-alemao' para a notícia corrente. Desse modo, cadastrando cada um em seu devido lugar, sem misturá-los, você pode alterar o slug da página de notícias sem se preocupar com a URL de uma notícia específica, já que você não vai guardar a URL completa, só o slug.
Não uso Wordpress há tempos, mas acredito que ele guarda isso no banco de dados sim. Procura lá na tabela onde guarda os posts.
O problema de montar a URL dessa forma, sem ID, é no caso de existir dois posts com o mesmo título ou com a mesma sequência de caracteres válidos para URL, o que, num processo automático, resultaria na mesma slug. O Wordpress normalmente resolve isso adicionando -2 no slug (ex: /noticias/slug-duplicado-2 e assim por diante).
Se você prestar atenção na estrutura das URLs desse forum, como há grande incidência de títulos iguais, verá algo como /topic/ID-slug/. Nesse caso, eu sinceramente prefiro /topic/ID/slug (uma das suas soluções). O google, por exemplo, compacta os slugs intermediários, caso a URL seja muito grande: site.com/.../o-bope-invade-o-morro-do-alemao
Enfim, dei informações para que você consiga decidir por si próprio a melhor forma pro seu caso. Eu usaria a sugerida pelo WP, cadastrar slugs, e buscar com SELECT. Pra questão do desempenho, é IMPRESCINDÍVEL que esse campo seja um índice.
Um abraço.
Sua dúvida não é PHP, é SEO, post em SEO.