Posts con la categoría ‘Tutoriales’

Montar SVN en tu proyecto web

Escrito en Tutoriales

Subversion (SVN) es, junto a GIT el líder en control de versiones de software libre. Subversion es una mejora del antiguo sistema llamado CVS que tenía sus limitaciones; aunque aún se sigue utilizando en multitud de proyectos creo que es mucha mejor opción Subversion.

Subversion logo

En esta entrada no voy a hablaros de montar un servidor SVN, principalmente porque es una tarea compleja que está destinada más bien a administradores de sistemas. Os voy a hablar de como configurar vuestro proyecto para beneficiarse del funcionamiento de un servidor existente. Si lo que necesitas es crear tú mismo un servidor para estos fines, te recomendaría mejor el libro de O’Reilly de SVN.

Para proyectos en los que trabaje más de una persona creo que es una herramienta que una vez se conoce es poco menos que imprescindible. Incluso si trabajamos solos puede servirnos de gran ayuda para no perder ninguno de los cambios que hagamos y poder tener un histórico permanente del proceso de desarrollo.

Antes de adentrarme a explicar la configuración, diré básicamente en qué puede ayudarnos este sistema:

  • Cada cambio que se envíe al servidor será guardado sin sobreescritura. Si nos cargamos sin querer un archivo podremos echar mano del SVN para recuperarlo.
  • Posibilidad de mezclar dos archivos para ver las diferencias respecto a versiones. Podemos ver, por ejemplo, los cambios que hizo algún compañero en cada línea para comprender como han cambiado las cosas.
  • Se añade un comentario a cada subida de archivos al servidor que hagamos. Esto ayuda a saber para qué se tocó ese fichero.
  • Todos los cambios de los demás se podrán descargar de una vez, solamente aquellos archivos que tengan cambios. A veces, sobre todo en proyectos de programación web, se tocan archivos diversos de carpetas diferentes y en vez de tener que explorar y mirar las fechas de modificación, con SVN hacer un par de clics hará que ya lo tengamos todo más reciente.
  • Control del trabajo de cada uno. Para empresas puede ser muy útil para saber quienes hacen tal cosa. Conocer los porcentajes de código que escribe cada empleado, etc.
  • En caso de tratarse de un proyecto de software libre tener un control de versiones es imprescindible, puesto que necesitamos un lugar en el que la gente que quiera aportar cosas al proyecto pueda conectarse. De cualquier otra manera sería un caos.

Hasta aquí la enumeración de algunas de las ventajas, estoy seguro que me he saltado decenas de ellas.

Conseguir servidor:

Bueno, pues lo primero que necesitamos para empezar es un hosting de Subversion. Hostings hay muchos, aunque la mayoría son de pago y hay que saber encontrar el óptimo. Si tu proyecto es de software libre no debes preocuparte lo más mínimo de tener que pagar ni nada, puesto que para apoyar el Software Libre hay hostings gratuitos con capacidades ilimitadas para sus usuarios.

Una comparativa genial de los distintos hostings de Subversion que hay se puede encontrar en http://www.svnhostingcomparison.com/

Para software libre está claro que las dos opciones idóneas deben ser Google Code y SourceForge.net. Hay más que ofrecen capacidades ilimitadas, pero creo que esos están por delante.

Si nuestro proyecto es de software propietario entonces tendremos que ajustarnos un poco más, tendremos que escoger entre pagar para tener algo holgado o encontrar un hosting que permita privacidad en los proyectos y una cantidad de almacenamiento y usuarios aceptable.

Sin duda alguna, la mejor opción gratuita para software propietario es Assembla. Brinda de manera gratuita 2GB de almacenamiento, un número ilimitado de programadores e incluso SSL; sin contar que la velocidad de subida y bajada es super apropiada.

Hay más opciones, aunque la siguiente mejor ofrece 1/4 del almacenamiento que da Assembla, por lo que no merecen la pena. Si queremos pagar ya solo depende de lo que necesitemos y lo que podamos pagar, hay un punto en el que compensa tener un servidor dedicado tanto propio como alquilado para que se encargue únicamente del control de versiones.

