Las reglas de la auditoría, una a una
Cada hallazgo de Seotres lo produce una de estas 124 reglas. Son fijas y tienen versión: el mismo HTML da siempre el mismo resultado, y cada hallazgo dice qué regla y qué versión lo ha generado.
Las reglas marcadas «de sitio» (40) miran el conjunto de páginas y solo se aplican en el informe completo. Las demás se aplican a cada página, también en la auditoría gratis.
Conjunto de reglas 2026.12.05 · Cómo las usamos
Respuesta del servidor y redirecciones
- http.fetch_failedQue la página se pueda descargar: dominio, conexión segura y respuesta a tiempo.1.0.0
- http.no_httpsQue la página final se sirva con https.1.0.0
- http.redirect_chainQue no haya más de una redirección antes de llegar a la página final.1.0.0
- http.status_4xxQue la página no responda con un error de cliente (404, 410 y otros 4xx).1.0.0
- http.status_5xxQue la página no responda con un error del servidor (5xx).1.0.0
- http.temporary_redirectQue las redirecciones permanentes no se hagan con 302, 303 o 307.1.1.0
- soft404.probe_200Que una dirección inexistente responda 404 y no 200.1.0.0 · de sitio · orientativa
- soft404.probe_redirectQue una dirección inexistente dé el error sin pasar antes por una redirección.1.0.0 · de sitio · orientativa
- variants.hopsQue las variantes de la portada (http, https, con y sin www) lleguen a la principal en un solo salto.1.1.0 · de sitio
- variants.http_servedQue la versión http no sirva contenido sin redirigir a https.1.0.0 · de sitio
- variants.https_unreachableQue la versión https de la portada responda.1.0.0 · de sitio
- variants.not_convergingQue todas las variantes de la portada acaben en la misma dirección.1.0.1 · de sitio
- variants.server_errorQue ninguna variante de la portada responda con un error del servidor (5xx).1.0.0 · de sitio
Indexación y robots.txt
- index.bing_noarchiveSi la página usa noarchive, que la deja fuera de las respuestas de Copilot.1.0.0
- index.bing_nocacheSi la página usa nocache, que limita lo que Copilot puede usar de ella.1.0.0
- index.bing_nosnippetSi la página usa nosnippet o data-nosnippet.1.0.1
- index.noindexSi la página pide no aparecer en buscadores (noindex), en el HTML o en la cabecera.1.0.0
- index.robots_blockedSi robots.txt impide a Googlebot leer la página.1.0.0
- index.robots_server_errorQue robots.txt no responda con un error del servidor.1.0.0
- robots.ai_search_blockedSi robots.txt bloquea a los rastreadores de búsqueda con IA (OAI-SearchBot, PerplexityBot, Claude-SearchBot).1.0.0 · de sitio
- robots.bingbot_blockedQue robots.txt no prohíba todo el sitio a Bingbot.1.0.0 · de sitio
- robots.blocks_allQue robots.txt no prohíba todo el sitio a Googlebot.1.0.0 · de sitio
- robots.blocks_resourcesQue robots.txt no bloquee el CSS ni el JavaScript que necesitan las páginas.1.0.0 · de sitio
- robots.crawl_delaySi robots.txt pide a todos los robots esperar entre visitas (Crawl-delay).1.0.0 · de sitio
- robots.crawl_delay_otherSi robots.txt pide esperar entre visitas a robots concretos.1.0.0 · de sitio
- robots.missingQue el sitio tenga robots.txt.1.0.0 · de sitio
- robots.no_sitemapQue robots.txt indique dónde está el sitemap.1.0.0 · de sitio
- robots.server_errorQue el robots.txt del sitio no responda con un error del servidor.1.0.0 · de sitio
- robots.sitemap_relativeQue la línea Sitemap del robots.txt lleve la dirección completa.1.0.0 · de sitio
- robots.unavailableQue el robots.txt del sitio se pueda leer.1.0.2 · de sitio
Dirección principal (canonical)
- canonical.chainQue la canonical no apunte a otra página que a su vez declare otra canonical.1.0.0 · de sitio
- canonical.httpQue la canonical de una página https no apunte a http.1.0.0
- canonical.missingQue la página declare su dirección principal (canonical).1.0.0
- canonical.multipleQue haya una sola etiqueta canonical.1.0.0
- canonical.other_urlSi la canonical apunta a otra página.1.0.0
- canonical.relativeQue la canonical lleve la dirección completa y no una ruta relativa.1.0.0
- canonical.target_not_okQue la página señalada como canonical responda 200 y se pueda indexar.1.0.0 · de sitio
Sitemap
- sitemap.child_unreachableQue respondan todos los sitemaps del índice o de robots.txt.1.0.0 · de sitio
- sitemap.foreign_hostQue el sitemap solo liste direcciones de tu mismo dominio y versión.1.0.0 · de sitio
- sitemap.invalid_xmlQue el sitemap sea un XML válido.1.0.0 · de sitio
- sitemap.not_foundQue haya un sitemap en /sitemap.xml o declarado en robots.txt.1.0.1 · de sitio
- sitemap.priority_changefreqSi el sitemap usa priority o changefreq, que Google ignora.1.0.1 · de sitio
- sitemap.same_lastmodQue las fechas de modificación (lastmod) no sean todas iguales.1.1.1 · de sitio · orientativa
- sitemap.unreachableQue la dirección del sitemap responda.1.0.0 · de sitio
- sitemap.urls_not_200Que las direcciones del sitemap respondan 200.1.0.0 · de sitio
- sitemap.urls_not_200_fewQue las direcciones del sitemap respondan 200 (pocos casos).1.0.0 · de sitio
Título, descripción y contenido duplicado
- content.duplicate_descriptionsQue no haya varias páginas con la misma meta description.1.2.0 · de sitio
- content.duplicate_titlesQue no haya varias páginas con el mismo título.1.2.0 · de sitio
- meta.description_lengthQue la meta description no sea demasiado corta ni demasiado larga.1.0.0 · orientativa
- meta.description_missingQue la página tenga meta description.1.0.0
- meta.keywordsSi la página usa la etiqueta meta keywords, que los buscadores ignoran.1.0.0
- meta.title_longQue el título no sea tan largo como para cortarse.1.0.0 · orientativa
- meta.title_missingQue la página tenga etiqueta title.1.0.0
- meta.title_shortQue el título no sea demasiado corto.1.0.0 · orientativa
Estructura, idioma y móvil
- headings.h1_missingQue la página tenga un encabezado principal (H1).1.0.0
- headings.h1_multipleSi la página tiene varios H1.1.0.0
- headings.skipQue los encabezados no se salten niveles (de H2 a H4, por ejemplo).1.0.0
- html.langQue la página declare su idioma (atributo lang).1.0.0
- mobile.viewport_missingQue la página tenga la etiqueta viewport para móviles.1.0.0
- mobile.viewport_no_zoomQue la página permita hacer zoom.1.1.0
Versiones de idioma (hreflang)
- hreflang.invalid_codeQue los códigos de idioma y región del hreflang sean válidos.1.1.0
- hreflang.no_returnQue cada versión de idioma enlace de vuelta a la que la nombra.1.0.1 · de sitio
- hreflang.no_selfQue el conjunto hreflang incluya la propia página.1.0.1
- hreflang.no_x_defaultQue el conjunto hreflang tenga una entrada x-default.1.0.1
- hreflang.relative_hrefQue las direcciones del hreflang sean absolutas.1.0.0
- hreflang.target_not_okQue las versiones de idioma respondan 200 y se puedan indexar.1.0.1 · de sitio
Datos estructurados (JSON-LD)
- article.date_orderQue la fecha de modificación del artículo no sea anterior a la de publicación.1.0.0
- article.missing_fieldsQue el artículo tenga titular, fecha de publicación, autor e imagen.1.0.0
- article.no_max_image_previewQue el artículo permita la vista previa de imagen grande (max-image-preview:large).1.0.0
- article.paywall_no_haspartQue un artículo de pago marque qué parte está bloqueada.1.0.0
- local.address_incompleteQue la dirección del negocio tenga calle, localidad y país.1.0.0
- local.horario_mal_formadoQue el horario del negocio local use horas HH:MM y días de schema.org.1.0.0
- local.no_addressQue el negocio local tenga dirección en sus datos estructurados.1.0.0
- local.no_opening_hoursQue el negocio local tenga horario en sus datos estructurados.1.0.0
- local.no_telephoneQue el negocio local tenga teléfono en sus datos estructurados.1.0.0
- local.self_serving_reviewSi el negocio publica en su web valoraciones sobre sí mismo con datos estructurados.1.0.0
- local.telephone_sin_prefijoQue el teléfono del negocio local lleve el prefijo internacional (+34…).1.0.0
- product.duplicate_markupQue el producto no esté declarado en varios bloques de datos.1.0.0
- product.no_gtinQue el producto tenga código de barras (GTIN) o referencia del fabricante (MPN).1.0.0
- product.no_imageQue el producto tenga imagen en sus datos estructurados.1.0.0
- product.no_nameQue el producto tenga nombre en sus datos estructurados.1.0.0
- product.no_offersQue el producto tenga una oferta con precio y disponibilidad.1.0.0
- product.offer_no_availabilityQue la oferta del producto indique la disponibilidad.1.0.0
- product.offer_no_currencyQue la oferta del producto indique la divisa.1.0.0
- product.offer_no_priceQue la oferta del producto tenga precio.1.0.0
- schema.jsonld_invalidQue el JSON-LD de la página esté bien escrito.1.0.0
- schema.missing_typeQue cada bloque de datos estructurados declare de qué tipo es (@type).1.0.0
- schema.organization_homeQue la portada declare Organization o WebSite.1.0.0
- schema.retired_faqpageSi la página usa FAQPage, cuyo resultado enriquecido Google ya no muestra.1.0.0
- schema.retired_howtoSi la página usa HowTo, cuyo resultado enriquecido Google retiró.1.0.0
Imágenes
- images.altQue las imágenes tengan texto alternativo (alt).1.0.0
- images.alt_uselessQue el texto alternativo de las imágenes diga algo útil, no un nombre de archivo ni una palabra suelta.1.0.0 · orientativa
- images.dimensionsQue las imágenes declaren su ancho y su alto.1.1.0
- images.first_lazyQue la primera imagen visible no se cargue de forma diferida.1.0.0 · orientativa
Rendimiento del código
- perf.blocking_scriptsSi hay scripts síncronos en el head que bloquean el pintado.1.0.1 · orientativa
- perf.compressionQue el HTML llegue comprimido (gzip o brotli).1.0.0
- perf.dom_size_largeQue la página no tenga muchísimos elementos HTML.1.0.0 · orientativa
- perf.dom_size_mediumSi la página tiene bastantes elementos HTML.1.0.0 · orientativa
- perf.html_sizeQue el HTML no pase de 5 MB.1.0.0 · orientativa
- perf.response_timeQue el servidor responda en un tiempo razonable.1.0.0 · orientativa
Enlaces y JavaScript
- js.thin_htmlSi el HTML que entrega el servidor casi no tiene texto.1.0.0 · orientativa
- links.broken_internalQue los enlaces internos no lleven a páginas con error.1.0.0 · de sitio
- links.deep_pagesSi hay páginas a más de tres clics de la portada.1.0.0 · de sitio · orientativa
- links.internal_nofollowSi hay enlaces internos marcados con nofollow.1.0.0
- links.internal_redirectsQue los enlaces internos no apunten a direcciones que redirigen.1.0.0 · de sitio
- links.onclick_navSi la navegación depende de clics de JavaScript en lugar de enlaces <a href>.1.0.0 · orientativa
- links.orphan_sitemap_urlsSi hay páginas del sitemap a las que no lleva ningún enlace.1.0.0 · de sitio · orientativa
- links.parameter_urlsSi los enlaces internos generan muchas direcciones con parámetros de orden o filtro.1.0.1 · de sitio · orientativa
- links.parameter_urls_manySi los enlaces internos generan muchísimas direcciones con parámetros.1.0.1 · de sitio · orientativa
- links.tracking_paramsSi hay enlaces internos con parámetros de seguimiento (utm_source, gclid…).1.0.0 · de sitio
Cabeceras, icono y redes
- headers.cache_validatorsQue la respuesta lleve ETag o Last-Modified.1.0.0
- headers.clickjackingQue la respuesta impida que otra web la muestre dentro de un marco (X-Frame-Options o frame-ancestors).1.0.0
- headers.hstsQue la página se sirva con la cabecera HSTS (Strict-Transport-Security) y un max-age de al menos 6 meses.1.0.0
- headers.hsts_debilQue la cabecera HSTS dure al menos un año e incluya los subdominios.1.0.0
- headers.nosniffQue la respuesta lleve X-Content-Type-Options: nosniff.1.0.0
- headers.permissions_policyQue la respuesta declare una política de permisos del navegador (Permissions-Policy).1.0.0
- headers.referrer_policyQue la respuesta declare una política de referrer (Referrer-Policy).1.0.0
- headers.security_clickjackingQue la página no se pueda mostrar dentro de un marco de otra web.1.0.0
- headers.security_cspQue la página envíe una política de seguridad de contenido (CSP).1.0.0
- og.image_missingQue la página declare una imagen para compartir en redes (og:image).1.0.0
- og.relative_urlQue las direcciones de Open Graph (og:image, og:url) sean absolutas.1.0.0
- og.title_longQue el título para compartir en redes (og:title) no sea demasiado largo.1.0.0 · orientativa
- site.faviconQue la web declare su icono (favicon).1.0.0
- social.open_graphQue la página tenga título e imagen para compartir en redes (Open Graph).1.0.0
Las prácticas son las referencias de la guía de buenas prácticas en la que se basa cada regla. Los números solos son prácticas generales; los que llevan letra son capas específicas: A, buscadores con IA; B, Bing; E, tiendas online; L, negocios locales; P, medios y publicaciones. «Mitos» señala una creencia extendida que los buscadores desmienten.