Después de 30,000 a 40,000 pruebas noté que realmente enfrenta muchas situaciones diferentes contra las cuales hay que luchar.
Por supuesto, el punto de partida es mirar desde allí la etiqueta rel y buscarla, pero a lo largo del camino encontrará más y más situaciones que deberá cubrir.
En caso de que alguien mire este hilo e intente acercarse al 100% de perfección, cargué mi código (PHP) aquí: https://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.php. Esto es parte de un plugin de WordPress (GPL) que recupera Favicons, más o menos a pedido en ese momento, sin las limitaciones del estándar de Google (como se mencionó anteriormente). El código encuentra una cantidad sustancialmente mayor de iconos que el código de Google. Pero también incluye a google y a otros como proveedores de imágenes para atajar más iteraciones al tratar de recuperar el ícono.
Cuando lea el código, probablemente verá algunas situaciones que encontrará, p. base64 data uris, páginas redireccionando a 404 páginas o redirigiendo miles de veces, recuperando códigos de estado HTTP raros y teniendo que verificar la validez de todos los códigos de retorno HTTP posibles, los iconos mismos que tienen un tipo de mime incorrecto, etiquetas de actualización del lado del cliente, iconos en el carpeta raíz y ninguna en el código html, etc ... etc ... etc ...
Si sube un directorio, encontrará otras clases que luego almacenarán los iconos reales contra su url (y por supuesto, necesitará averiguar qué "ramas" usan el mismo favicón y cuáles no, y averiguar si pertenecen al mismo "dueño" o si son realmente partes diferentes pero bajo el mismo dominio.
Requiere iniciar sesión. – hsz
He actualizado la respuesta. – NVI
Cosas buenas ... me salvó algo de tiempo – 5hahiL