Los sitios creados con Joomla tienen un SEO horrible… ¡mejorémoslo!

[lbmn_commentscount]

He necesitado crear dos sitios con Joomla para llegar a la siguiente conclusión: Joomla tiene tolerancia 0 con el SEO. Realmente cuando estás aprendiendo y creando tus primeros sitios no eres consciente de ello pero conforme adquieres un poco de experiencia SEO te das cuenta de las auténticas barbaridades que comete este CMS… ¿mi cruz? Conseguir URLs amigables ha sido toda una pesadilla. En este post quiero resumir todo lo que he aprendido sobre SEO en Joomla a costa de destrozar mi sitio una vez tras otra. ¡Comencemos!

 

Conseguir URLs amigables con Joomla para mejorar el SEO.

Conseguir URL amigables para los buscadores con Joomla es una auténtica pesadilla, especialmente cuando lo haces por primera vez. Voy a resumir los pasos que debes seguir pero dentro de poco sacaré un post describiendo con detalle este proceso y comentando las principales chapuzas que cometí.

En primer lugar, para todo aquel que no lo sepa, reescribir las URLs no es tan sencillo como cambiar de título. Si tú escribes como URL (por ejemplo) http://www.misitio.com/joomla-tiene-un-seo-orrible y una vez publicada la página te das cuenta de que orrible lleva acento (manías de la R.A.E.), la solución no es tan simple como cambiarlo por http://www.misitio.com/joomla-tiene-un-seo-horrible . Si lo haces ni se te ocurra quedarte con la satisfacción del deber cumplido: acabas de generar dos páginas prácticamente iguales cuya única diferencia es una letra en la URL… ¿habéis oído hablar del contenido duplicado? ¿Y sabéis la gracia que le hace a Google?

Dicho lo anterior, veamos cómo son las URLs generadas por defecto por Joomla.

http://www.eduardomartinezblog.com/index.php?option=com_k2&id=1&task=category&view=itemlist&Itemid=101

El chorizo anterior es lo que Joomla genera por defecto y, como os podéis imaginar, esta clase de URLs no son para nada amigas de Google.

Para evitar esto vayamos pos pasos.

En primer lugar, debes ir a «configuración global de Joomla». Aquí deberás marcar la opción «Motor de búsqueda  para URLs amigables». Con ello habremos conseguido convertir el garabato anterior en algo más legible.

http://www.eduardomartinezblog.com/index.php/formacion

Sin embargo, el trozo /index.php/ nos fastidia el SEO. Ya no hablemos de lo que pasa si usas componentes de Joomla como el K2 ya que el chorizo es mucho peor:

http://www.eduardomartinezblog.com/index.php/component/k2/item/59-seo-movil-las-reglas-han-cambiado

Para cambiar estas URLs tan poco amigables debes reescribir tu archivo htaccess.txt por .htaccess . Para ello puedes usar cualquier programa FTP (en español significa Protocolo Transferencia de Archivos) como Filezilla. Como este archivo es fundamental y el más mínimo error puede acabar con tu sitio te recomiendo que hagas una copia de seguridad antes.

Ya hemos reescrito el archivo .htaccess. Ahora vayamos a la configuración global de Joomla. En la configuración del sitio vamos a marcar «usar la reescritura URL».

 

Con ello conseguimos eliminar /index.php/. ¿Parece sencillo? No cantes victoria tan rápido que ahora tenemos dos URL casi idénticas para el mismo contenido, es decir, tenemos dos páginas llamadas http://www.eduardomartinezblog.com/index.php/formacion y http://www.eduardomartinezblog.com/formacion  que nos van a complicar mucho la vida en cuanto a términos de posicionamiento SEO.

¿La solución? Crear redireccionamientos permanentes. La fórmula tradicional consistiría en configurar redireccionamientos permanentes 301 en el archivo .htaccess. Sin embargo para principiantes puede resultar algo bastante complejo y el remedio puede ser peor que la enfermedad. ¿Mi consejo? Usa el componente ARTIO JoomSEF. Esta extensión te permite reescribir las URL y realizar redireccionamientos automáticos. De este modo podrás cambiar todas las URL de tu sitio. Si has usado el componente K2 puedes descargarte una extensión de ARTIO JoomSEF para K2 para poder trabajar con todos tus artículos. Y un consejo… ¡no te olvides de las tags!

 

Redirige tu dominio sin www. a la dirección con URL.

Este es uno de los fallos de Joomla que más daños ha hecho al SEO. A diferencia de WordPress Joomla no redirige automáticamente las URL no www. a las URL con www. Estamos ante otra situación de contenido duplicado. ¿Qué hacemos? Vamos a hacer un redireccionamiento global en el archivo .htaccess.

Para ello debes añadir el siguiente código:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^eduardomartinezblog\.com [NC] RewriteRule ^(.*)$ http://www.eduardomartinezblog.com/$1 [L,R=301]

Lógicamente deberás cambiar tu dominio por el tuyo. Con este código solucionaremos este problema.

 

 Quita /images/ de tu archivo robots.txt