Montar servidor:

Para montar el servidor habrá que seguir los pasos por los que nos guíe el sitio web del servicio web escogido hasta que finalmente obtendremos una dirección URL tal que así:

https://subversion.assembla.com/svn/sortea2

Hay que tenerla muy en cuenta puesto que a esta URL es a la que nos conectaremos. El usuario y la contraseña para conectarse será exactamente el mismo que el que tuvimos que usar para loguearnos en la página web.

Programa cliente:

A continuación tendremos que usar nuestro programa de lado del cliente para conectarnos; esto es, un programa en nuestro ordenador al que le daremos URL, password y usuario y estaremos conectados.

Para Windows el que se utiliza casi siempre es el Tortoise SVN, que es un cliente de escritorio de software libre también con una interfaz inmejorable. Una vez lo tengamos instalado este programa lo que hace es añadir unas opciones a los menús contextuales del explorador de Windows relativas a repositorios SVN.

Una nota importante a tener en cuenta para pasos posteriores es que si utilizamos Dreamweaver nos interesará descargar la versión de 32 bits de Tortoise si luego queremos conectar ambos sistemas. Se puede tener instalada la versión de 32 y de 64 bits al mismo tiempo de cualquier manera, pero conviene tenerlo en cuenta.

Conectarse al repositorio:

La primera vez que queramos establecer conexión tendremos que dar click derecho sobre la carpeta y seleccionar SVN Checkout…, en el cuadro que nos saldrá pegaremos la URL del repositorio que nos proporcionó el sistema de hosting y a continuación se nos pedirá un par de usuario/contraseña. Si le damos a «recordar» no volverá a preguntar ni pedir autorización.

Ejemplo de Checkout con Tortoise

Una vez aquí, si todo ha ido correctamente lo que tendremos que hacer es subir los archivos al repositorio. Para ello haremos click derecho sobre la carpeta y le daremos a «SVN Commit». De ahí seleccionaremos archivos que no estén versionados («show unversioned files»), seleccionaremos los que queramos y se subirán uno a uno al hosting de SVN.

Si por el contrario nuestro hosting ya estaba montado anteriormente y lo que queremos es descargar las cosas para tener las copias en local, en vez de «Commit» seleccionaremos «SVN Update» y nos descargaremos todo lo que no tengamos descargado.

Integrar con Dreamweaver:

Si utilizas Adobe Dreamweaver como entorno de desarrollo quizás lo que más te interese es tener las posibilidades de envío y recepción de archivos en la misma ventana del programa en vez de estar intercambiando con el explorador de windows para hacer las operaciones.

Dreamweaver desde la versión CS4 incluía un cliente de SVN integrado, el problema viene de que si tenemos un repositorio creado con Tortoise y luego los usamos con el cliente ese de DW no nos servirá, porque tiene una incompatibilidad documentada que Adobe contempla en su sitio web ofreciendonos un parche. Dicho parche está escrito en Python, por lo que si no tenemos instalado Python (90% de los mortales) no funcionará, además hay que tener en cuenta que la versión de Python deberá ser la de 32 bits, porque si no tampoco se iba a poder instalar el parche, debido a que DW dirá que no encuentra una instalación de Python válida.

En definitiva, es mejor olvidarse de todos estos escollos y simplemente usar una extensión para Dreamweaver llamada SubWeaver que actúa como intermediario entre Dreameaver y Tortoise. Ya es cuestión de usar los menús contextuales que nos brinda la extensión y estaremos 100% integrados con Tortoise desde Dreamweaver.


Escrito por .

10 consejos para optimizar MySQL

Escrito en Tutoriales

En un proyecto web medianamente ambicioso llega siempre el momento en que la parte «sagrada» de la aplicación es la Base de Datos. El problema reside cuando las tablas de nuestra Base de Datos empiezan a tener más de 10.000 registros. A partir de ese momento debemos pensar de diferente manera: los accesos deben optimizarse, el sistema de búsqueda ya es demasiado lento y a veces llega incluso al límite de tiempo de ejecución, ya no se puede hacer un ALTER TABLE sin tener que tener la tabla bloqueada unos segundos, etc. Cuando nos empezamos a encontrar con estos problemas es cuando no hemos hecho una predicción suficientemente buena y debemos actuar rápidamente para remediarlo.

