Bug? Descuido? Passou Batido? Ou nao tem problema? Aqui no GUJ mesmo!

http://www.guj.com.br/java/239514-se-voce-nao-gostou-entao-arruma-ai/www.microsoft.com.br/www.meudominiodesacanagem.com.br/1

[quote=boone]Agradeço a funcionalidade, pois ela irá me permitir usar títulos mais criativos do que os colocados nos posts !

Imagino que o colega reclamou por não estar acostumado com isto, mas o G1 realmente usava antes que o GUJ e isto facilitava a vida e muito na hora de compartilhar link, além de ajudar no SEO é claro…[/quote]

Eu ja disse, isto aqui tambem é SEO?? http://g1.globo.com/rio-de-janeiro/noticia/2011/04/mais-um-suspeito-e-baleado-em-operacao-do-bope-na-zona-oeste.html

Ok, agora experimenta mudar qualquer coisa ali da URL e ve se consegue acessar. É isto que estou questionando, e não a técnica de SEO.

[quote=fredferrao][quote=Jesuino Master]Não é bug, é técnica de SEO.

Tem muitos sites assim.

Com essa técnica aproximamos a WEB Humana da WEB das máquinas e tals :slight_smile: [/quote]

Colocar todo o título do tópico na URL é a técnica, agora permitir que qualquer coisa possa ser colocada la e mesmo assim abrir o mesmo link? Esta é a questão.[/quote]

É uma boa questão. Temos defensores dos dois lados e tals.

Considerando que o post é um recurso, deveríamos ter uma URI que referencia-se ele unicamente. Para isso, o ID já serve. Para efeitos de SEO, colocam o texto do tópico também, pois aumenta a relevância em SEngines. A grande questão é se fixar isso, o título do post pode mudar, mas o post continuar existindo, Ou seja, iremos trocar o identificar único do recurso, mas o recurso ainda é o mesmo.

Em outras palavras, se trocarmos o título iremos quebrar um monte de links! Da forma que está não impactará em links existentes se mudarmos o título…

[quote=Jesuino Master][quote=fredferrao][quote=Jesuino Master]Não é bug, é técnica de SEO.

Tem muitos sites assim.

Com essa técnica aproximamos a WEB Humana da WEB das máquinas e tals :slight_smile: [/quote]

Colocar todo o título do tópico na URL é a técnica, agora permitir que qualquer coisa possa ser colocada la e mesmo assim abrir o mesmo link? Esta é a questão.[/quote]

É uma boa questão. Temos defensores dos dois lados e tals.

Considerando que o post é um recurso, deveríamos ter uma URI que referencia-se ele unicamente. Para isso, o ID já serve. Para efeitos de SEO, colocam o texto do tópico também, pois aumenta a relevância em SEngines. A grande questão é se fixar isso, o título do post pode mudar, mas o post continuar existindo, Ou seja, iremos trocar o identificar único do recurso, mas o recurso ainda é o mesmo.

Em outras palavras, se trocarmos o título iremos quebrar um monte de links! Da forma que está não impactará em links existentes se mudarmos o título…[/quote]

Na verdade, vamos supor que Fulano cria o tópico com id 123 e com título AAA. A URL do tópico vai ter o id 123 e AAA como parte dela. Se algum espertinho trocar AAA por BBB, tem que dar 404.
Depois fulano altera o título do tópico para CCC e obtém-se uma nova URL com o id 123 e CCC nela. Quem trocar CCC por BBB tem que ter um 404 como resposta.
No entanto ainda há a URL antiga. Quem acessar com id 123 e AAA, tem que obter um status 301 e redirecionar para a URL nova. Enfim, neste caso o GUJ deveria salvar todas para um determinado id de tópico, não só o título que é parte da URL, mas também os títulos antigos que redirecionem para o novo.

[quote=victorwss]
Na verdade, vamos supor que Fulano cria o tópico com id 123 e com título AAA. A URL do tópico vai ter o id 123 e AAA como parte dela. Se algum espertinho trocar AAA por BBB, tem que dar 404.
Depois fulano altera o título do tópico para CCC e obtém-se uma nova URL com o id 123 e CCC nela. Quem trocar CCC por BBB tem que ter um 404 como resposta.
No entanto ainda há a URL antiga. Quem acessar com id 123 e AAA, tem que obter um status 301 e redirecionar para a URL nova. Enfim, neste caso o GUJ deveria salvar todas para um determinado id de tópico, não só o título que é parte da URL, mas também os títulos antigos que redirecionem para o novo.[/quote]

