Mejora el SEO de tu app con PHP-Router

Hola amig@s desarrolladores, hoy voy a enseñaros en concreto, con código PHP, cómo podéis mejorar el SEO y la usabilidad de vuestras webs poniendo URLs amigables. El tip de hoy es para todos aquellos que tenéis URLs como las siguientes:

Y queréis transformarlas en su contraparte amigable:

Cómo mejorar el SEO

Las URLs amigables son aquellas que son cool para los usuarios y para el SEO. Son cool para los usuarios porque, en general, suelen hacer el papel de sendero de migas de pan (breadcrumb, en inglés), esto es, indican al usuario en qué parte de la navegación del website se encuentra. Y son buenas para el SEO porque así las URLs quedan pobladas con palabras relevantes para vuestro website -por ejemplo, alimentacion, anuncio, abogados, chico-busca-trabajo, etc.-, cosa que siempre favorece al posicionamiento SEO.

Gente amigable

Supongamos que queremos programar un mapeo de URLs amigables para montar un sistema de gestión de usuarios de tipo CRUD -o sea, estamos montando un sistema para Crear usuarios (Create), Leerlos (Read), Actualizarlos (Update) y Borrarlos (Delete)-. Para conseguir nuestro objetivo vamos a programar el mapeo “URL que me invento” -> “Recurso que existe realmente en mi sistema de ficheros” en nuestra aplicación PHP. Digo esto porque esa correspondencia también se puede hacer mediante la sintaxis mod_rewrite de Apache, en un archivo .htaccess.

En vez de programar una clase enrutadora PHP, cosa que supondría un problema en sí mismo, vamos a adoptar una filosofía de desarrollo de software orientada a la reutilización de componentes y vamos a descargarnos la clase PHP-Router de GitHub. Muy importante: ¡no dejes de consultar el archivo example.php de la carpeta PHP-Router!, ahí encontrarás ejemplos concretos muy útiles para ver en detalle cómo funciona el enrutador.

Puedes poner un .htaccess como el siguiente en la carpeta raíz de tu app para centralizar todas las peticiones HTTP en un único punto index.php, como hace WordPress:

Y luego en ese index.php programas la lógica de inicialización -lógica de bootstraping, en inglés-, que puede ser algo así como lo siguiente:

Este ejemplo supone que la estructura de archivos de la aplicación es más o menos así (incluyo lo estrictamente necesario para ilustrar este ejemplo de gestión de usuarios):

Estructura de directorios para el SEO

Fíjate que en index.php definimos las reglas de mapeo, por ejemplo:

Todas nuestras reglas de mapeo CRUD incluyen el archivo cpanel/layout.php porque hemos envuelto en ese archivo todo lo que tienen en común los HTML del panel de gestión de los usuarios: la cabecera y el pie HTML.

Así por ejemplo, el código del archivo cpanel/users/create.php es así:

Porque cpanel/layout.php tiene más o menos este aspecto:

¡Espero que todo este código sencillo te resulte self-explanatory!