Optimizar MySQL es una tarea que debemos tener en mente desde el minuto cero, aunque sin obsesionarse. Siempre es mejor avanzar que quedarse atascado.

A continuación os mostraré 10 consejos que pueden acelerar los accesos a vuestras tablas:

  1. Usa índices:

    Un índice es un sistema informático que permite al gestor de base de datos (MySQL) acceder a la información (registros de una tabla) de una forma más directa que si tuviera que ir dato a dato comprobando si cumple las condiciones.

    Los campos que solamos incluir dentro del «WHERE» de las consultas más comunes deben estar indexadas o bien controladas.

    Los accesos vía PRIMARY KEY son, con diferencia los más veloces. De hecho, cuando utilizamos el motor InnoDB, los datos se encuentran físicamente ordenados por el valor de la clave primaria. Esto hace que acceder a los datos sea trivial.

    Si sabemos que un determinado registro no va a poderse repetir, debemos incluirle un índice UNIQUE y si vamos a realizar búsquedas sobre un campo de fecha por ejemplo, le podemos añadir un INDEX simple.

    Siempre que indexamos un campo disminuimos la velocidad de escritura en la tabla porque cada vez que la manipulamos MySQL tiene que asegurarse de actualizar el índice. Hay que encontrar el equilibrio que permita a la aplicación funcionar rápidamente. Si una tabla recibe muchas modificaciones quizás haya que sacrificar algo de velocidad en las consultas.

    Otro dato a tener en cuenta es que MySQL utiliza mayoritariamente índices B-Tree, en el cual se va creando un árbol con las posibles combinaciones. Por ejemplo, en un índice compuesto por los campos (nombre, apellido1, apellido2) será agrupado primero por nombre, luego por apellido1 y luego por apellido2. Una consulta que busque por apellido2 únicamente no utilizaría el índice. En cambio, una consulta por nombre sería rápida. Una consulta consultando por nombre, apellido1 y apellido2 sería bastante óptima también porque podríamos recorrer el índice de arriba a abajo para encontrar el dato.

  2. Utilización de campos binarios

    Los tipos de dato binario son BINARY, VARBINARY y BLOB que van en consonancia con CHAR, VARCHAR y TEXT. Si el texto que vas a almacenar no va a tener una codificación como UTF-8 es mucho más conveniente utilizar campos binarios, puesto que ocupan mucho menos espacio y las comparaciones se hacen como datos numéricos internamente.

    Por ejemplo, campos que guarden cadenas codificadas como MD5, campos de permalink (URL amigable para buscadores), nombres de usuario que sepamos que no permiten caracteres extraños, etc. pueden ser puestos como binarios. Por cada unidad de información utilizaremos menos bytes y por lo tanto el motor de almacenamiento de MySQL podrá manejar los datos con más soltura.

  3. Utiliza UNSIGNED

    Si al crear una tabla, sabes que un campo solamente contendrá valores numéricos positivos, utiliza UNSIGNED. Esto aumenta al doble la capacidad máxima de los campos sin alterar el número de bytes necesarios para almacenar cada dato. Por ejemplo, todos los campos que utilicen un AUTO_INCREMENT deben utilizarlo, puesto que de la otra manera tendremos un rango enorme de números que jamás utilizaremos.

    En aplicaciones que manejen gran cantidad de datos es posible que un campo INT se nos quede corto para almacenar un AUTO_INCREMENT. Si estuviera UNSIGNED habríamos tenido un campo con el doble de vida útil.

  4. Guarda información redundante

    Con esto nos estaríamos saltando la normalización de las tablas. Pero la realidad es que en las aplicaciones web lo más común es que por cada inserción de datos tengamos muchas más consultas de datos. Lo habitual es que la información cambie cada cierto tiempo pero que sea consultada a todas horas.

    Puede ser útil tener campos calculados. Por ejemplo, total de comentarios en una entrada, número de opiniones sobre un producto, ID del último comentario, etc.  Cada vez que se realice una modificación en esas tablas tendremos que hacer más trabajo, pero normalmente compensa.

  5. No uses tipos de datos gigantes

    Me atrevería a decir que el 99% de las personas jamás necesitarán un campo LONGTEXT a no ser que se trate de un gestor de contenidos o algo por el estilo; incluso habrá muy pocas que necesiten un campo BIGINT para uso normal. Un BIGINT ocupa cada número 8 bytes y puede almacenar un número de un 9 seguido de 18 ceros (aproximadamente). El campo LONGTEXT almacena hasta 4 billones y pico de caracteres, que pueden ser mucho más de 50 páginas de Word por ejemplo.

    Los tipos de dato exageradamente grandes ocupan más espacio en disco y rara vez se utilizan por completo. Es por eso que es más recomendable usar los campos adecuados sin pasarse demasiado.

  6. Trata de usar los simplificadores del lenguaje

    MySQL proporciona algunas maneras que ayudan a hacer las consultas más cortas y más fáciles de entender. Estos métodos no solo nos ayudan a nosotros, sino que internamente son mucho más eficientes. Por ejemplo, usar la expresion " WHERE sorteo = 1 OR sorteo = 2 OR sorteo = 5" es mucho menos eficiente que la siguiente: " WHERE sorteo IN(1,2,5)".

    Algunas de estas expresiones pueden ser BETWEEN, IN, LEAST, GREATEST o INTERVAL.

    Ten en cuenta además de que cuanto más cortas sean las consultas, menos bytes ocuparán y menos tardará el servidor de MySQL en recibirlas. Sobre todo en conexiones remotas.

  7. Intenta unificar consultas

    Intenta siempre hacer una consulta cuando normalmente lo harías con varias. INSERT puede insertar varios registros al mismo tiempo si se separan los «VALUES» por paréntesis y comas, por ejemplo: INSERT INTO sorteo VALUES (1,2, 3),(4,5,6),(7,8,9).

    DELETE múltiples se pueden construir en vez de en bucle insertando los valores a borrar dentro de un IN() de MySQL.

    También es posible modificar varios registros desde una consulta. Para ello tendremos que utilizar una sintaxis un tanto peculiar, pero que puede ser útil. Podéis ver esa sintaxis en el siguiente enlace: http://stackoverflow.com/a/84111

    Es útil sobre todo para modificaciones masivas a través de un script.  Por ejemplo, un script que descargue imágenes para cada producto y luego actualice el campo «imagen» de la tabla «producto». Ir uno a uno modificando cada registro sería muy lento e intensivo. Podríamos agrupar las modificaciones de 10 en 10 registros para aliviar la carga de la base de datos.

    Cada vez que mandamos una consulta tenemos que contar con el tiempo de ping, que es lo que tarda el cliente de mysql en «llegar» al servidor. Si tenemos un ping de 10ms ninguna consulta tardará menos de 10ms porque es el tiempo mínimo. Si unificamos 100 consultas en una, esos 10ms solo los tenemos que perder una vez.

  8. Evita operaciones matemáticas

    No es buena idea hacer cálculos complejos en una SELECT. Siempre que sea posible hay que traer los datos al lenguaje que utilices (PHP por ejemplo) y hacer estos cálculos. Por ejemplo, realizar redondeos, medias, divisiones y demás puede resultar problemático y hay que tener siempre en mente que cuanto menos trabajo haga la Base de Datos, más rápida será.

    Normalmente las únicas operaciones matemáticas que compensan son las asociadas a un GROUP BY.

  9. Utiliza MyISAM si es posible

    Un denominador común en las aplicaciones web es que casi siempre se hacen más selects que inserts/updates/deletes. Si este es nuestro caso, podemos renunciar a las posibilidades relacionales que permite InnoDB para tener un gestor más rápido en las consultas.

    Si recibimos muchas consultas de manipulación de datos MyISAM es insostenible y deja corruptas las tablas con frecuencia. Debemos encontrar el equilibrio. Para un blog MyISAM es ideal. Para un bróker online en tiempo real no lo es.

  10. Utiliza el PROCEDURE ANALYSE() de MySQL

    Esta es una característica muy desconocida de MySQL pero de gran utilidad. Se añade tras una consulta y lo que hace es procesarla y devolver estadísticas sobre cada campo seleccionado. Dice máximos, mínimos, medias y lo más importante, propone el tipo de campo óptimo para cada columna.

    Pruébalo tú mismo, ejecuta SELECT * FROM mytabla PROCEDURE ANALYSE(); y comprueba los resultados.

    Ten en cuenta que a nada que haya menos de 100 posibles valores para un campo ya va a proponerte que utilices un ENUM. No siempre esto será aplicable a tu aplicación.

    Este procedimiento es bastante desconocido pero es muy útil sobre todo cuando tenemos que empezar a dar soporte a tablas creadas por otras personas. Es posible que así identifiquemos campos que en realidad no se usan, tipos de datos que son erróneos, etc.