JForum é um projeto OpenSource, seria legal alguém fazer pull com algumas melhorias.

Deixa como tá… da dor de cabeça no início, mas depois os brincalhões cansarão porque a brincadeira vai ficar sem graça…

Pessoal, não é bug e é de propósito mesmo. Como falaram, a questão é SEO. Mas a funcionalidade foi bem pensada, acreditem. Horas de discussão :slight_smile:

Pra quem quiser saber a história toda:

  1. Apesar do motivo ser SEO, havia um problema sério com SEO: vários tópicos eram indexados no Google mais de uma vez, já que havia mais de uma URL válida pro tópico (como vocês viram). Principalmente quando o pessoal editava o tópico com “Resolvido”, o Google indexava a URL nova com “resolvido” nela mas ainda tinha a URL antiga porque ele continuava respondendo. Péssimo pra SEO.

  2. A solução óbvia, como Victor falou, seria ter apenas uma URL válida (a última) e fazer redirect 301 com todas as outras. Nem penso em guardar todas as edições, mas uma regra simples do tipo “redirecione se a URL não bater com o título atual”.

  3. Mas o 301 tinha problemas sérios de race conditions que poderiam deixar o browser em redirect infinito. Pensem só nesse caso mais óbvio: o tópico é criado como AAA, aí renomeiam pra BBB. Logo haveria um redirect 301 de AAA para BBB. Até aí ok. Mas se o tópico mudasse novamente para AAA, teríamos um redirect de BBB para AAA. Tudo ok, aparentemente, bastaria fazer a URL AAA responder ok novamente. Mas o redirect 301 implica que é permanente (Moved Permanently), e alguns clientes fazem -corretamente- cache dessa resposta (mais notadamente o Google Chrome). Na prática? Um redirect loop infinito de AAA pra BBB e vice-versa. E esse foi só um dos cenários encontrados, logo 301 estava descartado.

  4. O redirect 302 (temporário) seria uma opção mas ele não serve pra SEO. O Google continua indexando as 2 URLs, já que é temporário (só o 301 funciona no Google).

  5. E, finalmente, a solução implementada: nenhum redirect, todas as URLs são aceitas, mas há uma URL certa, que chamamos de canônica. Essa URL canônica corresponde ao título oficial do tópico e é a que será indexada pelo Google. Todas as outras URLs secundárias são aceitas mas com uma meta tag rel=canonical apontando pra URL certa (verifiquem no HTML).

Isso deixa o Google feliz (uma URL só indexada) e o usuário feliz (não quebramos URLs antigas e não temos redirects infinitos).

A url canonica é a primeira, se for a última significa que ela mudou, o que explica os problemas com 301. Urls canônicas não mudam.

Não parece haver problema em mudar a URL canônica. As explicações dos crawlers não falam nada de ter que ser permanente e ainda dizem tratar desse problema potencial de redirect loop.

De qualquer forma, o truque do canonical funcionou aqui no GUJ. Você pode googlar qualquer post com “resolvido” no título e ver que ele foi indexado uma única vez (antes indexava duplicado). Exemplo:

http://www.google.com/search?q=site%3Aguj.com.br+inurl%3A230200

A mudança não é imediata no Google, precisa esperar uns dias para a reindexação da página renomeada, aí ele identifica a nova canônica. Mas funciona :slight_smile:

É da arquitetura da web a premissa que url é apenas um identificador, e não o resource em si. Pelo que entendi não existe a idéia de “modificar” a url porque mudou o estado do recurso.

Editado: link com mais detalhes http://www.w3.org/Provider/Style/URI

Concordo, mas esse preciosismo não ajudaria em nada no SEO - muito mais importante pro GUJ. E a questão das URLs canônicas não é padrão W3C, é uma sintaxe proposta pelo Google apenas para buscadores.

Então do ponto de vista de URIs, HTTP, Rest, W3C, etc, a URL não muda. A implementação atual continua servindo as URLs antigas pros clientes, sem quebrá-las. O que há de errado (do ponto de vistas HTTP/Rest etc) é que há mais de uma URI válida para o mesmo recurso.

