URLs largas en el blog, luego de décadas

Imagen de URLs largas en el blog, luego de décadas

Luego de muchos, muchos años, la insistencia de Google a la que nunca claudiqué y paja mental, terminé de programar para el blog las urls largas :D

Sí, ya sé, me llevó como una década y tenía casi todo hecho de hace algunos años, pero no tuve ganas de terminarlo ¿Qué me convenció de hacerlo? Pues bien, fue una serie de tonterías que ahora les explico, lo cierto es que las notas ahora son con urls con texto que llevan el título en ellas.

Años de SEO y aun así no lo hice, Google fue categórico: quien no siguiera nuestras "condiciones" dejaría de ser relevante y me lo pasé por los huevos, debo admitirlo, con los numeritos estaba bien y las urls eran realmente cortas y prácticas, aunque, claro, no para el SEO.

Pero como Google ya me había bajado de cualquier posicionamiento mucho antes, en su momento, decidi que podían irse bien a la mierda.

El otro día, en cambio, noté algo que me resultó más relevante: Si las notas no tienen una url completa ninguno de los sistemas de chat por AI interpreta de qué va la página, es más, uno de ellos (el peor de todos) hasta identificó la url como de un comercio/producto sólo porque en la misma hay un número y no texto. Así de mal entrenadas están las AI.

No es que pretenda que me encuentren pero si alguien le pregunta a un ChatGTP de qué va una nota que escribí, le pasa la url, y ésta responde cualquier mierda, pues... no, no está bien. 

Así que como experimento decidí revivir el código que tenía olvidado, le faltaban algunas cosas que detallo a continuación.

del htaccess al sitemap

Un detalle no menor era corregir mi htaccess, el archivo que Apache utiliza para  decidir a dónde cuernos enviar algo. El anterior sólo contemplaba las urls con número que no es más que el id de cada nota.

Cuando alguien llega a https://www.fabio.com.ar/9050 Internamente se lo envía a https://www.fabio.com.ar/verpost.php?id_noticia=9050 pero mantiene el número y conserva eso como url final.

Ahora bien, la cosa debía cambiar a https://www.fabio.com.ar/9050-ruleta_rusa_719 y no tenía puta idea de cómo se hacía eso con expresiones regulares porque ¿Quién choto las entiende perfectamente?

En el htaccess tuve que agregar una regla, antes sólo tenía:

RewriteRule ^([0-9_]+.*)$ verpost.php?id_noticia=$1&vieja=1 [L]

ahora le puse antes:

RewriteRule ^([0-9]+\-)([A-Za-z0-9-_]+)/?$ verpost.php?id_noticia=$1 [L]

No anda perfecto porque me agrega el guión pero hace que la url quede mejor, así que al recibir el dato tengo que contemplar eso para separar el guión del ID, nada complejo, pero un detalle.

Esto me permite cualquier número, guión, el texto que se le ocurra. De ahí sólo toma el número ($1) y lo envía a la url "tradicional" que es la que realmente procesa el pedido.

Ahora bien ¿Qué pasa si alguien usa una url anterior? Pues bien, por un lado el htaccess acepta las viejas porque dejé como segunda instrucción la vieja regla, pero desde el PHP también tuve que agregar redirección.

Si uno no envía un header indicando que la url se movió de forma  "permanente" Google podría ver como urls duplicadas, en este caso, triplicadas

Si estas tres:
https://www.fabio.com.ar/9050
https://www.fabio.com.ar/verpost.php?id_noticia=9050
https://www.fabio.com.ar/9050-ruleta_rusa_719

dan código HTTP 200, se estaría triplicando el contenido, así que hay que hacer siempre un redirect con código 301 a la que corresponde si la url escrita es la ahora "incorrecta", o, más bien, "antigua".

HTTP/1.1 301 Moved Permanently

Luego de hecho esto tuve que meter mano en el código de las notas, de la portada del blog, de los comentarios recientes, los posteos sugeridos, las notas que escribió cada autor, los comentarios que dejó cada usuario, el buscador, el RSS y el sitemap, todo eso, y es obvio que algo puede quedar olvidado 😁 , tengan en cuenta que hice todo esto en un sólo día testeando "en vivo" como hacen los programadores de antes 😋

Por lo pronto parece que todo funciona OK, no digo que sea perfecto, porque si cambio el título de una nota me cambia la url también y eso es una poronga, tengo que crear un campo en la edición de nota que sea el "slug", el texto que va a la url, para que sea editable y no por "default" como está ahora.

Pero eso será para la versión 2.0 que puede llevarme otros diez años hasta que me interese programarlo 😂🤷‍♂️


Volver al inicio Ver original

copyright©2025 Fabio Baccaglioni - Fabio.com.ar - Versión simplificada Old School