En definitiva todos los puntos se refieren a que hay que tener control total de los datos que tenemos almacenados, siempre teniendo en cuenta las limitaciones y tratando de mantener una integridad de los datos.

Fuentes: MySQL Certification Study Guide, Building Scalabe Web Sites (The Flickr way).


Etiquetas: , , ,
Escrito por .

Bases legales de un sorteo. Cómo deben ser

Escrito en Sorteos, Tutoriales

En este artículo trataremos de explicaros cómo debe ser el documento con las bases legales de un sorteo, para ello utilizaremos un ejemplo práctico en un sorteo ficticio:


Sortea2.com S.A.

La empresa Sortea2.com, con domicilio en C/Inexistente sin nº en Madrid, España organiza una acción promocional con el sistema de sorteo aleatorio dirigida a personas residentes en territorio español, mayores de edad.

Objetivo

Sortea2.com organiza este sorteo con el objetivo de incentivar a los usuarios a registrarse en la web de la empresa.

Periodo de la promoción

Esta acción promocional estará activa para los usuarios que se registren en nuestra web entre los días 24 de marzo y 31 de abril de 2009. El sorteo se realizará ante notario el 4 de mayo de 2009.

Mecánica y modo de participación

Para participar es necesario efectuar el registro en sortea2, desde la siguiente dirección: http://www.sortea2.com/registro