Mas com o canonical, o Google não se importa. E os usuários não se importam também, já que todos os links continuam funcionando. Aliás, o próprio link do W3C que você passou fala que a razão de tudo isso é não quebrar URLs antigas e dar uma experiência ruim pro usuário (seção “Why should I care”); logo, estamos fazendo nossa parte.

Concluindo, embora possa haver um certo problema com a teoria HTTP, na prática não temos efeitos colaterais graves e a solução atende todos os cenários desejados.

[quote=Sergio Lopes]Concordo, mas esse preciosismo não ajudaria em nada no SEO - muito mais importante pro GUJ. E a questão das URLs canônicas não é padrão W3C, é uma sintaxe proposta pelo Google apenas para buscadores.

Então do ponto de vista de URIs, HTTP, Rest, W3C, etc, a URL não muda. A implementação atual continua servindo as URLs antigas pros clientes, sem quebrá-las. O que há de errado (do ponto de vistas HTTP/Rest etc) é que há mais de uma URI válida para o mesmo recurso.

Mas com o canonical, o Google não se importa. E os usuários não se importam também, já que todos os links continuam funcionando. Aliás, o próprio link do W3C que você passou fala que a razão de tudo isso é não quebrar URLs antigas e dar uma experiência ruim pro usuário (seção “Why should I care”); logo, estamos fazendo nossa parte.

Concluindo, embora possa haver um certo problema com a teoria HTTP, na prática não temos efeitos colaterais graves e a solução atende todos os cenários desejados.[/quote]

Sergio,

Concordo com vc que a teoria não precisa ser seguido a risca. Só estava explicando porque o problema com redirects. É que urls canonicas não deveriam mudar dessa maneira.

Quanto a solução, eu acho não ótima, mas essa é minha opinião pessoal.

[quote=Sergio Lopes]Pessoal, não é bug e é de propósito mesmo. Como falaram, a questão é SEO. Mas a funcionalidade foi bem pensada, acreditem. Horas de discussão :slight_smile:

Pra quem quiser saber a história toda:

  1. Apesar do motivo ser SEO, havia um problema sério com SEO: vários tópicos eram indexados no Google mais de uma vez, já que havia mais de uma URL válida pro tópico (como vocês viram). Principalmente quando o pessoal editava o tópico com “Resolvido”, o Google indexava a URL nova com “resolvido” nela mas ainda tinha a URL antiga porque ele continuava respondendo. Péssimo pra SEO.

  2. A solução óbvia, como Victor falou, seria ter apenas uma URL válida (a última) e fazer redirect 301 com todas as outras. Nem penso em guardar todas as edições, mas uma regra simples do tipo “redirecione se a URL não bater com o título atual”.

  3. Mas o 301 tinha problemas sérios de race conditions que poderiam deixar o browser em redirect infinito. Pensem só nesse caso mais óbvio: o tópico é criado como AAA, aí renomeiam pra BBB. Logo haveria um redirect 301 de AAA para BBB. Até aí ok. Mas se o tópico mudasse novamente para AAA, teríamos um redirect de BBB para AAA. Tudo ok, aparentemente, bastaria fazer a URL AAA responder ok novamente. Mas o redirect 301 implica que é permanente (Moved Permanently), e alguns clientes fazem -corretamente- cache dessa resposta (mais notadamente o Google Chrome). Na prática? Um redirect loop infinito de AAA pra BBB e vice-versa. E esse foi só um dos cenários encontrados, logo 301 estava descartado.

  4. O redirect 302 (temporário) seria uma opção mas ele não serve pra SEO. O Google continua indexando as 2 URLs, já que é temporário (só o 301 funciona no Google).

  5. E, finalmente, a solução implementada: nenhum redirect, todas as URLs são aceitas, mas há uma URL certa, que chamamos de canônica. Essa URL canônica corresponde ao título oficial do tópico e é a que será indexada pelo Google. Todas as outras URLs secundárias são aceitas mas com uma meta tag rel=canonical apontando pra URL certa (verifiquem no HTML).

Isso deixa o Google feliz (uma URL só indexada) e o usuário feliz (não quebramos URLs antigas e não temos redirects infinitos).
[/quote]

Ok, ta explicado!!! Acho que podemos dar como resolvido.

Ainda fica mais uma pergunta. Existe ameaça real quanto a brecha citada? Alguem poderia realmente usar de maneira mal intencionada(alem de apenas mudar e ficar brincando de postar por ae), mas talvez a resposta não deva ser postada aqui por motivos obvios :lol: