Trabe ya no escribe aquí. Puedes encontrarnos en nuestra publicación en Medium: medium.com/trabe.

4Trabes Historias de una empresa en 100 metros cuadrados

El blog de Trabe Soluciones

ActiveRecord, la migration y reset_column_information

| | Comentarios

Este post tiene dos finalidades: apuntar un detalle de Rails para que nunca más se me olvide y quejarme(en vano) ya que, a veces, Rails tiene cosas que me resulta dificil entender como es el caso que nos ocupa. Veamos el siguiente fragmento de una inocente migration.

1
2
3
4
5
6
7
8
def self.up
  add_column 'users', 'energy', :integer, :null => false, :default => 0
  signup_energy = 20

  User.find(:all).each do |u|
    u.update_attribute('energy', signup_energy)
  end
end

Parece lógico pensar que la energía de los usuarios al finalizar la migration será 20. Craso error. La nergía es 0, el valor por defecto. La razón es que la clase User está inicializada antes de la ejecución de add_column y por tanto en el momento de actualizar el atributo con update_attribute no existe un campo energy. SI hubiesemos escrito algo como…

1
2
3
4
User.find(:all).each do |u|
  u.energy =  signup_energy
  u.save
end

…obtendríamos una simpatica excepción. No hay problema, miramos la documentación de Migration y nos encontramos con un apartado que habla de esto y nos indica que debemos invocar el método reset_column_information para poder actualizar los accessors de las diferentes propiedades de la clase.

1
2
User.reset_column_information
User.find(:all).each { |u|  u.update_attribute('energy', signup_energy) }

Todo esto está muy bien, pero a mi me asalta una duda. Si esto es así, por qué demonios no se invoca esa función cuando se modifica una columna de una tabla de forma transparente al programador.

En fin. Es lo que hay.

Estudios de Posicionamiento, marketing, Google y SEO

| | Comentarios

Gracias al clipping de Gmail he llegado a este artículo. El título es interesante, y como persona participante en proyectos de optimización de sitios web me asaltó la curiosidad. Me descargué el informe y lo leí. No estoy de acuerdo con muchas cosas de las que se dicen, así que voy a permitirme utilizar este informe como punto de partida de lo que, si el tiempo me lo permite, serán una serie de posts sobre SEO, SEM, optimización de contenidos y generación de tráfico hacia un sitio determinado.

Antes de nada, vamos a dejar clara la diferencia entre SEO y SEM, porque muchas veces son términos que se usan intencionadamente de forma equivalente, aún teniendo unas implicaciones muy diferentes:

  • SEO, Search Engine Optimization, Optimización para Buscadores: es el arte, la ciencia y las heurísticas necesarias para conseguir que una página obtenga los mejores resultados cuando se buscan términos relevantes en un buscador determinado. La optimización para buscadores se consigue actuando a varios niveles: estructura de enlaces adecuada, títulos relevantes, utilización de estándares, optimización de los contenidos, correcta disposición de cabeceras, utilización de la tecnología adecuada,…básicamente es un proceso en tres fases que incluye:
    1. crear una infraestructura que no ponga zancadillas a los buscadores
    2. tener buenos contenidos, relevantes para las búsquedas que se pretendan optimizar
    3. potenciar la importancia de la página en el contexto global, es decir, conseguir que el sitio que queremos optimizar sea enlazado desde otras páginas, cuanto más importantes mejor.
  • SEM, Search Engine Marketing, Márketing en Buscadores: consiste en utilizar los servicios de pago que ofrecen los distintos buscadores para canalizar tráfico hacia una página. El servicio más utilizado es Google Adwords. Si son bien usados, estos servicios garantizan unos buenos niveles de tráfico bastante dirigido a cambio de un pago por visita.

Queda claro que no es lo mismo una cosa que la otra, y tampoco es lo mismo para los clientes potenciales encontrar una información en Google como primer resultado de una búsqueda que encontrarla como primer anuncio de una búsqueda.

Optimización de los títulos

En este apartado estamos de acuerdo con el estudio, es un parámetro inprescindible y vital a nivel de posicionamiento. Muchas páginas de grandes corporaciones todavía no tienen optimizados sus títulos. Obviamente poner Bienvenido a la página de MiEmpresa de título para una página no es una buena idea. Ya que tenemos la posibilidad de ayudar a Google a saber sobre qué trata nuestra página, aprovechémosla. Mucha mejor idea utilizar algo como “MiEmpresa: fabricación de neveras y frigoríficos”. Obviamente si ponemos ese título a una página que no hable de neveras y frigoríficos, estaremos perdiendo el tiempo. El título ha de ser semántico, lo más corto posible siempre que transmita el mensaje que nos interesa y rico en palabras clave de interés presentes en el resto del documento.

Presencia de Metatags

En este apartado no estoy de acuerdo con el estudio. Se comenta que si bien la importancia es decreciente, siguen siendo muy importantes. En mi opinión y experiencia los metatags cada vez importan menos a nivel de posicionamiento, llegando a que el metatag de keywords a día de hoy vale para poco más que detectar páginas sobreoptimizadas sin mucho criterio.

Sin embargo el metatag de description si tiene un sentido muy claro: Google y otros buscadores utilizan su contenido para mostrar los resúmenes de cada página en las búsquedas, por lo que es necesario redactar un buen contenido para este tag, tratando incluso de generar contenidos únicos para cada página de nuestro sitio, adaptados a los contenidos de cada una de ellas. Es importante que estas descripciones sean naturales, no un conjunto de palabras clave separadas por comas.

Dado que el artículo al que nos referimos sigue con consideraciones externas a la página, vamos a apartarnos del enfoque del mismo para hacer una serie de comentarios sobre la importancia de las urls y las rutas de nuestra página, pero como ese es un tema bastante amplio e interesante, lo reservamos para el próximo post.

Generar Sitemaps en tiempo record

| | Comentarios

En alguna ocasión hemos publicado algún post sobre automatización de la genaración de sitemaps en escenarios concretos o lo que es lo mismo, que nuestras páginas hagan sus deberes ellas solitas. Pero hay muchas ocasiones en las que esto no es adecuado, generalmente porque se trata de presencias web estáticas en las que la estructura no cambia, o cambia en momentos muy concretos y localizados.

Para estos casos, existen multitud de herramientas que nos ahorrarán el tedioso proceso de escribir un maravilloso sitemap en el notepad. Una que funciona bastante decentemente es Gsitemap.

El proceso es tan sencillo como introducir la url base de la página y lanzar el proceso de spider. En cuanto termine, tendremos un borrador de sitemap, que deberemos adaptar a nuestras necesidades particulares, pero habremos ahorrado ya bastante tiempo. El programa no es lo que se dice muy intuitivo, pero funciona.

Una vez generado, solo queda informar a google de q tenemos sitemap y hacer el proceso de verificación de que el dominio es nuestro, todo esto, como siempre a través de Google Webmaster Tools