¿Existe una forma programática de verificar si un sitio tiene una versión móvil o un diseño web receptivo?

No hay una manera fácil de determinar si un sitio web está diseñado para dispositivos móviles, pero puede verificar si se ve diferente en muchos dispositivos.

El diseño web receptivo se basa completamente en el marcado. En la mayoría de los casos, el servidor entrega los mismos activos a todos los dispositivos.

Google tiene una herramienta para probar esto: prueba compatible con dispositivos móviles

Si quieres bricolaje, es un poco más de trabajo. Puede escribir algunas secuencias de comandos de automatización con Selenium, PhantomJS u otras interfaces de navegador programables.

  • Verifique la presencia de la metaetiqueta de vista completa en la fuente HTML, la mayoría de las páginas receptivas tienen esto (o una variante).
  • Compruebe si hay consultas de medios en las hojas de estilo.
  • Cambie la ventana gráfica programáticamente y compare el antes / después de los estilos calculados.

La versión móvil suele ser una página web separada (m.ejemplo.com, ejemplo.com/m/…) que se sirve para dispositivos específicos. Una estrategia típica del servidor es verificar la cadena de agente de usuario del cliente en el dominio predeterminado y enviar una redirección 30x a la versión móvil.

Esta herramienta hace eso:
Verifique su código de estado 301 vs 302

Puede probar esto enviando solicitudes curl con diferentes agentes de usuario, donde -A es la cadena del agente de usuario.

  curl -A "Mozilla / 5.0 (iPhone; CPU iPhone OS 6_0 como Mac OS X) AppleWebKit / 536.26 (KHTML, like Gecko) Versión / 6.0 Mobile / 10A5376e Safari / 8536.25" -k --head http: //www.example .com

Esté atento al código de estado HTTP.

Siempre lo compruebo yo mismo usando PageSpeed ​​Insights de Google. Básicamente se explica por sí mismo.

Espero que esto haya ayudado.

Cambia el tamaño de la ventana de tu navegador.

Editar: para verificar mediante programación, es posible que desee analizar las hojas de estilo para consultas de medios.