Parece que Joomla tiene manía al SEO de imágenes. El archivo robots.txt generado automáticamente por Joomla viene por defecto con una norma que impide a los motores de búsqueda acceder a la carpeta de imágenes. Como buen experto SEO sabrás que la optimización SEO de las imágenes es fundamental por lo que te recomiendo que elimines la línea /images/ de tu archivo robots.txt

 

Optimiza la velocidad web de tu sitio creado con Joomla para mejorar el SEO.

Si has leído mi post sobre velocidad de carga orientada al SEO sabrás lo perjudicial que puede ser un excesivo tiempo de carga para el SEO. Podemos mejorar el tiempo de carga indicando el tiempo durante el cual se debe almacenar los datos en caché. Te recomiendo que añadas en el archivo .htaccess el siguiente código.

# BEGIN Expire headers <ifModule mod_expires.c> ExpiresActive On ExpiresDefault «access plus 1 seconds» ExpiresByType image/x-icon «access plus 2592000 seconds» ExpiresByType image/jpeg «access plus 2592000 seconds» ExpiresByType image/png «access plus 2592000 seconds» ExpiresByType image/gif «access plus 2592000 seconds» ExpiresByType application/x-shockwave-flash «access plus 2592000 seconds» ExpiresByType text/css «access plus 604800 seconds» ExpiresByType text/javascript «access plus 216000 seconds» ExpiresByType application/javascript «access plus 216000 seconds» ExpiresByType application/x-javascript «access plus 216000 seconds» ExpiresByType text/html «access plus 600 seconds» ExpiresByType application/xhtml+xml «access plus 600 seconds» </ifModule> # END Expire headers # BEGIN Cache-Control Headers <ifModule mod_headers.c> <filesMatch «\.(ico|jpe?g|png|gif|swf)$»> Header set Cache-Control «max-age=2592000, public» </filesMatch> <filesMatch «\.(css)$»> Header set Cache-Control «max-age=604800, public» </filesMatch> <filesMatch «\.(js)$»> Header set Cache-Control «max-age=216000, private» </filesMatch> <filesMatch «\.(x?html?|php)$»> Header set Cache-Control «max-age=600, private, must-revalidate» </filesMatch> </ifModule> # END Cache-Control Headers # BEGIN Compress text files <ifModule mod_deflate.c> <filesMatch «\.(css|js|x?html?|php)$»> SetOutputFilter DEFLATE </filesMatch> </ifModule> # END Compress text files

Usar Gzip para comprimir el código.

Comprimiendo los archivos con Gzip conseguiremos aumentar la velocidad de carga de nuestro sitio. Para ello simplemente tenemos que ir a «Configuración global de Joomla», seleccionar la pestaña servidor y cambiar lo siguiente:

 

Y esto es todo por hoy, espero poder ayudarte a mejorar la optimización de tu sitio web  y si tienes alguna idea más de cómo mejorar el SEO de Joomla… ¡coméntanoslo!

 

 

 

[lbmn_postpagination]
 

[lbmn_authorbio]