Será imprescindible rellenar todos los campos correctamente para conseguir participar. Sortea2.com se reserva el derecho a rechazar algún registro de motu propio y sin previo aviso por parecerle defectuoso. Solo se permitirá un registro por persona.

Entre todos los usuarios que se registren durante el periodo de la promoción se realizará el sorteo de un iPod Touch de 2Gb el día 4 de mayo de 2009 ante notario. El notario extraerá de la lista de participantes a un (1) ganador y a tres (3) suplentes.

En caso de que no se pueda contactar con el ganador, que rechace el premio o que en un periodo de 15 días después de comunicarle que ha resultado ganador no responda, se procederá a contactar con el segundo suplente.

Premios

El premio consiste en un iPod Touch de 2Gb valorado en 00,00€.

Comunicación al ganador

En un periodo máximo de una semana después del sorteo, se contactará con el ganador mediante correo electrónico. En caso de que no responda, se contactará con el primer suplente.

Cancelación del sorteo

El sorteo solo no se podrá cancelar, una vez iniciado el periodo de la promoción, ya se debe continuar.

Disponibilidad del premio

En caso de que el premio no se pueda entregar exactamente el mismo modelo, se procederá a regalar un premio de el mismo valor o superior. No se permitirá canjear el premio por dinero en metálico.

Publicidad

Sortea2.com se reserva el derecho a publicar el nombre de usuario del ganador con fines promocionales.

Aceptación de las bases

El mero hecho de participar en el sorteo implica que el usuario acepta totalmente las condiciones de estas bases legales.

En Madrid, a 24 de marzo de 2009


