Jun 07 2008

Emule o Landing Sites com JavaScript

Arquivado em: Ferramentas, tutorial

Hypertext Editing System (HES) IBM 2250 Display console – Brown University 1969

Imagem via Wikipedia

Um dos maiores inimigos da adoção dos plugins de cache para o WordPress é um outro plugin: o Landing Sites. Para quem não o conhece, dá para dizer resumidamente que ele identifica quando um visitante vem de algum mecanismo de busca e para este oferece alguma sorte de conteúdo diferenciado; por exemplo, os “paraquedistas” podem ser agraciados com mais publicidade, enquanto os visitantes normais são expostos a menos ou menores anúncios.

Particularmente, acho péssimo isto, simplesmente porque não devemos oferecer aos motores de busca um resultado diferente daquele que o usuário vai encontrar ao entrar na página.

Não obstante, quem gosta deste plugin abomina os plugins de cache porque eles cumprem justamente o seu papel: geram versões estáticas (ou seja, que não demandam nenhum processamento) das páginas do blog. Assim, se a visita que gerou o registro no cache tiver sido oriunda de um buscador todo mundo vai ver daquele momento em diante a página personalizada para aquele visitante; se for uma visita direta, ninguém vai ver nenhuma personalização, não importa se oriundo de buscadores ou não.

O Landing Pages, embora — reitero — eu não goste dele, é um plugin bacana, e se for bem utilizado pode impressionar e até render algumas visualiizações de página extra. Porém, em blogs de alta visitação ele é simplesmente péssimo para o servidor, por obrigar a uma quantidade de processamento muito além da realmente necessária.

Alguns números aproximados, para dar idéia.

Dos clientes da PortoFácil o blog que chamaremos de A tem cerca de 20.000 visitas diárias. O blog que chamaremos de B tem aproximadamente 3.000. Só que o blog A tem o 1BlogCacher instalado, enquanto que o blog B não o tem, por causa do Landing Sites. No relatório diário de consumo de CPU, o blog A nem aparece, porque consome menos de 1% do processamento, enquanto o blog B consome de 40% a 75% do processador.

Apenas para constar: estou pessoalmente monitorando todos os sites, e quando algum deles “atola” o servidor, eu o desabilito por alguns minutos, manualmente, até a carga voltar ao normal, e reabilito em seguida. Mas só o dono do site para saber o quanto essas paradas implicam no site, em termos de visitação ou de indexação.

Mas, como fazer para usufruir do melhor de dois mundos? Será possível dar ao visitante eventual um tratamento diferenciado do que se dá aos que estão retornando, sem abrir mão dos benefícios do cache?

Sim, há. Basta ter imaginação e algum conhecimento de JavaScript.

O funcionamento do Landing Sites se baseia em uma variável prevista no protocolo HTTP chamada referrer . Ela contém a URL da página que estava sendo exibida imediatamente antes de o visitante entrar na página atual.Cabe ao navegador informar este valor, que estará disponível tanto para o servidor de páginas quanto para o próprio navegador.

O JavaScript por sua vez disponibiliza a propriedade referrer do objeto document. Justamente, esta propriedade contém a URL completa da página que estava sendo exibida no navegador antes de a página atual ter sido carregado.

Ficaria algo semelhante ao exemplo abaixo (que não foi testado).

<div id='Anuncio728' style='display:none'>
<!-- insira aqui todo o código do adsense -->
</div>
<script>
if (document.referrer > ''){
document.getElementById('Anuncio728').style.display='block';
}
</script>

Simples, não é mesmo?

Com um pouco mais de trabalho e de criatividade daria, inclusive, para descobrir os termos pesquisados que levaram o visitante a encontrar sua página, etc. O limite quem dá é a sua criatividade e sua disposição para mexer com isso.

Conclusão: só não se beneficia do cache e o seu estupendo aumento de performance quem não quer; possibilidades existem, só que como tudo o que é bom na vida, elas dão trabalho.

Zemanta Pixie

Textos relacionados a este:

One Response to “Emule o Landing Sites com JavaScript”

  1. Manoel Nettoon 31 Aug 2008 at 18:10

    Adorei a dica, já implementei, com uma pequena alteração:

    ref = document.referer;
    if (ref!=undefined && ref!=” && ref.indexOf(’tecnocracia.com.br’)>0) {
    document.getElementById(’RefererAds’).style.display=’block’;
    }

    Isso evita que cliques que venham do meu próprio domínio gerem a exibição das ads.

    Valeu, grandão.

    [Reply]

Trackback URI | Comments RSS

Leave a Reply

É proibida a reprodução do conteúdo deste site sem prévia autorização por escrito do autor. Citações de no máximo um parágrafo acompanhadas do link para o texto original são permitidas sem necessidade de autorização escrita.