Cuando empecé a diseñar webs hace diez años, en su mayoría eran estáticos y las páginas tenían una URL del tipo "www.mi-dominio.ext/mi-carpeta-temática/mi-contenido.html". Luego vinieron los CMS y sus "www.mi-dominio.ext/index.php?churro=no-entiendo-nada&leng=es". Y ahora vienen las URLs amigables que pretenden emular aquellas primeras direcciones, haciéndolas más comprensibles. Se supone que eso "suma puntos" a la hora de posicionarte en Google. Se supone.
El primer paso con Mambo/Joomla es simple, si tu servidor HTTP es Apache, ya que basta con activar la opción pertinente en la administración del CMS y poner en tu raíz web el ".htaccess", comentando y descomentando (poniendo y quitando "#") las opciones que más se ajusten a tus necesidades.
Con esto consigues una URL amigable, aunque sigue siendo poco entendible, del tipo "www.midominio.ext/content/view/99/99/". Cuando hice esto observé una ligera tendencia en el aumento de las visitas que podría rondar, a un mes vista, en torno al 5% (cálculo realizado a ojímetro). Luego corregí un error de novato. Las keywords, que para salir del paso las saqué de los títulos de los artículos con un proceso automático, pues no era cuestión de recorrer 400 artículos para ponerlas manualmente. Esto si que provocó un aumento de las visitas interesante, en torno al 20%.
Pero seguía sin convencerme esa URL amigable pero poco entendible que acabo de citar, así que busqué y rebusqué hasta que encontré una adaptación del sh404sef para Mambo (aunque ahora desacreditado, no olvidemos que fue el CMS padre del aclamado Joomla).
Y aquí empezaron los problemas que te relaciono, básicamente 3. Estos problemas han provocado un importante paso atrás que ha supuesto en los últimos 4 días en torno a un 25% menos de visitas (siempre a ojímetro). Creo que es poco tiempo para valorar y habrá que esperar como un mes. Estimo. Quizás te sirva de ayuda en tu propia aventura esta pequeña experiencia y las conclusiones que he sacado.
Ampliar memory_limit. Si tienes una configuración estándar en tu servidor web, es muy probable que la variable memory_limit de tu PHP.ini esté a 8M. Si tienes una web no muy grande, con un contenido no muy extenso, ésto no debe ser problema. Pero si tienes unos 400 artículos y muchos de ellos tienen varias páginas, entonces SÍ será un problema. Y grave. Cuando el caché del sh404sef va aumentando con el registro de SEF URLs, llegará un punto en que tu página principal dará como resultado un Internal Server Error. También observarás warnings en la ejecución del código PHP del sh404sef.
Solución: solicita una ampliación en la variable memory_limit al máximo posible en tu servidor. Puedes hacerlo en el código, pero tendrás que hacerlo en cada módulo PHP. Algo muy engorroso.
Configurar antes de activar. Un error motivado por la ignorancia es activar las URLs amigables en tu CMS y activar el sh404sef, para luego configurar. ¡OJO! En ese preciso momento, y aunque parezca increible, la arañita de Google puede estar indexando tu web. Si luego realizas cambios en la configuración de los SEF URL te puedes encontrar que Google ha indexado unas URL y tu web tiene otras. Caso concreto. El sh404sef por defecto se instala "SIN" .htaccess, generando direcciones tipo "www.midominio.ext/index.php/seccion/mitema.html". Lo que resulta una URL amigable y entendible, pero para mi gusto, "sucia". Yo me di cuenta de que se podía cambiar esta configuración unas 24 horas después de activar el sh404sef. Realicé los cambios oportunos, activando el .htaccess del sh404sef (hay que modificar el que viene por defecto en Mambo/Joomla) e indicando al sistema, si es de tu gusto, que incluya la categoría en la SEF URL, de manera tal que resulte algo así como: "www.midominio.ext/categoria/seccion/tema.html". Así, sí me gusta. Pero... ¡horror! Ahora aparecen multitud de "404 page not found" en el caché de sh404sef. ¿Qué ocurre? Pues que en esas 24 horas el googlebot ya había indexado algunas páginas con el formato ".../index.php/seccion...". Como las páginas tienen ya sus keywords adecuadas, eso provoca que se encuentren más fácilmente en el buscador, pero al hacer click devuelvan como resultado, una página del CMS cuyo contenido es "Página no encontrada". Así que ahora toca esperar a que Google reindexe el sitio y cruzar los dedos a ver si es capaz de "des-reindexar" esas SEF URL que ya no existen. Un claro ejemplo está en buscar en Google las palabras "maquinaria JOAL". El primer resultado es un contenido de mi página. Pero un contenido mal indexado. ¡Mi gozo en un pozo!
Solución: emplea el tiempo que estimes necesario y no tengas prisa en revisar completamente la configuración de sh404sef y asegúrate de que "le has dicho" exactamente cómo quieres que funcione y como quieres tus SEF URLs ANTES de activarlo.
Crear el caché manualmente. Aunque parezca mentira, si vacías el caché de sh404sef, las páginas que hayan sido indexadas con las SEF URLs determinadas, al ser localizadas en Google y un potencial visitante hacer "clic" darán un "404 page not found". ¿Por qué? Pues porque sh404sef no es capaz de reinterpretar una página que no exista en el caché y a la que se accede directamente.
Solución: ¿Cómo se generan o regeneran? Nada más fácil. Navegando por tu web desde la página principal. sh404sef crea de nuevo todas las SEF URL que va encontrando en la página que muestra. A ver cómo me explico que se entienda. Al acceder a "www.midominio.ext", todas las páginas de contenido de tu dominio enlazadas aquí se reconvierten a SEF URLs y se crean en el caché. Al acceder a uno de sus contenidos, el proceso se repite. Pero, si por un cambio de configuración, has borrado el caché e intentas acceder a una de esas SEF URLs, el resultado será el indicado arriba: "404".
Exporta tus SEF URLs. Bien, ya tienes una configuración que te gusta. Has activado tu sh404sef (y la opción pertinente en Mambo/Joomla). Has navegado por tu web para que se genere el caché del sh404sef. No haces nada más, pasan unos meses, te das cuenta de un pequeñito e insignificante error en el sh404sef que retocas con la configuración, borras el caché... y te olvidas. ¡NO! Google empezará a lanzar páginas contra tu dominio cuyo resultado será "404" hasta que no vuelvas a crear el caché.
Solución: Cuando termines los tres primeros pasos, utiliza la opción "exportar" para guardar tus SEF URLs. Mientras no cambies su formato y los contenidos existan, seguirán siendo validas. Si borras el caché por necesidad, sólo tienes que importarlas.
Elimina símbolos castellanos. Si utilizas símbolos castellanos en los títulos de tus artículos como "¿" ó "¡" (en concreto y sobre todo, estos dos), añádelos en la configuración del sh404sef ANTES de activirlo, en la cadena "strip replace". De no hacerlo Google puede indexar una dirección que tendrá un carácter "X" entre la "/" la "¿". Caso concreto. Título: "¿Es esto una prueba?". SEF URL: ".../seccion/¿Es-esto-una-prueba.html". URL indexada: ".../seccion/¿Es-esto-una-prueba.html". Lo que origina un "404 page not found".
Solución: al redactar, evita usar símbolos netamente castellanos (o derivados). Además, configura tu sh404sef antes de activarlo filtrando esos símbolos ("¿", "¡", "ñ" -aunque ya incluye la "Ñ"-, "ç" y todo lo que se te ocurra).
Llamada a URLs absolutas. Otro de los pequeños problemas que me encontré al instalar sh404sef con Mambo (desconozco si sucederá lo mismo con Joomla) es que las llamadas "relativas" a URLs dentro de la web se reenmascaran con las SEF URLs dejando inútiles, por ejemplo, los formularios. Me explico. En un formulario con un "action=index.php", sh404sef modificará esto a "action=LA_SEF_URL_QUE_CORRESPONDA/index.php". Y no es lo mismo. Resultado: "404".
Solución: en mi caso modificar los complementos de Mambo para que las llamadas fueran "action=http://www.midominio.ext/". Es un apaño, queda mejor si se utiliza la variable global de configuración "live_site". El asunto, en definitiva, es que no debe haber ninguna llamada tipo "img src=directorio/imagen.gif" o "a href=index.php?loquesea=loquequieras". Esto debe sustituirse en el código por "img src=http://www.midominio.ext/directorio/imagen.gif" o "a href=http://www.midominio.ext/index.php?loquesea=loquequieras".