Insisto en que este sorteo no existe, es simplemente un ejemplo. Lo importante es ver que nada de eso debe faltar en unas bases legales, puede tener más términos, pero esos son los imprescindibles.

Para cualquier duda, no dudeis en insertar algún comentario y os responderemos a cualquier cuestión.


Etiquetas: , ,
Escrito por .

Como hacer sorteos anonimos

Escrito en Promoción, Tutoriales

Es normal que en algunos casos uno quiera realizar un sorteo y que sólo se entere quien se tiene que enterar de que este se ha realizado. Uno no desea darle publicidad o transparencia. Simplemente quiere dar unos ganadores.

Para un sorteo así, la herramienta ideal es la página de sorteos simples. Se introduce la lista de nombres y se pulsa sortear. Con el resultado que obtengamos copiamos los nombres o imprimimos la pantalla y podemos felicitar a los vencedores.

Sorteo simple de ejemplo

Sorteo simple de ejemplo

Nadie verá quiénes eran los participantes ni siquiera quienes fueron los vencedores. Esta información no se almacenará en ninguna parte, con lo que el autor del sorteo puede hacer con ella lo que quiera sin preocuparse de que miradas indiscretas se enteren de que él ha sorteado algo.

Si se desea realizar un sorteo más completo, y sobre todo aprovechar la posibilidad de programar un sorteo para que se realice a una fecha y hora determinadas (lo cual es especialmente útil para tareas rutinarias, pues se pueden programar numerosos sorteos y esperar a que se vayan publicando los resultados cuando llegue esa fecha), se puede usar la herramienta de sorteos avanzados.

Sin embargo habrá quienes no quieran ver su nombre en las páginas web, quienes no quieran que se sepa que ha participado en un sorteo que no ganó. Si se quiere aprovechar la enorme utilidad de los sorteos avanzados manteniendo la privacidad, lo ideal es hacerlo usando alias o nicknames.

Por ejemplo supongamos que queremos sortear algo comprometido, digamos un jamón entre los clientes de un sex shop. Podemos usar la primera opción, de sorteos sencillos, porque nadie verá los nombres que se introduzcan. Pero también podemos hacerlo programando el sorteo, diciendo «el lunes 3 de agosto a las 21:00 horas se realizará el sorteo». En este sorteo, en lugar de introducir los nombres de los concursantes, que tratamos de mantener en el anonimato, utilizamos por ejemplo una tabla de números:

Celestino Corbacho –> 100
Cristina Garmendia –> 200
Miguel Sebastián –> 300
Beatriz Corredor –> 400
Bibiana Aído –> 500

sorteo-avanzado-ejemplo

sorteo-avanzado-ejemplo

A los participantes les decimos con qué número participan, y le podemos quizás dar una papeleta donde se indique esto.

Y luego simplemente programamos el sorteo, con total anonimato, usando los números o el alias, en lugar de sus nombres.

Así, si algún curioso lo consulta (en la dirección del sorteo), no sabrá nada de los clientes de esta tienda, mientras que cualquiera de los participantes podrá saber si ha sido premiado o no, al mismo tiempo sabrá que el sorteo ha sido real y no que le han dado el premio al cuñado del dueño del sex-shop.

Usando sortea2 se consigue transparencia y además con toda la privacidad que uno quiera mantener.


Escrito por .

Cómo se hizo el posicionamiento en buscadores en Sortea2

Escrito en Tutoriales

Una de las cosas más importantes en la creación de una web es la parte del posicionamiento en buscadores, no en vano, al menos el 80% de las visitas serán procedentes de Google y el número de visitas dependerá de dónde nos encontremos en los resultados de las búsquedas.

Conseguir los primeros resultados atrae muchas visitas

En este artículo trataré de explicaros las técnicas que hemos utilizado para tratar de facilitarle el trabajo a Google:

Estructura

Crea un código simple y legible
No es para nada recomendable el uso de multitud de tablas anidadas unas en otras ni la utilización de marcos o cosas por el estilo. Evita siempre complicar las cosas e intenta que todo el código esté bien estructurado.

