¿Indexa Google las páginas PHP?

En teoría sí, pero por alguna razón a mi no.

Encontré este artículo que trata el tema de la indexación de páginas PHP por parte de Google y esclarece muchos de los mitos.

Ahí se explica que no debería haber ningún problema con las páginas generadas dinámicamente, pero en el caso de eggBlog, no parece indexar los artículos. En este caso se accede a los artículos a través de la página news.php y una ID, por ejemplo:

http://tu-dominio.com/news.php?id=12

Parece que el consenso general es que Google tiene problemas, o se esfuerza menos, en indexar páginas que tienes más de 2 parámetros, pero en mi caso solo tengo 1, el id, y no debería dar problemas…

El caso es que en el foro de eggBlog encontré un hilo en el que comentaban como sustituir la utilización de IDs por Friendly URLs. El usuario Faris se curró una modificación para el blog para implementar las Friendly URLs

Tras probar la modificación, estaba casi a punto, pero daba un fallo al intentar ir a los enlaces. Parecía cosa del .htaccess, así que tras investigar un poco encontré la respuesta. Solo hacía falta añadir esta linea:

RewriteBase /

El código completo del .htaccess por si alguien lo necesita es el siguiente:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule .*-([0-9]+).htm$ news.php?id=$1 [L]
RewriteRule .*-([0-9]+)/$ news.php?id=$1
RewriteRule (.*)-([0-9]+)$ $1-$2/ [R]
RewriteRule .*/([0-9]+)/$ news.php?id=$1
RewriteRule (.*)/([0-9]+)$ $1/$2/ [R]

Y aquí la página que suelo usar para trabajar experimentar con expresiones regulares.

El resultado final es que los enlaces a la derecha que van a los articulos muestran en la URL el nombre del artículo y el rastreador de Google debería de entrar en todos. A ver que tal en la próxima indexación…

[ACTUALIZACIÓN 15/02/2011]

Es irónico que la entrada que habla sobre Friendly URLs tenga una que justamente falla. ¿El problema? Pues que se está utilizando el título de la entrada como URL y ahí tengo un bonito interrogante (?), que se usa para pasar parámetros… y peta. Al principio pensaba que también estaban afectando el otro interrogante y el acento, pero solo quitando el interrogante de cierre se ha solucionado, aunque la URL ya no quedaba “bonita” ya que los caracteres especiales se sustituían por su código, por lo que he acabado sustituyendolos todos.

El método eb\_links\_article del fichero _lib/global.php queda así:

// F4ris - 20090708 - Function to produce SEO friendly links, dependant on config flag.
function eb_links_article( $title,$id ) {
    global $config;
    if( $config['seo_flag'] == 1 ) {
        $unsuportedChars = array( "á", "é", "í", "ó", "ú", "¿", "?" );
        $suportedChars = array("a", "e", "i", "o", "u", "", "");
        $tmpTitle = str_replace( $unsuportedChars, $suportedChars, $title );
        $link = $config['domain'] . urlencode( str_replace(" ", "-", str_replace( " - ", "-", $tmpTitle ) ) ) . "-" . $id . ".htm";
    } else {
        $link = $config['domain'] . "news.php?id=" . $id;
    }
    return $link;
}