Utilizar URLs amigables, sin duda alguna, ayuda a mejorar tu ranking en los distintos motores de búsqueda. El motivo es bien sencillo, la propia URL amigable proporciona la información suficiente sobre el contenido de la página web. Por si no te ha quedado demasiado claro, te mostramos la diferencia entre una URL normal y una URL amigable perfecta para el SEO:
- URL normal: http://miweb.com/posts.php?id=58
- URL amigable: http://miweb.com/tutorial-php-para-novatos
Como puedes ver en el ejemplo, en la URL amigable es mucho más fácil saber cuál será el contenido de la página web antes siquiera de hacer clic en ella, que en la URL normal. Si deseas aumentar el ranking de tu sitio web respecto a los motores de búsqueda, lo suyo es que cambies tus URLs por URLs amigables listas para el SEO.
En este tutorial, te mostraremos cómo generar URL amigables a partir de un string utilizando PHP. Mediante este script podrás convertir una cadena de texto normal y corriente a una cadena con el formato de URL amigable. Hemos agrupado todo el código PHP en una función llamada generateSeoURL(). Esta función crea automáticamente un slug limpio y apto para el SEO.
Función para crear una URL amigable
La función generateSeoURL() coge un string y crea una cadena URL legible por humanos con el carácter “-” como separador de palabras. Estos son sus parámetros:
- $string: (obligatorio) El string que quieres convertir a una URL amigable
- $wordLimit: (opcional) Limite de palabras presentes en la URL amigable. Por defecto es 0 (sin lÃmite)
<?php function generateSeoURL($string, $wordLimit = 0){ $separator = '-'; if($wordLimit != 0){ $wordArr = explode(' ', $string); $string = implode(' ', array_slice($wordArr, 0, $wordLimit)); } $quoteSeparator = preg_quote($separator, '#'); $trans = array( '&.+?;' => '', '[^wd _-]' => '', 's+' => $separator, '('.$quoteSeparator.')+'=> $separator ); $string = strip_tags($string); foreach ($trans as $key => $val){ $string = preg_replace('#'.$key.'#i'.(UTF8_ENABLED ? 'u' : ''), $val, $string); } $string = strtolower($string); return trim(trim($string, $separator)); }
Uso
Pasa el artÃculo de la función o una cadena como primer parámetro de la función generateSeoURL(). Si quieres restringir el número de palabras en la URL, recuerda pasarle un número entero a la función como segundo parámetro. Si no quieres limitar el número de palabras, puedes omitir dicho parámetro.
Sin limite de palabras
<?php $postTitle = 'Tutorial de PHP para usuarios novatos'; $seoFriendlyURL = generateSeoURL($postTitle); //La salida será: tutorial-de-php-para-usuarios-novatos
Con lÃmite de palabras
<?php $postTitle = 'Tutorial de PHP para usuarios novatos'; $seoFriendlyURL = generateSeoURL($postTitle, 3); //La salida será: tutorial-de-php
Fuente: codexworld.com