Relaciona unas páginas con otras
Trata de enlazar páginas relacionadas entre sí, porque eso es algo favorable de cara a Google. Intenta crear secciones tales como «Temas relacionados» dentro de una página o cosas por el estilo.

Enlaza a fuentes que amplien información
Siempre que sea posible, enlaza a fuentes originales o a páginas que aclaren un determinado tema. Un ejemplo corriente puede ser el enlazar a algún artículo de la wikipedia que explique algún término que utilicemos.

Uso correcto de etiquetas HTML

Usa la etiqueta apropiada en el lugar apropiado
Un ejemplo habitual puede ser el uso de las etiquetas strong en vez de b y las etiquetas em en vez de i. Estas etiquetas cumplen una de las funciones iniciales del HTML: ser descriptivas, mientras que cualquier elemento de una web puede estar en negrita (gracias a CSS), es necesario que se pueda especificar explícitamente que esa zona está resaltada por algo, no que están en negrita por ser una especie de encabezado ni nada. En resumen, intentar usar todas las etiquetas html posibles, cada una en su sitio; si hay que usar un h3 en vez de un span, mejor que mejor.

Usar tablas lo menos posible
Las tablas son un lío para Google, usarlas solamente en el caso de que sean imprescindibles.

Contenido

Haz a las imágenes descriptivas
Las imágenes son muy buenas para el posicionamiento, pero si están bien usadas. Hay que tratar de ponerles un nombre descriptivo al archivo, incluirle un atributo alt y escribirles algo en el atributo title. Hay que tener en cuenta que el Googlebot tan solo podrá leer los textos y las etiquetas, no lo que ponga en la imagen.

Añade etiquetas meta
Una de las mejores maneras de posicionar la web es añadiendole meta-tags descriptivas. Estas etiquetas se añaden dentro del head y las hay de dos tipos:

Etiqueta descripción:

<meta name='description' content='Sortea2, la herramienta para sortear. Realice sorteos entre todos los participantes que desee, puede guardarlos, programarlos, comentar los sorteos, votarlos y mucho más.'/>

Hay que escribir una descripción buena. Ojo con repetir mucho alguna palabra que eso no le gusta nada a Google.

Etiqueta tags:

<meta name='keywords' content='viaje,Estados Unidos,star wars,nocilla,marzo 2009, sorteos, sortear, to raffle, rifas, raffles, lotería, programar, participantes'/>

Aquí debes escribir algunas palabras que estén relacionadas con una página en particular o de toda la página. Si la web es dinámica (como Sortea2), es altamente recomendable crear etiquetas variables. Por ejemplo, en las páginas de sorteos, una parte de las keywords de esta etiqueta meta son las propias tags del sorteo.

Crea contenido propio
Hay que tener en cuenta que si copias y pegas texto de otras webs, evidentemente la web que creó ese contenido antes es la que va a estar delante en las búsquedas, así que es mejor ni intentarlo. Hay que crear contenido escrito por uno mismo, y en caso de tener que copiar un fragmento de texto, indicar la fuente original.

Consideraciones de compatibilidad

Tratar de pasar el W3C Validator
Una medida genial para posicionarse es hacer una web accesible a todos los navegadores. En Sortea2 ya escribimos un artículo sobre como pasar el W3C Validator.

Conseguir links externos

Conseguir links externos mejora el pagerank
El pagerank es una de las medidas que utiliza Google para determinar los resultados. Este número depende del número de links que tenga nuestra página de otras páginas.

Esta parte es la que más ayuda en el posicionamiento en buscadores, pero también es la que menos depende de uno mismo. Podemos tratar de colocar algunos links a nuestras páginas en algunos sitios, aunque en esta parte lo único que se debería hacer es crear contenido de calidad que haga que la gente te enlace por sí misma.

El principal rival que tenemos en este tema es el no follow dentro del atributo rel de los links. Esto lo que hace es decirle a los buscadores que ese link no lo tengan en cuenta a la hora de valorar esa web enlazada. Se suele utilizar en los comentarios de los blogs para que la gente no haga spam.


Etiquetas: , ,
Escrito por .