Hace unos dias Lino Uruñuela (@errixoa) publico un post sobre PR sculpting con JavaScript y Robots.txt recomiendo leerselo por que lo explica todo muy bien, y es que entre tanta duda en como reparte ahora mismo Google el Link Juice con el uso de rel=”nofollow” el uso de javascript para crear enlaces es una alternativa sencilla que siempre ha estado ahí.
Sabemos que Google puede seguir enlaces windows.open o windows.location.href pero supuestamente no sigue más pero…
Yo he podido comprobar cómo el bot de Google me ha estado siguiendo link dentro de un código similar a este:
<script type="text/javascript">
so.addVariable("xmlfile", "/swfs/myimage.php?cod=2345");
so.write("imgflash");
</script>
La url es de un fichero xml que se le pasa como una variable al flash a traves de javascript, y supuestamente el bot de google n lo deberia leer, pues bien en concreto a mi me indexo 700 urls como estas, leyéndolas incluso con la ruta dinamica, ¿curioso no?
Para solucionarlo bloquee el directorio /swfs desde el robots pero cada vez que entraba en GWT me encontraba que en errores de rastreo Google decia que existian 700 urls bloqueadas por robots.txt, vamos que venía a decirme que Google seguía sabiendo que estaban ahí y que podía rastrearlas.
La solución vino por partir la url lo más posible para que Google no pudiera rastrearla de la siguiente forma:
var dirfile="/swfs/"; var urlfile="myimage.php?cod_pro=2406";
so.addVariable("xmlfile", dirfile+urlfile);
A partir de ahi, los errores de rastreo fueron bajando de 700 hasta llegar a 0 ya que el bot de Google no encontraba la url.
Eso me da que pensar que el bot de Google puede intentar seguir todo enlace que se encuentre este dentro de javascript o no , quizás sirviéndose de si es válido o no por la respuesta del servidor (200 OK) .
Después de comentárselo a Lino me hizo la pregunta del millon ¿Pero repartira link Juice entre esos enlaces?, – ja, pues no lo se, habrá que hacer pruebas, que mejor manera..
Como decía, Lino ya lo explico todo muy bien como realizar esos links en javascript y así que no voy a decir lo mismo claro, podéis leer el de lino que le he puesto un link precioso arriba.
La cosa es que hay varias formas de hacer enlaces con javascript, y personalmente las que más me gustan a mi son las menos intrusivas de código javascript en el html.
Utilizando JQuery se pueden crear enlaces desde javascript no intrusivos y que el usuario pueda seguir viendo en la pagina un link normal, con su manita para clicar y todo.
Para ello solo tendríamos que crear un archivo externo e incluir en él las siguientes líneas: (ni que decir tiene que hace falta la librería Jquery)
$(document).ready(function() {
var a =$(".link");
$.each( a, function(){
if ($(this).attr('rel')=="external") {
$(this).wrap('<a href="http://' + $(this).attr('pag') + '"></a>');
} else {
$(this).wrap('<a href="' + $(this).attr('ruta') + $(this).attr('pag') + '"></a>');
}
});
});
Esto introducirá un enlace dentro de cualquier etiqueta span que tenga asignada la clase “.link” para que Google no sea capaz de seguir la url por si las moscas partimos la url, para enlaces internos, en el atributo “dir” indicamos la ruta, y en el atributo “pag”, indicamos la pagina.
<span class="link" dir="/ruta/" pag="pagina.php">anchor text de mi enlace</span>
Y para enlaces externos incluimos el rel=external y en el atributo “pag” indicamos la url:
<span rel="external" pag="www.yahoo.es">anchor text de mi enlace</span>
En lugar de el atributo “pag” se puede utilizar cualquier otro, da igual que no sea standar por el W3C pero yo lo pongo a modo de ejemplo, cada cual que lo haga como quiera, yo solo doy la idea.














