Hola,
pero google no solo usa google bot, si detecta con analytics, chrome u algo que pasa eso... acabara chapando
if( preg_match( '/Googlebot/i', $_SERVER['HTTP_USER_AGENT'] ) ) {
$hostname = gethostbyaddr( $_SERVER['REMOTE_ADDR'] );
if( preg_match( '/googlebot\.com$/', $hostname ) && gethostbyname( $hostname ) === $_SERVER['REMOTE_ADDR'] ) {
#It's Googlebot, do something!
}
}
No es mala técnica, pero como dice Julio lo puede detectar con Analytics y con Chrome también, aunque con Chrome si esto tiene algún tipo de efecto daría igual que sea con Javascript que desde el backend...
La técnica más adecuada desde mi punto de vista es hacer 'DNS inverso' o como se traduzca del Inglés (Reverse DNS lookup) desde el backend y comprobar si quien nos visita es Google, si es no hacer nada y por el contrario detectar el dispositivo del usuario ya sea vía Javascript o desde el backend y hacer la redirección.
Por si a alguien le sirve de ayuda aquí un fragmento para detectar a Google en PHP:
PHP:if( preg_match( '/Googlebot/i', $_SERVER['HTTP_USER_AGENT'] ) ) { $hostname = gethostbyaddr( $_SERVER['REMOTE_ADDR'] ); if( preg_match( '/googlebot\.com$/', $hostname ) && gethostbyname( $hostname ) === $_SERVER['REMOTE_ADDR'] ) { #It's Googlebot, do something! } }
No es mala técnica, pero como dice Julio lo puede detectar con Analytics y con Chrome también, aunque con Chrome si esto tiene algún tipo de efecto daría igual que sea con Javascript que desde el backend...
La técnica más adecuada desde mi punto de vista es hacer 'DNS inverso' o como se traduzca del Inglés (Reverse DNS lookup) desde el backend y comprobar si quien nos visita es Google, si es no hacer nada y por el contrario detectar el dispositivo del usuario ya sea vía Javascript o desde el backend y hacer la redirección.
Por si a alguien le sirve de ayuda aquí un fragmento para detectar a Google en PHP:
PHP:if( preg_match( '/Googlebot/i', $_SERVER['HTTP_USER_AGENT'] ) ) { $hostname = gethostbyaddr( $_SERVER['REMOTE_ADDR'] ); if( preg_match( '/googlebot\.com$/', $hostname ) && gethostbyname( $hostname ) === $_SERVER['REMOTE_ADDR'] ) { #It's Googlebot, do something! } }
Pues a mí se me ocurre otra fórmula:
Tener dos instalaciones de worpdress: desktop y mobile.
Mediante tablas federated ambos mostrarán el mismo contenido.
La instalación mobile la tendremos desactivada para el rastreo en buscadores.
Al entrar en la web general, que es la que está indexada, si el user procede de móvil será redirigido a una web que tiene exactamente el mismo contenido que la web original. Esto es bueno a ojos de google, ya que no estamos realizando cloacking: respetamos las directrices de google para webmaster tools. Si podemos hacer que la redirección sea fuerte del estilo tuweb.com/post-indexado -> m.tuweb.com/post-indexado mucho mejor.
El sitio móvil, que estará bloqueado al rastreo por medio de robots.txt, será el que tenga redirección móvil. Si algún sitio puede ser penalizado por cloacking será el sitio móvil, pero como no está indexado en google nos dará igual. En cambio, el sitio general permanece impecable y cumpliendo al 100% con las directrices de google para webmasters.
Y listo.
Así tenia yo antes dos webs y fueron las primeras que se llevo Google por delante. Estas haciendo una redirección de todas formas y da igual que las restringas por el Robots.txt. Google dice que no, pero.. ¿de verdad ye crees que no las rastrea?
Es obvio que sí las tendrá, pero no sé si para rastrear la web, así mismo también tendrá bots que 'interpreten' Javascript al igual que interpretan los display:none etc.te crees que el gigante de Internet no va a tener IP's sin su hostname?
Estás haciendo una redirección pero coherente con sus directivas para webmasters a una web con exactamente el mismo contenido. No veo el problema.
La mejor forma de hacerlo es vía .htaccess añadiendo lo siguiente:
RewriteEngine on
RewriteBase /
# Check if this is the noredirect query string
RewriteCond %{QUERY_STRING} (^|&)m=0(&|$)
# Set a cookie, and skip the next rule
RewriteRule ^ - [CO=mredir:0:[url]www.ejemplo.com][/url]
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTProfile} !^$ [OR]
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]
# Check if we're not already on the mobile site
RewriteCond %{HTTP_HOST} !^m\.
# Can not read and write cookie in same request, must duplicate condition
RewriteCond %{QUERY_STRING} !(^|&)m=0(&|$)
# Check to make sure we haven't set the cookie before
RewriteCond %{HTTP_COOKIE} !^.*mredir=0.*$ [NC]
# Now redirect to the mobile site
RewriteRule ^ nosolohoteles.com [R,L]
Esta buenisimo, muchas gracias!!!
A ver si alguien que lo haya probado comenta que tal le va. Aunque estoy seguro que bien :sisi1: