SEO 2009: lo más relevante del año

December 29th, 2009

Se acaba el año y es el momento de hacer un repaso a lo acontecido en 2009 entorno al posicionamiento en buscadores. Haciendo memoria, entre los cambios y novedades que ha habido durante este año, estos son los que yo destacaría:

Canonical tag: la etiqueta canonical, adoptada por todos los buscadores para resolver los problemas con el contenido duplicado. Recientemente disponible también entre dominios diferentes.

Lanzamiento de Bing: el nuevo buscador de Microsoft, nuevo playground para los SEO aunque su cuota de mercado en las búsquedas sea muy inferior a la de Google.

Cambio en el tratamiento del nofollow: lo que empezo siendo una insinuación más tarde fue confirmado: Google ahora trata de forma muy diferente los nofollow, quitándole gran valor al uso de este atributo en los enlaces y cambiando radicalmente el link sculpting.

SEO 2009

Cambios en los SERP de Google: múltiples cambios en los resultados de búsqueda de Google que influyen en el CTR y la visibilidad, como han sido los mini sitelinks, rich snippets, resultados indentados dobles, breadcrumbs

Aclaraciones varias: varias aclaraciones de temas que los SEO ya sospechábamos pero sobre los que Google no se había pronunciado hasta ahora, como que la validación W3C no afecta al posicionamiento, que el keywords meta tag no influye tampoco en ello o que los links en footer tienen menos valor que dentro del contenido.

Búsqueda personalizada para todos: que Google empiece a ofrecer resultados de búsqueda personalizados para todos los usuarios y no solo los logeados, con consecuencias al menos inquietantes.

SEO , ,

Consejos de optimización de MySQL para desarrolladores

December 20th, 2009

Desde NETTUTS nos ofrecen varias técnicas de optimización para MySQL, con el objetivo de mejorar el rendimiento de nuestras aplicaciones web. Son consejos dirigidos a desarrolladores, dejando a un lado la optimización a nivel de sistemas:

1. Optimiza tus consultas para la query cache: tratar de no usar funciones no determinísticas como CURDATE, NOW o RAND, con las que MySQL decide desactivar la cache.

2. Usa el comando EXPLAIN sobre las consultas: para verificar si se usan correctamente los índices que hayas definido. Uso de explain.

3. Usa LIMIT 1 si solo quieres un registro: para que el motor de la base de datos deje de analizar registros en cuanto haya encontrado un registro que cumpla con las condiciones.

4. Indexa los campos de búsqueda: como norma general, crea un indice sobre los campos usados en el where de las consultas. Uso de full-text search.

5. Indexa y usa columnas del mismo tipo en los JOINs: es recomendable que tambien el character encoding sea exactamente el mismo.

6. No uses ORDER BY RAND(): penaliza bastante el rendimiento por lo que es recomendable usar alternativas, como hacer la ordenación a nivel de PHP.

7. Evita usar SELECT *: mejor elegir solo los campos que necesites.

8. Ten casi siempre un campo ID: primary key, auto_increment, int y unsigned. MySQL usa los primary keys en operaciones internas, por lo que es recomendable que estos se traten de un tipo de dato de tratamiento rápido.

9. Usa ENUM antes que VARCHAR: el tipo de dato ENUM es rápido y compacto, al almacenarse internamente como un TINYINT. Recomendable cuando el campo de texto solo puede coger determinados valores como por ejemplo “activo” e “inactivo”. Uso de Enum.

10. Obtén recomendaciones con PROCEDURE ANALYSE: con este comando MySQL analiza la estructura y contenido de una tabla y da recomendaciones sobre su definición. Uso de procedure analyse.

11. Intenta no definir campos que acepten el valor NULL: los NULL requieren espacio adicional y puede añadir complejidad en las comparaciones. MySQL comenta lo siguiente:

NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.

12. Considera usar unbuffered queries: en las consultas que devuelven muchos registros, puede ahorrar memoria, pudiendo empezar a trabajar sobre el resultset a partir de obtener el primer registro. Uso de unbuffered queries. MySQL lo explica así:

mysql_unbuffered_query() sends the SQL query query to MySQL without automatically fetching and buffering the result rows as mysql_query() does. This saves a considerable amount of memory with SQL queries that produce large result sets, and you can start working on the result set immediately after the first row has been retrieved as you don’t have to wait until the complete SQL query has been performed.

13. Guarda las direcciones IP como UNSIGNED INT: resulta más eficiente que hacerlo como VARCHAR y luego para hacer la conversion se pueden usar las funciones INET_ATON y INET_NTOA de MySQL o up2long y long2ip de PHP.

14.Las tablas FIXED-LENGTH (STATIC) son más rápidas: son aquellas que no tienen campos de tipo VARCHAR, TEXT o BLOB, de longitud no fija.

15. Pagina los INSERTs y UPDATEs grandes: si tienes que actualizar viente mil registros de una vez, mejor dividirlo se forma que se hagan de mil en mil, por ejemplo.

16. Elige el motor de almacenamiento adecuado: entre MyISAM e InnoDB ,según el uso de la base de datos que haga la aplicación.

17. Usa un Object Relational Mapper: como puede ser Doctrine para PHP, con el que se puede obtener ciertos beneficios en cuanto a rendimiento.

18. Cuidado con las conexiones persistentes: pueden dar problemas con la memoria y el límite de conexiones. Uso de mysql_pconnect.

Fuente: Top 20+ MySQL Best Practices

Desarrollo web ,

Seguimiento del tráfico desde Google Images

December 17th, 2009

Por defecto, Google Analytics clasifica Google Images como una fuente de tráfico independiente a los motores de búsqueda y por lo tanto, no es posible saber las palabras clave de entrada desde la búsqueda de imágenes. Para sites donde el volumen proveniente de Google Images es importante, resulta una información muy relevante.