por JDavid
12 mar 2010 en 08:26
Buen aporte Pedro, eres un pozo lleno de sabiduria.
por Antonio
12 mar 2010 en 09:54
Que crack eres Pedro!!
por DUQUE
12 mar 2010 en 10:02
Muy bueno, facil y simple.
Perfecto para realizar Link Sculpting.
por Víctor Perez
12 mar 2010 en 10:14
Que bueno Pedro, el problema es que si le pasamos el validator de W3 lo más seguro diga que no reconoce “dir” y “pag”.
Trackback
por uberVU - social comments
12 mar 2010 en 10:24
Social comments and analytics for this post…
This post was mentioned on Twitter by Pedro_Mtnez: Alternativa a Nofollow para hacer PR Sculpting http://is.gd/aenmL...
por Pedro M
12 mar 2010 en 11:51
Gracias, a todos por los comentarios de verdad, como no solia escribir no tenia esa buena sensación de que alguien te comente algo agradable por lo que has escrito, pero esto puede ser adictivo! jaja
@victor tienes razon sobre la validación del w3c, he estado viendo que los atributos validos para span son:
id
class
title
dir -> se utiliza para indicar la direccion del texto en realidad
xml-lang
Para validar el standar w3c se me ocurre que se podria utilizar el title y el dir por ejemplo, en lugar de pag y dir.
Yo puse la etiqueta span por ser la que menos dolores de cabeza da en estas cosas, aunque podria ser cualquier otra.
Saludos!
Pingback
por Alternativa a Nofollow para hacer PR Sculpting
12 mar 2010 en 14:04
[...] Alternativa a Nofollow para hacer PR Sculpting pedromg.com/alternativa-a-nofollow-para-hacer-pr-sculpting/ por pedromg hace 2 segundos [...]
por Nacho
16 mar 2010 en 16:43
La etiqueta dir sólo acepta los valores rtl ó ltr . Habría que eliminar la etiqueta dir y poner la url o ruta en la etiqueta title. ¿habría algún problema con este campo de cara a Google?
por Pedro M
16 mar 2010 en 17:25
Hola nacho en principio, el hecho de utilizar la etiqueta dir, es por partir la ruta de la para que el crawler no pueda detectar que es una url valida que puede seguir, como comentaba en el post lo mejor siempre es partir la url.
Pero no hay ningun problema con utilizar el atributo title, incluso ayudarse de el atributo id.
Habria que cambiar el codigo javascript en Jquery pero no es complicado.
Si me dices si lo quieres para enlaces externos o internos te puedo poner un ejemplo.
Un saludo!
por Nacho
17 mar 2010 en 12:08
Hola Pedro,
He modificado tu código de la siguiente manera pero me encuentro con un problemilla:
$(document).ready(function() {
var a =$(".link");
$.each( a, function(){
if ($(this).attr('rel')=="external") {
$(this).wrap('<a href="http://' + $(this).attr('title') + '" rel="nofollow"></a>');
} else {
$(this).wrap('<a href="' + $(this).attr('title') + '" rel="nofollow"></a>');
}
});
});
El caso es que como utilizo el atributo title para poner la URL de destino al pasar el ratón por encima del enlace aparece en el tooltip la página de destino lo cual es bastante engorroso sobre todo si es una url larga. Creo que una opción sería utilizar la etiqueta ID pero como sólo puede haber un ID ¿habría que modificar tu código e incluir todos los IDs o habría alguna manera de automatizarlo? Gracias
por Pedro M
19 mar 2010 en 18:00
Hola Nacho, perdona pero esta semana he ido un poco de cabeza, te cuento.
Hay forma de solucionar lo que me dices, aunque tal y como has puesto el código, no está la url partida, y habría que ver si el bot de Google sigue esa url.
Otra cosa que no te hace falta es el rel=”nofollow”, ya que el enlace se inserta desde el DOM y no aparece en el código así que ningún crawler puede seguirlo.
Lo que se podría hacer es lo siguiente: (te lo he resumido porque veo que no utilizas la diferenciación entre enlaces internos y externos.
$(document).ready(function() {
var a =$(".link");
var titulo;
$.each( a, function(){
titulo=$(this).html();
$(this).wrap('<a href="' + $(this).attr('title') + '" ></a>');
$(this).attr('title',titulo);
});
});
De esta forma lo que haces es una vez insertado dentro de la etiqueta span, coges el “anchor text” para utilizarlo como title, y así no te aparecerá la ruta al pasar el ratón por encima.
Espero que te sirva, un saludo!
por Javier Lorente
09 jun 2010 en 09:59
Existe otra forma mucho más segura de hacer link sculpting, enlazar únicamente las secciones importantes desde la home y lo mismo para todas las demás secciones…
por Pedro M
20 jun 2010 en 22:15
Javi perdona que no te haya puesto el comentario antes pero es que desde que vine a Barcelona no he tenido tiempo ni de mirar el blog,
lo que tú dices de enlazar solo las secciones importantes desde la home es en teoria lo que se deberia hacer, pero entonces por intentar repartir el jugo de trushRank hariamos al usuario hacer más de 3 clicks en llegar a cada seccón, mi post es solo eso una alternativa para que el usuario no tenga que hacer muchos clicks, y Google no pueda seguir esos links ni contabilizarlos.
Gracias por el comentario gatuno ;) saludos!
Pingback
por Mi alternativa para hacer PR Sculpting | JQuery
24 jun 2010 en 23:31
[...] un tiempo, cuando leí el post de mi colega y amigo Pedro Martínez (Consultor SEO y programador) sobre una Alternativa al nofollow para realizar PR sculpting decidí escribir como realizo yo esta [...]
por alejandro
06 jul 2010 en 17:09
Excelente idea, aunque habría que darle un par de vueltas más no sólo para cumplir los estándares web del W3C sino para cumplir las pautas de accesibilidad web :)
Con el W3C no habría ningún problema, pero con WAI-AAA ya es otra historia, ya que sin JS no se podrían seguir los enlaces en los que usemos esta técnica o similar…
Un saludo,
Alejandro Arco