Leave a Comment

  1. Responder

    Tiene usted toda la razón. Me embarque con Joomla y ahora me estoy ahogando. Tiene demasiados problemas con lo mejor que ellos han hecho que el K2. Demasiado problemas de SEO y contenido duplicado por gusto. ¿Alguien me puede recomendar otro SMS amigable para SEO?

    Cami

  2. Bueno creo que el artículo esta muy claro. Aunque yo utilizo algunos componentes y plugin como: jch-optimize y uno que se llama Sistem canonical. Pero ahora me pongo manos a la obra y quitar imágenes del robot txt. Gracias.

  3. Responder

    Hola!
    Se que el post es antiguo, pero te escribo para ver si me puedes ayudar.
    En mis comienzos como programador joomla me parecia una maravilla, ahora siendo un experto, me tiro de los pelos…
    En fin, tengo una duda, no se si puedes ayudarme. Tengo el joomfish instalado. El caso es que intento que todas las url de mi sitio sean del tipo http://www.lasermedicalrent.com/es/...
    Pero cuando miro enlaces internos, o pongo site:www.lasermedicalrent.com en google, todos los enlaces que me ponen son sin el /es/
    Si viajo por el sitio, todos los enlaces lo incluyen, el /es/ quiero decir. Tienes alguna idea de porque puede ser esto, y de como solucionarlo?

    Mil gracias!

  4. Responder

    Hola, el material esta estupendo pero no entendí la parte que habla sobre la re escritura de urls, he seguido los pasos y nos gustaría saber si alguien puediera revisar el sitio http://artedigitalpsd.com/ y darnos una opinión sobre el seo 🙂 gracias

  5. bueno hice algunos trabajos de seo en mi web, alguien me podria decir como estoy yendo o que cosas mas tengo que hacer.

    • aitor
    • 21 febrero, 2014
    Responder

    Hola alguien sabe como redirigir una pagina especifica a la web mobile, es decir si me entran por el mobil a una landing page como puedo hacer que esta vaya directamente a la misma landing page en el mobil ?

    ya que solo he conseguida que vayan a la home no a las paginas ya especificas de mobil que he creado en wordpress

    • aitor
    • 25 septiembre, 2013
    Responder

    hola, soy el webmaster de una academia de ingles, la web esta echa en joomla y estoy viendo que me da bastantes errores, la web esta echa en multiidioma, y los errores no los entiendo ya que estando en una apgina por ejmeplo en castellano la url es diferente a la que tenia que ser, no se el porque es. y se ve que viene de algun compoenente que sucede ?

    • aitor
    • 12 septiembre, 2013
    Responder

    Hola para hacer que mis url sean acnonical que plugin utilizo, lo que quiero es que cuando este creando un articulo tenga un campo donde diga algo parecido a url canonical para hacer una url canonical y asi no duplicar contenido

    • Carlos
    • 16 julio, 2013
    Responder

    Gracias por ahorrarnos tanto trabajo; sin embargo los nombres de las imagenes de los articulos generados en k2 siguen teniendo un nombre nada amigable por ejem. 92c3523de61d06eebdc515f2babb64b9_XL.jpg ¿como podriamos corregir esto?, y hacer que los nombres de nuestros articulos en k2 queden amigables, gracias por la respuesta.

    • Ricardo
    • 25 junio, 2013
    Responder

    Bueno articulo. Llevo con joomla ya hace unos años y ya domino bastantes cosas de las que mencionas en el articulo.
    Pero ahora me surge un problema en una pagina especifica. He quitado el disallow images de los robots pero aun asi google no indexa ninguna imagen… He creado el image sitemap con xmap pero me aparecen 5 imagenes cuando you tengo 40. Estan todas con nomobres descriptivos y con ALT. Nada de nada… Ya he creado un image sitemap manualmente para que google no tenga ni que buscar pero nada de nada… Estoy un poco desesperado con esto y claro el cliente tb. Nunca me habia pasado esto. Si alguien tienen algun consejo lo agradezco.

  6. Responder

    muy bueno
    pero wordpress no es mejor para el seo?

    • Responder

      No solo mejor, mucho mejor! el título del post debió haber sido Los sitios creados en Joomla tienen un SEO horrible, mejor cámbiate a WordPress. jajaja

      Pero bueno yo empecé con Joomla y si hubiera conocido este blog antes hubiera estado de lujo.

  7. Responder

    Gracias Daniel, como dato diré que simplemente generando URLs amigables dupliqué mi tráfico orgánico en dos semanas (medido con Analytics). Imaginad que en lugar de un blog estuviésemos hablando de un negocio online. El resultado sería duplicar los ingresos (o haber tenido todo este tiempo la mitad por elegir un CMS con muchas carencias).

  8. Excelente post, llevo trabajando años con Joomla y he logrado que muchos sitios lleguen a estar en primeros lugares de búsqueda, a pesar de las falencias que aquí se mencionan. Todos son verdad, yo mismo lo he visto.

    Sin embargo pienso, mi trabajo hubiera sido más fácil si hubiera sabido estos pequeños pero muy potentes trucos. Gracias por compartirlos

  9. Responder

    Muy buen post. Una gran ayuda para no perder el tiempo y conseguir posicionamiento web en buscadores. El SEO es fundamental dentro del marketing digital y para los usuarios de joomla tu artículo es una inestimable ayuda.
    Sígue contándonos «secretillos» sobre joomla. Gracias.

  10. Responder

    Artio Joomsef vs. acesef ???

  11. Responder

    Muchas gracias Javi por tu aportación, nos ayuda mejorar a todos.

    • Javi
    • 23 octubre, 2012
    Responder

    Hola, está muy bien la herramienta GTMetrix, muchas gracias.
    Pongo el código del htaccess reformateado para si alguien lo quiere copiar y pegar.
    Por cierto, funciona también bien.
    Gracias, saludos.

    # BEGIN Expire headers

    ExpiresActive On
    ExpiresDefault «access plus 1 seconds»
    ExpiresByType image/x-icon «access plus 2592000 seconds»
    ExpiresByType image/jpeg «access plus 2592000 seconds»
    ExpiresByType image/png «access plus 2592000 seconds»
    ExpiresByType image/gif «access plus 2592000 seconds»
    ExpiresByType application/x-shockwave-flash «access plus 2592000 seconds»
    ExpiresByType text/css «access plus 604800 seconds»
    ExpiresByType text/javascript «access plus 216000 seconds»
    ExpiresByType application/javascript «access plus 216000 seconds»
    ExpiresByType application/x-javascript «access plus 216000 seconds»
    ExpiresByType text/html «access plus 600 seconds»
    ExpiresByType application/xhtml+xml «access plus 600 seconds»

    # END Expire headers
    # BEGIN Cache-Control Headers

    Header set Cache-Control «max-age=2592000, public»

    Header set Cache-Control «max-age=604800, public»

    Header set Cache-Control «max-age=216000, private»

    Header set Cache-Control «max-age=600, private, must-revalidate»

    # END Cache-Control Headers
    # BEGIN Compress text files

    SetOutputFilter DEFLATE

    # END Compress text files

  12. Responder

    Muy bueno el artículo. Gracias por compartirlo 😉