Para solucionarlo, Joost de Valk ideó en su día un script para forzar a Google Analytics para que trate Google Images como un motor de búsqueda cualquiera:

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("YOUR-GA-ID");
var refferer = document.referrer;
if (refferer.search(/images.google/) != -1 && refferer.search(/prev/) != -1) {
var regex = new RegExp("images.google.([^\/]+).*&prev=([^&]+)”);
var match = regex.exec(refferer);
pageTracker._setReferrerOverride(”http://images.google.” + match[1] + unescape(match[2]));
}
pageTracker._trackPageview();
} catch(err) {}
</script>

Personalmente no lo he probado..

Fuente: Google Analytics: How to Track Image Referrals

SEO ,

Penalización masiva de Google Pagerank diciembre 2009

December 15th, 2009

Desde Search Engine Roundtable comentan como estos días Google ha aplicado una devaluación de PR a gran cantidad de sites, supuestamente relacionados con la compra o venta de enlaces.

Hacía tiempo que no aplicaban de forma masiva este tipo de penalización, pero lo que está claro es que Google sigue mostrándose implacable con el tema.

Se puede encontrar más información sobre ello en los foros de Digital Point. Si habéis padecido recientemente una bajada de PR en alguno de vuestros sites, puede ser esta la razón..

Fuente: Mass Google Toolbar PageRank Penalty of December 2009???

SEO ,

Estrategias de link building para 2010 desde SEOMOZ

December 15th, 2009

Acaba de tener lugar en SEOMOZ un webinar acerca del link building de cara al año que viene. Ha sido de un nivel bastante básico pero con detalles interesantes, donde además han dado la oportunidad a los asistentes de plantear sus dudas a Rand Fishkin.

SEOMOZ Link building for 2010 webinarSEOMOZ Link building for 2010 webinar

Dejo disponible la presentación para descargar e informo que han habilitado un espacio, solo accesible para usuarios PRO, donde en breve subirán el video y demás información: SEOMOZ Webinar Link Building Strategies.

Actualización 28 diciembre 2009: interesante el último WhiteBoard Friday del año, donde ofrecen 12 estrategias de linking.

SEO , ,

Comunidades SEO de pago

December 12th, 2009

Nada habitual por aquí pero sí en USA, son las comunidades SEO que ofrecen sus servicios a cambio de pagar una suscripción mensual. Algunas se limitan a ofrecer consejo por parte de sus expertos, mientras otras van más allá, desarrollando herramientas que pueden resultar muy interesantes.

En TopRankBlog han hecho recientemente una encuesta entre sus lectores, preguntando cual les parecía la mejor entre las más conocidas, que son estas:

  • SEOmoz Pro: Liderada por Rand Fishkin, ofrece herramientas y consejo por parte de sus expertos. Servicio Pro por 79$/mes, Pro Plus 129$/mes, Pro Elite 229$/mes. Comunidad activa desde febrero de 2007.
  • SEOmoz ProSEOmoz Pro

  • SEO Book Training: Con Aaron Wall como CEO, ofrece más de 100 módulos de entrenamiento, herramientas, videos y demás. Por 150$/mes. Comunidad activa desde febrero de 2008.
  • SEO Book TrainingSEO Book Training

  • SEO Dojo: Foros, entrenamiento, sesiones de chat, guías y están planeando webinars. Por 30$/mes o 250$ un año. Comunidad activa desde octubre de 2009.
  • SEO DojoSEO Dojo

  • WebmasterWorld Supporters: foro privado donde expertos responden a preguntas específicas. 89$ por seis meses o 149$ un año. Comunidad activa desde antes de 2002.
  • WebmasterWorld SupportersWebmasterWorld Supporters

La más votada ha sido SEO Dojo, que tiene cierta fama de ofrecer consejos SEO más avanzados que el resto. Estos han sido los resultados:

SEO Dojo (37%, 82 votos)
SEOmoz Pro (24%, 53 votos)
SEO Book Training (21%, 46 votos)
WebmasterWorld Supporters (18%, 39 votos)

¿Tienes alguna experiencia con estas u otras comunidades?

SEO ,

Golpe al SEO: búsqueda personalizada por defecto para todos

December 5th, 2009

Google acaba de anunciar en su blog oficial que va a extender a todos los usuarios la búsqueda personalizada, no solo para los usuarios logeados como hasta ahora. Para ello, se basará en el histórico guardado a través de la cookie, de manera que tendrá en cuenta los clics pasados a la hora de mostrar resultados actuales.

Por ejemplo, si busco a menudo recetas de cocina y suelo hacer clic en tusrecetas.com, eso provocará que en futuras búsquedas tusrecetas.com salga por encima de otras webs en mis resultados.

Desactivar el historial de búsqueda de GoogleDesactivar el historial de búsqueda de Google

La opción estará activada por defecto para todos. Ofrecen una forma de desactivarlo pero, por supuesto, la gran mayoría de los usuarios no lo va a hacer.

Dejando a un lado un tema tan importante como la pérdida de privacidad.. ¿acaba de cambiar el SEO de forma tan relevante como parece?

Más información:
Personalized Search Now Default – SEO and Privacy forever changed
Google Now Personalizes Everyone’s Search Results

SEO

Gráficos del long tail aplicado al SEO

December 3rd, 2009

Dos gráficos, basados en datos reales, para ilustrar la teoría del long tail aplicada al posicionamiento en buscadores. Creo que se explican por sí mismos:

Palabras clave populares frente a tráfico por long tailPalabras clave populares frente a tráfico por long tail

Demanda de búsquedasDemanda de búsquedas

Se pueden ver en alta resolución haciendo clic sobre ellos.

Fuente: Illustrating the long tail

SEO ,