Yandex raspa Google y otros aprendizajes de SEO de la fuga del código fuente
Publicado: 2023-01-31“Fragmentos” del código base de Yandex se filtraron en línea la semana pasada. Al igual que Google, Yandex es una plataforma con muchos aspectos, como correo electrónico, mapas, un servicio de taxi, etc. La fuga de código presentaba fragmentos de todo.
De acuerdo con la documentación que contiene, el código base de Yandex se incorporó a un gran repositorio llamado Arcadia en 2013. El código base filtrado es un subconjunto de todos los proyectos en Arcadia y encontramos varios componentes relacionados con el motor de búsqueda en el "Kernel", "Library ”, “Robot”, “Buscar” y “ExtSearch”.
El movimiento no tiene precedentes. Desde los datos de consulta de búsqueda de AOL de 2006, algo tan material relacionado con un motor de búsqueda web nunca pasó al dominio público.
Aunque nos faltan los datos y muchos archivos a los que se hace referencia, esta es la primera instancia de una mirada tangible a cómo funciona un motor de búsqueda moderno a nivel de código.
Personalmente, no puedo olvidar lo fantástico que es el momento para poder ver el código cuando termino mi libro "La ciencia del SEO", donde hablo sobre la recuperación de información, cómo funcionan realmente los motores de búsqueda modernos y cómo para construir uno simple usted mismo.
En cualquier caso, he estado analizando el código desde el jueves pasado y cualquier ingeniero le dirá que no es suficiente tiempo para comprender cómo funciona todo. Entonces, sospecho que habrá varias publicaciones más mientras sigo jugando.
Antes de saltar, quiero agradecer a Ben Wills en Ontolo por compartir el código conmigo, señalarme la dirección inicial de dónde están las cosas buenas y acompañarme mientras desciframos las cosas. Siéntase libre de tomar la hoja de cálculo con todos los datos que hemos recopilado sobre los factores de clasificación aquí.
Además, gracias a Ryan Jones por profundizar y compartir algunos hallazgos clave conmigo a través de IM.
Bien, ¡manos a la obra!
No es el código de Google, entonces, ¿por qué nos importa?
Algunos creen que revisar este código base es una distracción y que no hay nada que afecte la forma en que toman decisiones comerciales. Me resulta curioso considerar que se trata de personas de la misma comunidad de SEO que utilizaron el modelo CTR de los datos de AOL de 2006 como el estándar de la industria para el modelado en cualquier motor de búsqueda durante muchos años.
Dicho esto, Yandex no es Google. Sin embargo, los dos son motores de búsqueda web de última generación que se han mantenido a la vanguardia de la tecnología.
Los ingenieros de software de ambas compañías asisten a las mismas conferencias (SIGIR, ECIR, etc.) y comparten hallazgos e innovaciones en recuperación de información, procesamiento/comprensión del lenguaje natural y aprendizaje automático. Yandex también tiene presencia en Palo Alto y Google anteriormente tenía presencia en Moscú.
Una búsqueda rápida en LinkedIn descubre unos cientos de ingenieros que han trabajado en ambas empresas, aunque no sabemos cuántos de ellos han trabajado realmente en Búsqueda en ambas empresas.
En una superposición más directa, Yandex también hace uso de las tecnologías de código abierto de Google que han sido fundamentales para las innovaciones en la búsqueda como TensorFlow, BERT, MapReduce y, en mucha menor medida, Protocol Buffers.
Entonces, si bien Yandex ciertamente no es Google, tampoco es un proyecto de investigación aleatorio del que estamos hablando aquí. Podemos aprender mucho sobre cómo se construye un motor de búsqueda moderno a partir de la revisión de este código base.
Como mínimo, podemos desengañarnos de algunas nociones obsoletas que aún impregnan las herramientas de SEO, como las proporciones de texto a código y el cumplimiento de W3C o la creencia general de que las 200 señales de Google son simplemente 200 características individuales dentro y fuera de la página en lugar de clases de factores compuestos que potencialmente usan miles de medidas individuales.
Un poco de contexto sobre la arquitectura de Yandex
Sin contexto o la capacidad de compilarlo, ejecutarlo y recorrerlo paso a paso con éxito, es muy difícil entender el código fuente.
Por lo general, los nuevos ingenieros obtienen documentación, recorridos y participan en la programación de pares para incorporarse a una base de código existente. Y hay cierta documentación de incorporación limitada relacionada con la configuración del proceso de compilación en el archivo de documentos. Sin embargo, el código de Yandex también hace referencia a wikis internos en todo momento, pero estos no se han filtrado y los comentarios en el código también son bastante escasos.
Afortunadamente, Yandex brinda información sobre su arquitectura en su documentación pública. También hay un par de patentes que han publicado en los EE. UU. que ayudan a arrojar un poco de luz. A saber:
- Método y sistema implementado por ordenador para buscar en un índice invertido que tiene una pluralidad de listas de publicación.
- Clasificador de resultados de búsqueda
A medida que investigaba Google para mi libro, desarrollé una comprensión mucho más profunda de la estructura de sus sistemas de clasificación a través de varios documentos técnicos, patentes y charlas de ingenieros en contra de mi experiencia en SEO. También he dedicado mucho tiempo a mejorar mi comprensión de las mejores prácticas generales de recuperación de información para los motores de búsqueda web. No sorprende que, de hecho, haya algunas mejores prácticas y similitudes en juego con Yandex.
La documentación de Yandex analiza un sistema de rastreo de doble distribución. Uno para rastreo en tiempo real llamado "Orange Crawler" y otro para rastreo general.
Históricamente, se dice que Google ha tenido un índice estratificado en tres cubos, uno para albergar el rastreo en tiempo real, uno para rastrear regularmente y otro para rastrear raramente. Este enfoque se considera una mejor práctica en RI.
Yandex y Google difieren a este respecto, pero se mantiene la idea general del rastreo segmentado impulsado por una comprensión de la frecuencia de actualización.
Una cosa que vale la pena mencionar es que Yandex no tiene un sistema de renderizado separado para JavaScript. Dicen esto en su documentación y, aunque tienen un sistema basado en Webdriver para pruebas de regresión visual llamado Gemini, se limitan al rastreo basado en texto.
La documentación también analiza una estructura de base de datos fragmentada que divide las páginas en un índice invertido y un servidor de documentos.
Al igual que la mayoría de los otros motores de búsqueda web, el proceso de indexación crea un diccionario, almacena en caché las páginas y luego coloca los datos en el índice invertido de modo que se representan los bigramas y trigamas y su ubicación en el documento.
Esto difiere de Google en que pasaron a la indexación basada en frases, lo que significa n-gramas que pueden ser mucho más largos que los trigramas hace mucho tiempo.
Sin embargo, el sistema Yandex también utiliza BERT en su canalización, por lo que, en algún momento, los documentos y las consultas se convierten en incrustaciones y se emplean técnicas de búsqueda del vecino más cercano para la clasificación.
El proceso de clasificación es donde las cosas comienzan a ponerse más interesantes.
Yandex tiene una capa llamada Metasearch donde se sirven los resultados de búsqueda populares en caché después de que procesan la consulta. Si los resultados no se encuentran allí, la consulta de búsqueda se envía a una serie de miles de máquinas diferentes en la capa de búsqueda básica simultáneamente. Cada uno crea una lista de publicación de documentos relevantes y luego la devuelve a MatrixNet, la aplicación de red neuronal de Yandex para volver a clasificar, para construir el SERP.
Basado en videos en los que los ingenieros de Google han hablado sobre la infraestructura de la Búsqueda, ese proceso de clasificación es bastante similar a la Búsqueda de Google. Hablan de que la tecnología de Google se encuentra en entornos compartidos donde hay varias aplicaciones en cada máquina y los trabajos se distribuyen entre esas máquinas en función de la disponibilidad de potencia informática.
Uno de los casos de uso es exactamente este, la distribución de consultas a una variedad de máquinas para procesar rápidamente los fragmentos de índice relevantes. Calcular las listas de publicación es el primer lugar en el que debemos considerar los factores de clasificación.
Hay 17,854 factores de clasificación en la base de código
El viernes siguiente a la filtración, el inimitable Martin MacDonald compartió con entusiasmo un archivo del código base llamado web_factors_info/factors_gen.in. El archivo proviene del archivo "Kernel" en la fuga de código base y presenta 1,922 factores de clasificación.
Naturalmente, la comunidad de SEO ha utilizado ese número y ese archivo para difundir con entusiasmo las noticias sobre los conocimientos que contiene. Mucha gente tradujo las descripciones y creó herramientas o Hojas de cálculo de Google y ChatGPT para dar sentido a los datos. Todos los cuales son grandes ejemplos del poder de la comunidad. Sin embargo, el 1922 representa solo uno de los muchos conjuntos de factores de clasificación en la base de código.
Una inmersión más profunda en el código base revela que existen numerosos archivos de factores de clasificación para diferentes subconjuntos de los sistemas de clasificación y procesamiento de consultas de Yandex.
Revisándolos, encontramos que en realidad hay 17,854 factores de clasificación en total. Incluidos en esos factores de clasificación hay una variedad de métricas relacionadas con:
- Clics.
- Tiempo de permanencia.
- Aprovechando el equivalente de Google Analytics de Yandex, Metrika.
También hay una serie de portátiles Jupyter que tienen 2000 factores adicionales además de los del código principal. Presumiblemente, estos portátiles Jupyter representan pruebas en las que los ingenieros están considerando factores adicionales para agregar a la base de código. Nuevamente, puede revisar todas estas funciones con los metadatos que recopilamos de todo el código base en este enlace.
La documentación de Yandex aclara además que tienen tres clases de factores de clasificación: estáticos, dinámicos y aquellos relacionados específicamente con la búsqueda del usuario y cómo se realizó. En sus propias palabras:
En el código base, estos se indican en los archivos de factores de rango con las etiquetas TG_STATIC y TG_DYNAMIC. Los factores relacionados con la búsqueda tienen varias etiquetas, como TG_QUERY_ONLY, TG_QUERY, TG_USER_SEARCH y TG_USER_SEARCH_ONLY.
Si bien hemos descubierto un potencial de 18k factores de clasificación para elegir, la documentación relacionada con MatrixNet indica que la puntuación se crea a partir de decenas de miles de factores y se personaliza en función de la consulta de búsqueda.
Esto indica que el entorno de clasificación es muy dinámico, similar al entorno de Google. De acuerdo con la patente "Marco para evaluar funciones de puntuación" de Google, durante mucho tiempo han tenido algo similar donde se ejecutan múltiples funciones y se devuelve el mejor conjunto de resultados.
Finalmente, considerando que la documentación hace referencia a decenas de miles de factores de clasificación, también debemos tener en cuenta que hay muchos otros archivos a los que se hace referencia en el código que faltan en el archivo. Por lo tanto, es probable que ocurran más cosas que no podemos ver. Esto se ilustra aún más al revisar las imágenes en la documentación de incorporación que muestra otros directorios que no están presentes en el archivo.
Por ejemplo, sospecho que hay más información relacionada con el DSSM en el directorio /semantic-search/.
La ponderación inicial de los factores de clasificación
Primero operé bajo la suposición de que el código base no tenía ningún peso para los factores de clasificación. Luego me sorprendió ver que el archivo nav_linear.h en el directorio /search/relevance/ presenta los coeficientes iniciales (o pesos) asociados con los factores de clasificación en pantalla completa.
Esta sección del código destaca 257 de los más de 17 000 factores de clasificación que hemos identificado. ( Felicitaciones a Ryan Jones por sacar estos y alinearlos con las descripciones de los factores de clasificación).
Para mayor claridad, cuando piensa en un algoritmo de motor de búsqueda, probablemente esté pensando en una ecuación matemática larga y compleja mediante la cual cada página se califica en función de una serie de factores. Si bien eso es una simplificación excesiva, la siguiente captura de pantalla es un extracto de dicha ecuación. Los coeficientes representan la importancia de cada factor y la puntuación calculada resultante es lo que se usaría para puntuar las páginas de selección según su relevancia.
El hecho de que estos valores estén codificados sugiere que ciertamente este no es el único lugar donde ocurre la clasificación. En su lugar, esta función es más probable donde se realiza la puntuación de relevancia inicial para generar una serie de listas de publicación para cada fragmento que se considera para la clasificación. En la primera patente enumerada anteriormente, hablan de esto como un concepto de relevancia independiente de la consulta (QIR) que luego limita los documentos antes de revisarlos para determinar la relevancia específica de la consulta (QSR).
Las listas de publicación resultantes luego se entregan a MatrixNet con funciones de consulta para comparar. Entonces, si bien no conocemos los detalles de las operaciones posteriores (todavía), es valioso comprender estos pesos porque le indican los requisitos para que una página sea elegible para el conjunto de consideración.
Sin embargo, eso plantea la siguiente pregunta: ¿qué sabemos sobre MatrixNet?
Hay un código de clasificación neuronal en el archivo Kernel y hay numerosas referencias a MatrixNet y "mxnet", así como muchas referencias a modelos semánticos estructurados profundos (DSSM) en todo el código base.
La descripción de uno de los factores de clasificación FI_MATRIXNET indica que MatrixNet se aplica a todos los factores.
Factor {
Índice: 160
Nombre de Cpp: "FI_MATRIXNET"
Nombre: “MatrixNet”
Etiquetas: [TG_DOC, TG_DYNAMIC, TG_TRANS, TG_NOT_01, TG_REARR_USE, TG_L3_MODEL_VALUE, TG_FRESHNESS_FROZEN_POOL]
Descripción: “MatrixNet se aplica a todos los factores: la fórmula”
}
También hay un montón de archivos binarios que pueden ser los propios modelos preentrenados, pero me llevará más tiempo desentrañar esos aspectos del código.
Lo que queda claro de inmediato es que hay varios niveles de clasificación (L1, L2, L3) y hay una variedad de modelos de clasificación que se pueden seleccionar en cada nivel.
El archivo selection_rankings_model.cpp sugiere que se pueden considerar diferentes modelos de clasificación en cada capa a lo largo del proceso. Así es básicamente como funcionan las redes neuronales. Cada nivel es un aspecto que completa las operaciones y sus cómputos combinados producen la lista reclasificada de documentos que finalmente aparece como un SERP. Seguiré con una inmersión profunda en MatrixNet cuando tenga más tiempo. Para aquellos que necesitan un adelanto, consulte la patente del clasificador de resultados de búsqueda.
Por ahora, echemos un vistazo a algunos factores de clasificación interesantes.
Los 5 principales factores de clasificación inicial ponderados negativamente
La siguiente es una lista de los factores de clasificación inicial con mayor ponderación negativa con sus pesos y una breve explicación basada en sus descripciones traducidas del ruso.
- FI_ADV: -0.2509284637 -Este factor determina que hay publicidad de cualquier tipo en la página y emite la penalización ponderada más alta para un solo factor de clasificación.
- FI_DATER_AGE: -0.2074373667: este factor es la diferencia entre la fecha actual y la fecha del documento determinada por una función de fecha. El valor es 1 si la fecha del documento es la misma que la actual, 0 si el documento tiene 10 años o más, o si la fecha no está definida. Esto indica que Yandex tiene preferencia por el contenido antiguo.
- FI_QURL_STAT_POWER: -0.1943768768: este factor es el número de impresiones de URL relacionadas con la consulta. Parece como si quisieran degradar una URL que aparece en muchas búsquedas para promover la diversidad de resultados.
- FI_COMM_LINKS_SEO_HOSTS: -0.1809636391: este factor es el porcentaje de enlaces entrantes con texto de anclaje "comercial". El factor vuelve a 0,1 si la proporción de dichos enlaces es superior al 50 %; de lo contrario, se establece en 0.
- FI_GEO_CITY_URL_REGION_COUNTRY: -0.168645758 – Este factor es la coincidencia geográfica del documento y el país desde el que el usuario buscó. Este no tiene mucho sentido si 1 significa que el documento y el país coinciden.
En resumen, estos factores indican que, para obtener la mejor puntuación, debe:
- Evite los anuncios.
- Actualice el contenido anterior en lugar de crear nuevas páginas.
- Asegúrese de que la mayoría de sus enlaces tengan texto de anclaje de marca.
Todo lo demás en esta lista está fuera de su control.
Los 5 principales factores de clasificación inicial ponderados positivamente
A modo de seguimiento, aquí hay una lista de los factores de clasificación positivos más ponderados.
- FI_URL_DOMAIN_FRACTION: +0.5640952971: este factor es una extraña superposición de enmascaramiento de la consulta frente al dominio de la URL. El ejemplo dado es la lotería de Chelyabinsk, que se abrevia como chelloto. Para calcular este valor, Yandex encuentra tres letras que están cubiertas (che, hel, lot, olo), ve qué proporción de todas las combinaciones de tres letras hay en el nombre de dominio.
- FI_QUERY_DOWNER_CLICKS_COMBO: +0.3690780393 – La descripción de este factor es que está “inteligentemente combinado de FRC y pseudo-CTR”. No hay una indicación inmediata de lo que es FRC.
- FI_MAX_WORD_HOST_CLICKS: +0.3451158835 – Este factor es la posibilidad de hacer clic en la palabra más importante del dominio. Por ejemplo, para todas las consultas en las que aparece la palabra "wikipedia", haga clic en las páginas de wikipedia.
- FI_MAX_WORD_HOST_YABAR: +0.3154394573 – La descripción del factor dice “la palabra de consulta más característica correspondiente al sitio, según la barra”. Supongo que esto significa la palabra clave más buscada en la barra de herramientas de Yandex asociada al sitio.
- FI_IS_COM: +0.2762504972 – El factor es que el dominio es un .COM.
En otras palabras:
- Juega juegos de palabras con tu dominio.
- Asegúrate de que sea un punto com.
- Anime a las personas a buscar sus palabras clave de destino en la barra de Yandex.
- Siga generando clics.
Hay muchos factores inesperados de clasificación inicial
Lo que es más interesante en los factores de clasificación ponderados iniciales son los inesperados. La siguiente es una lista de diecisiete factores que se destacaron.
- FI_PAGE_RANK: +0.1828678331 – PageRank es el decimoséptimo factor ponderado más alto en Yandex. Anteriormente, eliminaron por completo los enlaces de su sistema de clasificación, por lo que no sorprende lo bajo que está en la lista.
- FI_SPAM_KARMA: +0.00842682963: el karma de spam lleva el nombre de "antispammers" y es la probabilidad de que el host sea spam; basado en información Whois
- FI_SUBQUERY_THEME_MATCH_A: +0.1786465163: qué tan cerca coinciden temáticamente la consulta y el documento. Este es el decimonoveno factor ponderado más alto.
- FI_REG_HOST_RANK: +0.1567124399 – Yandex tiene un factor de clasificación de host (o dominio).
- FI_URL_LINK_PERCENT: +0.08940421124 – Proporción de enlaces cuyo texto ancla es una URL (en lugar de texto) respecto al número total de enlaces.
- FI_PAGE_RANK_UKR: +0.08712279101 – Hay un PageRank ucraniano específico
- FI_IS_NOT_RU: +0.08128946612 – Es positivo si el dominio no es .RU. Aparentemente, el motor de búsqueda ruso no confía en los sitios rusos.
- FI_YABAR_HOST_AVG_TIME2: +0.07417219313: este es el tiempo de permanencia promedio según lo informado por YandexBar
- FI_LERF_LR_LOG_RELEV: +0.06059448504: esta es la relevancia del enlace según la calidad de cada enlace
- FI_NUM_SLASHES: +0.05057609417 – El número de barras en la URL es un factor de clasificación.
- FI_ADV_PRONOUNS_PORTION: -0.001250755075 – La proporción de sustantivos pronombre en la página.
- FI_TEXT_HEAD_SYN: -0.01291908335 – La presencia de palabras [query] en el encabezado, teniendo en cuenta los sinónimos
- FI_PERCENT_FREQ_WORDS: -0.02021022114 – El porcentaje del número de palabras, que son las 200 palabras más frecuentes del idioma, del número de todas las palabras del texto.
- FI_YANDEX_ADV: -0.09426121965: al ser más específico con el disgusto hacia los anuncios, Yandex penaliza las páginas con anuncios de Yandex.
- FI_AURA_DOC_LOG_SHARED: -0.09768630485: el logaritmo del número de tejas (áreas de texto) en el documento que no son únicas.
- FI_AURA_DOC_LOG_AUTHOR: -0.09727752961 – El logaritmo del número de tejas en las que se reconoce como autor a este propietario del documento.
- FI_CLASSIF_IS_SHOP: -0.1339319854 – Aparentemente, Yandex te va a dar menos amor si tu página es una tienda.
La conclusión principal de la revisión de estos factores de clasificación impares y la variedad de los disponibles en la base de código de Yandex es que hay muchas cosas que podrían ser un factor de clasificación.
Sospecho que las "200 señales" reportadas por Google son en realidad 200 clases de señal donde cada señal es un compuesto construido de muchos otros componentes. De la misma manera que Google Analytics tiene dimensiones con muchas métricas asociadas, es probable que la Búsqueda de Google tenga clases de señales de clasificación compuestas por muchas funciones.
Yandex raspa Google, Bing, YouTube y TikTok
El código base también revela que Yandex tiene muchos analizadores para otros sitios web y sus respectivos servicios. Para los occidentales, los más notables son los que he enumerado en el encabezado anterior. Además, Yandex tiene analizadores para una variedad de servicios con los que no estaba familiarizado, así como para sus propios servicios.
Lo que es inmediatamente evidente es que los analizadores están completos. Se extrae cada componente significativo del SERP de Google. De hecho, cualquiera que esté considerando raspar cualquiera de estos servicios haría bien en revisar este código.
Hay otro código que indica que Yandex está utilizando algunos datos de Google como parte de los cálculos del DSSM, pero los 83 factores de clasificación nombrados por Google dejan en claro que Yandex se ha apoyado bastante en los resultados de Google.
Obviamente, Google nunca haría el movimiento de Bing de copiar los resultados de otro motor de búsqueda ni depender de uno para los cálculos de clasificación principales.
Yandex tiene límites superiores anti-SEO para algunos factores de clasificación
Los factores de clasificación 315 tienen umbrales en los que cualquier valor calculado más allá de eso indica al sistema que esa característica de la página está sobreoptimizada. 39 de estos factores de clasificación son parte de los factores ponderados inicialmente que pueden evitar que una página se incluya en la lista de publicaciones iniciales. Puede encontrarlos en la hoja de cálculo a la que he vinculado anteriormente filtrando por el Coeficiente de rango y la columna Anti-SEO.
Conceptualmente, no es descabellado esperar que todos los motores de búsqueda modernos establezcan umbrales en ciertos factores que los SEO han abusado históricamente, como el texto de anclaje, el CTR o el relleno de palabras clave. Por ejemplo, se dijo que Bing aprovechaba el uso abusivo de las metapalabras clave como un factor negativo.
Yandex impulsa “Anfitriones vitales”
Yandex tiene una serie de mecanismos de impulso a lo largo de su base de código. Estas son mejoras artificiales a ciertos documentos para garantizar que obtengan una puntuación más alta cuando se los considere para la clasificación.
A continuación se muestra un comentario del "asistente de impulso" que sugiere que los archivos más pequeños se benefician más del algoritmo de impulso.
Hay varios tipos de impulsos; He visto un impulso relacionado con los enlaces y también he visto una serie de "HandJobBoosts" que solo puedo suponer que es una traducción extraña de cambios "manuales".
Uno de estos impulsos que encontré particularmente interesante está relacionado con "Anfitriones vitales". Donde un anfitrión vital puede ser cualquier sitio especificado. Mencionado específicamente en las variables es NEWS_AGENCY_RATING, lo que me lleva a creer que Yandex da un impulso que sesga sus resultados hacia ciertas organizaciones de noticias.
Sin entrar en geopolítica, esto es muy diferente de Google en el sentido de que han sido inflexibles en no introducir sesgos como este en sus sistemas de clasificación.
La estructura del servidor de documentos.
El código base revela cómo se almacenan los documentos en el servidor de documentos de Yandex. Esto es útil para comprender que un motor de búsqueda no solo hace una copia de la página y la guarda en su caché, sino que captura varias características como metadatos para luego usarlas en el proceso de clasificación posterior.
La siguiente captura de pantalla destaca un subconjunto de esas características que son particularmente interesantes. Otros archivos con consultas SQL sugieren que el servidor de documentos tiene cerca de 200 columnas, incluido el árbol DOM, la longitud de las oraciones, el tiempo de recuperación, una serie de fechas y la puntuación antispam, la cadena de redireccionamiento y si el documento está traducido o no. La lista más completa que he encontrado está en /robot/rthub/yql/protos/web_page_item.proto.
Lo que es más interesante en el subconjunto aquí es la cantidad de simhashes que se emplean. Los Simhashes son representaciones numéricas de contenido y los motores de búsqueda los usan para realizar comparaciones ultrarrápidas para la determinación de contenido duplicado. Hay varias instancias en el archivo del robot que indican que el contenido duplicado se degrada explícitamente.
Además, como parte del proceso de indexación, la base de código incluye TF-IDF, BM25 y BERT en su proceso de procesamiento de texto. No está claro por qué existen todos estos mecanismos en el código porque hay cierta redundancia al usarlos todos.
Factores de enlace y priorización
La forma en que Yandex maneja los factores de enlace es particularmente interesante porque previamente deshabilitaron su impacto por completo. El código base también revela mucha información sobre los factores de enlace y cómo se priorizan los enlaces.
La calculadora de spam de enlaces de Yandex tiene 89 factores que analiza. Cualquier cosa marcada como SF_RESERVED está obsoleta. Cuando se proporcione, puede encontrar las descripciones de estos factores en la Hoja de Google vinculada anteriormente.
En particular, Yandex tiene un rango de host y algunos puntajes que parecen vivir a largo plazo después de que un sitio o página desarrolla una reputación de spam.
Otra cosa que hace Yandex es revisar la copia en un dominio y determinar si hay contenido duplicado con esos enlaces. Pueden ser ubicaciones de enlaces en todo el sitio, enlaces en páginas duplicadas o simplemente enlaces con el mismo texto de anclaje que proviene del mismo sitio.
Esto ilustra lo trivial que es descontar múltiples enlaces de la misma fuente y aclara lo importante que es apuntar a más enlaces únicos de fuentes más diversas.
¿Qué podemos aplicar de Yandex a lo que sabemos de Google?
Naturalmente, esta sigue siendo la pregunta en la mente de todos. Si bien ciertamente hay muchos análogos entre Yandex y Google, sinceramente, solo un ingeniero de software de Google que trabaje en la Búsqueda podría responder definitivamente esa pregunta.
Sin embargo, esa es la pregunta equivocada.
Realmente, este código debería ayudarnos a expandir nuestro pensamiento sobre la búsqueda moderna. Gran parte de la comprensión colectiva de la búsqueda se basa en lo que la comunidad de SEO aprendió a principios de la década de 2000 a través de pruebas y de la boca de los ingenieros de búsqueda cuando la búsqueda era mucho menos opaca. Desafortunadamente, eso no ha seguido el ritmo acelerado de la innovación.
Los conocimientos de las muchas características y factores de la fuga de Yandex deberían generar más hipótesis de cosas para probar y considerar para clasificar en Google. También deberían introducir más elementos que puedan analizarse y medirse mediante el rastreo SEO, el análisis de enlaces y las herramientas de clasificación.
Por ejemplo, una medida de la similitud del coseno entre las consultas y los documentos que usan incrustaciones de BERT podría ser valiosa para comprender las páginas de la competencia, ya que es algo que los motores de búsqueda modernos están haciendo.
De la misma forma en que los registros de búsqueda de AOL nos permitieron adivinar la distribución de clics en SERP, el código base de Yandex nos aleja de lo abstracto a lo concreto y nuestras declaraciones "depende" pueden calificarse mejor.
Con ese fin, este código base es un regalo que seguirá dándose. Solo ha pasado un fin de semana y ya hemos obtenido algunas ideas muy convincentes de este código.
Anticipo que algunos ingenieros de SEO ambiciosos con mucho más tiempo libre seguirán investigando y tal vez incluso completen lo suficiente de lo que falta para compilar esto y hacerlo funcionar. También creo que los ingenieros de los diferentes motores de búsqueda también están revisando y analizando innovaciones de las que pueden aprender y agregar a sus sistemas.
Simultáneamente, los abogados de Google probablemente estén redactando agresivas cartas de cese y desistimiento relacionadas con todo el raspado.
Estoy ansioso por ver la evolución de nuestro espacio impulsada por personas curiosas que maximizarán esta oportunidad.
Pero, bueno, si obtener información del código real no es valioso para usted, puede volver a hacer algo más importante, como discutir sobre subdominios versus subdirectorios.
Las opiniones expresadas en este artículo pertenecen al autor invitado y no necesariamente a Search Engine Land. Los autores del personal se enumeran aquí.