Comprobador gratuito de código de estado HTTP y redirecciones
Introduce cualquier URL y ve qué responde el servidor, cada redirección en el camino, lo que ven Google y los bots de IA — y el código exacto para corregir lo que está mal.
El comprobador sigue una URL salto a salto, como lo haría un navegador, y registra el código de estado, cabeceras y tiempo de cada paso. También prueba las versiones http, https, www y sin www del sitio, compara seis visitantes desde un navegador normal con ClaudeBot, lee todas las etiquetas SEO de la página final y su robots.txt, y genera el código de redirección para Laravel, PHP, Node.js, Nginx, Apache, WordPress y ocho plataformas más. Salta a cómo usarlo, todos los códigos de estado, código de redirección o la FAQ.
Cómo comprobar
el código de estado de una URL.
Cinco pasos desde una URL hasta una redirección corregida. Cada paso se explica en detalle más abajo.
-
1 Input
Introduce la URL
Escribe un dominio como
example.como pega una dirección completa comohttps://example.com/old-page. Sin http:// la herramienta comienza en https://. -
2 Options
Elige las opciones
Elige quién visita (navegador o bot) y activa o desactiva la comprobación de 4 versiones, la comparación de bots o el modo masivo.
-
3 Run
Pulsa Comprobar URL
La herramienta sigue cada salto de redirección paso a paso y muestra cada paso mientras lo rastrea. La mayoría de las comprobaciones terminan en 1–5 segundos.
-
4 Read
Lee el informe
El estado final, el veredicto SEO, la cadena de redirecciones, las cuatro versiones, los bots y el análisis SEO completo de la página.
-
5 Fix
Copiar el código
Elige tu plataforma en Obtener el código, copia la redirección, implántala y pulsa Volver a comprobar para confirmar la corrección.
Qué hace cada parte
de la herramienta.
Abre cualquier elemento para ver para qué sirve y cuándo usarlo.
Qué significa cada parte
del resultado.
El informe se compone de ocho bloques. Esto es lo que cada uno indica.
Estado final y veredicto SEO
El gran recuadro coloreado muestra el estado de la última URL: verde 2xx, púrpura 3xx, naranja 4xx, rojo 5xx. Junto a él aparecen la URL final, el número de redirecciones, el tiempo total y un veredicto — Bueno, Necesita atención o Problema — con cada motivo listado.
Cadena de redirecciones
Cada solicitud en orden: la URL, su estado, el tiempo que tomó, el servidor, la versión HTTP, la IP y la ubicación a la que apunta. Los saltos problemáticos se marcan, por ejemplo un 302 temporal o una segunda redirección que debería eliminarse.
Comprobación de 4 versiones
Las versiones http / https / www / non-www en una cuadrícula. El banner superior indica si las cuatro terminan en una URL canónica única, o qué hay que corregir.
Comparación de bots
Estado, URL final y tiempo para Desktop, Mobile, Googlebot, Bingbot, GPTBot y ClaudeBot. La insignia responde “¿Pueden los rastreadores IA ver esta página?” con Sí, Parcialmente o No.
Obtener el código
Elige qué hacer (redirigir una URL, forzar HTTPS, eliminar www, añadir www, 410 Gone), el tipo de redirección (301, 302, 307, 308) y tu plataforma. Los campos De y A se completan con los datos de tu comprobación. Copia, despliega, vuelve a comprobar.
Explicación del código de estado
Qué significa el estado final en palabras simples y su impacto SEO — Bueno, Neutral o Malo — para que sepas si debes actuar.
Análisis SEO
Una puntuación, una vista previa de resultados de Google, una vista previa para compartir y más de 35 comprobaciones en cuatro grupos: Básicos, Contenido, Compartir en redes y Técnicos. Todo lo que falta muestra No encontrado y muestra el código a añadir, con un botón Copiar.
Resultados en lote
Una fila por URL con filtros y contadores, búsqueda, ordenación, un informe integrado para cada fila, una barra de progreso con tiempo restante y un CSV con todo.
Quién está visitando:
los seis agentes de usuario.
El User-Agent es una línea de texto que cada visitante envía para decir quién es. La herramienta envía la cadena real y publicada de cada visitante.
Navegador de escritorio
Chrome en Windows. El predeterminado — lo que la mayoría de la gente ve en un ordenador.
Navegador móvil
Chrome en Android. Úsalo cuando un sitio dirige los teléfonos a un subdominio m. o a una página de aplicación.
Googlebot
El rastreador móvil de Google, el que indexa tu sitio (indexación mobile‑first). Si Googlebot recibe un error, tu página desaparece de Google.
Bingbot
El rastreador de Microsoft Bing. Los resultados de Bing también alimentan DuckDuckGo, Yahoo y partes de la búsqueda de ChatGPT.
GPTBot
El rastreador de OpenAI. Si está bloqueado, ChatGPT conoce menos tu sitio.
ClaudeBot
El rastreador de Anthropic para Claude. Muestra si tu firewall o robots.txt le permite el acceso.
Algunos sitios verifican Googlebot y otros bots mediante su dirección IP. Ese sitio puede responder a nuestra solicitud de forma distinta al bot real — la comparación de bots muestra entonces cómo el servidor trata solo el User-Agent.
Los cinco tipos
de códigos de estado.
El primer dígito indica el tipo de respuesta. La herramienta los colorea de la misma forma en todas partes.
Información
La solicitud fue recibida y continúa. Los navegadores las manejan por sí mismos; rara vez las ves.
Éxito
La página se entregó. 200 OK es lo que debe responder toda página que quieras en Google.
Redirección
El contenido está en otro lugar; el encabezado Location indica dónde. 301 y 308 son permanentes, 302 y 307 temporales.
Error del cliente
La solicitud no se puede procesar: la página no existe (404), fue eliminada (410), está prohibida (403) o tiene límite de velocidad (429).
Error del servidor
El sitio web falló al responder: error de código (500), servidor de origen caído (502), sobrecargado (503) o demasiado lento (504).
Todos los estados HTTP
explicados.
Qué significa cada código, su impacto en el SEO y cuándo deberías usarlo.
- What it means
- The server got the headers; the client may send the body.
- SEO impact
- None
- Use it when
- Handled by the server automatically.
- What it means
- The connection switches, e.g. to WebSocket.
- SEO impact
- None
- Use it when
- Opening a WebSocket.
- What it means
- Lets the browser preload CSS and fonts before the real answer.
- SEO impact
- Faster pages
- Use it when
- Your server or CDN supports it.
- What it means
- The page was found and returned.
- SEO impact
- Good: indexable
- Use it when
- Every normal page.
- What it means
- A new resource was created.
- SEO impact
- None
- Use it when
- An API created something.
- What it means
- The request was accepted and is processed later.
- SEO impact
- None
- Use it when
- Background jobs in an API.
- What it means
- Success, but nothing to send back.
- SEO impact
- Nothing to index
- Use it when
- APIs, tracking pixels.
- What it means
- Part of a file, as requested (Range).
- SEO impact
- None
- Use it when
- Video and large downloads.
- What it means
- The page moved for good to the Location URL.
- SEO impact
- Good: passes ranking
- Use it when
- URL changes, HTTPS, www moves, domain moves.
- What it means
- Temporary redirect.
- SEO impact
- Neutral: old URL may stay indexed
- Use it when
- A short-term move, A/B tests, login redirects.
- What it means
- Go to another page with GET.
- SEO impact
- Neutral
- Use it when
- After a form is submitted.
- What it means
- The cached copy is still current.
- SEO impact
- Good: saves crawl budget
- Use it when
- Caching with ETag / Last-Modified.
- What it means
- Like 302, but keeps the method (POST stays POST).
- SEO impact
- Neutral
- Use it when
- Temporary moves of APIs and forms. Also shown by browsers for HSTS.
- What it means
- Like 301, but keeps the method.
- SEO impact
- Good: passes ranking
- Use it when
- Permanent moves of APIs; Vercel and Next.js use it.
- What it means
- The request is malformed.
- SEO impact
- Bad: not indexed
- Use it when
- Invalid input in an API.
- What it means
- Login needed.
- SEO impact
- Not indexed (fine for private pages)
- Use it when
- Members-only areas.
- What it means
- The server refuses access.
- SEO impact
- Bad if bots get it by mistake
- Use it when
- Blocked folders. Check your firewall if bots get 403.
- What it means
- No page at this URL.
- SEO impact
- Bad: dropped from Google
- Use it when
- Truly missing pages. Redirect moved content with 301.
- What it means
- The URL exists, not for this method.
- SEO impact
- None
- Use it when
- A POST-only endpoint opened with GET.
- What it means
- No format matches the Accept header.
- SEO impact
- Bad
- Use it when
- Rare; usually a misconfigured security rule.
- What it means
- The client was too slow.
- SEO impact
- Temporary
- Use it when
- Server-side timeouts.
- What it means
- The request conflicts with the current state.
- SEO impact
- None
- Use it when
- APIs, e.g. a duplicate record.
- What it means
- Removed on purpose, not coming back.
- SEO impact
- Removed from Google faster than 404
- Use it when
- Deleted products and pages with no replacement.
- What it means
- The upload is too big.
- SEO impact
- None
- Use it when
- Upload limits (client_max_body_size).
- What it means
- The URL is too long.
- SEO impact
- Bad
- Use it when
- Endless query strings or redirect loops adding parameters.
- What it means
- The body format is not accepted.
- SEO impact
- None
- Use it when
- APIs.
- What it means
- Valid format, invalid data.
- SEO impact
- None
- Use it when
- Form and API validation errors.
- What it means
- Rate limit reached.
- SEO impact
- Bad if it lasts
- Use it when
- Rate limiting; send Retry-After.
- What it means
- Blocked for legal reasons.
- SEO impact
- Not indexed there
- Use it when
- Legal or regional blocks.
- What it means
- The site’s code crashed.
- SEO impact
- Bad
- Use it when
- Never on purpose: check the error log.
- What it means
- The server does not support the method.
- SEO impact
- Bad
- Use it when
- Unsupported HTTP methods.
- What it means
- A proxy got no valid answer from the app.
- SEO impact
- Bad if it lasts
- Use it when
- Never on purpose: the app server is down.
- What it means
- Overloaded or in maintenance.
- SEO impact
- Neutral for short periods
- Use it when
- Planned maintenance, with Retry-After.
- What it means
- The app answered too slowly.
- SEO impact
- Bad
- Use it when
- Never on purpose: find the slow request.
- What it means
- The HTTP version is not supported.
- SEO impact
- Bad
- Use it when
- Very old or broken clients.
- What it means
- Cloudflare could not reach your origin server correctly (empty answer, down, timeout, SSL).
- SEO impact
- Bad
- Use it when
- Check the origin server, its firewall and its certificate.
| Code | Name | What it means | SEO impact | Use it when |
|---|---|---|---|---|
| 100 | Continuar | The server got the headers; the client may send the body. | None | Handled by the server automatically. |
| 101 | Cambio de protocolos | The connection switches, e.g. to WebSocket. | None | Opening a WebSocket. |
| 103 | Indicaciones tempranas | Lets the browser preload CSS and fonts before the real answer. | Faster pages | Your server or CDN supports it. |
| 200 | OK | The page was found and returned. | Good: indexable | Every normal page. |
| 201 | Creado | A new resource was created. | None | An API created something. |
| 202 | Aceptado | The request was accepted and is processed later. | None | Background jobs in an API. |
| 204 | Sin contenido | Success, but nothing to send back. | Nothing to index | APIs, tracking pixels. |
| 206 | Contenido parcial | Part of a file, as requested (Range). | None | Video and large downloads. |
| 301 | Movido permanentemente | The page moved for good to the Location URL. | Good: passes ranking | URL changes, HTTPS, www moves, domain moves. |
| 302 | Encontrado | Temporary redirect. | Neutral: old URL may stay indexed | A short-term move, A/B tests, login redirects. |
| 303 | Ver otro | Go to another page with GET. | Neutral | After a form is submitted. |
| 304 | No modificado | The cached copy is still current. | Good: saves crawl budget | Caching with ETag / Last-Modified. |
| 307 | Redirección temporal | Like 302, but keeps the method (POST stays POST). | Neutral | Temporary moves of APIs and forms. Also shown by browsers for HSTS. |
| 308 | Redirección permanente | Like 301, but keeps the method. | Good: passes ranking | Permanent moves of APIs; Vercel and Next.js use it. |
| 400 | Solicitud incorrecta | The request is malformed. | Bad: not indexed | Invalid input in an API. |
| 401 | No autorizado | Login needed. | Not indexed (fine for private pages) | Members-only areas. |
| 403 | Prohibido | The server refuses access. | Bad if bots get it by mistake | Blocked folders. Check your firewall if bots get 403. |
| 404 | No encontrado | No page at this URL. | Bad: dropped from Google | Truly missing pages. Redirect moved content with 301. |
| 405 | Método no permitido | The URL exists, not for this method. | None | A POST-only endpoint opened with GET. |
| 406 | No aceptable | No format matches the Accept header. | Bad | Rare; usually a misconfigured security rule. |
| 408 | Tiempo de espera agotado | The client was too slow. | Temporary | Server-side timeouts. |
| 409 | Conflicto | The request conflicts with the current state. | None | APIs, e.g. a duplicate record. |
| 410 | Ya no existe | Removed on purpose, not coming back. | Removed from Google faster than 404 | Deleted products and pages with no replacement. |
| 413 | Contenido demasiado grande | The upload is too big. | None | Upload limits (client_max_body_size). |
| 414 | URI demasiado larga | The URL is too long. | Bad | Endless query strings or redirect loops adding parameters. |
| 415 | Tipo de medio no compatible | The body format is not accepted. | None | APIs. |
| 422 | Contenido no procesable | Valid format, invalid data. | None | Form and API validation errors. |
| 429 | Demasiadas solicitudes | Rate limit reached. | Bad if it lasts | Rate limiting; send Retry-After. |
| 451 | No disponible por razones legales | Blocked for legal reasons. | Not indexed there | Legal or regional blocks. |
| 500 | Error interno del servidor | The site’s code crashed. | Bad | Never on purpose: check the error log. |
| 501 | No implementado | The server does not support the method. | Bad | Unsupported HTTP methods. |
| 502 | Puerta de enlace incorrecta | A proxy got no valid answer from the app. | Bad if it lasts | Never on purpose: the app server is down. |
| 503 | Servicio no disponible | Overloaded or in maintenance. | Neutral for short periods | Planned maintenance, with Retry-After. |
| 504 | Tiempo de espera de la puerta de enlace | The app answered too slowly. | Bad | Never on purpose: find the slow request. |
| 505 | Versión HTTP no compatible | The HTTP version is not supported. | Bad | Very old or broken clients. |
| 520–526 | Errores de Cloudflare | Cloudflare could not reach your origin server correctly (empty answer, down, timeout, SSL). | Bad | Check the origin server, its firewall and its certificate. |
La tarjeta Explicación del código de estado en el informe muestra el significado y el impacto SEO del código que devuelve tu URL.
301, 302, 307 or 308:
qué redirección usar.
Elige según dos preguntas: ¿es el cambio permanente y debe un POST seguir siendo POST?
301 Movido permanentemente
La redirección permanente estándar. Los motores de búsqueda trasladan la posición y los enlaces de la URL antigua a la nueva y la sustituyen en su índice. Úsala para URLs cambiadas, HTTP → HTTPS, www → sin www y traslados de dominio.
- →Permanente
- →Transfiere ranking
- →Los navegadores lo almacenan en caché
302 Encontrado
Una redirección temporal. Google puede mantener la URL antigua indexada porque indicas que volverá. Úsala para campañas breves, detección geográfica o de idioma, y redirecciones de inicio de sesión — no para cambios permanentes.
- →Temporal
- →La URL antigua sigue indexada
- →No se almacena en caché
307 Redirección temporal
Igual que 302, pero el navegador debe repetir el mismo método y cuerpo. Úsala para APIs y formularios. Cuando veas un 307 que no configuraste, suele ser el navegador aplicando HSTS.
- →Temporal
- →Mantiene POST
308 Redirección permanente
Igual que 301, pero conserva el método y el cuerpo. Google lo trata como un 301. Next.js y Vercel usan 308 por defecto.
- →Permanente
- →Mantiene POST
- →Transfiere ranking
Meta refresh y JavaScript
Una redirección dentro de la página (<meta http-equiv="refresh"> o location.href) es más lenta y menos clara para los motores de búsqueda. Usa una redirección del servidor siempre que puedas — el Análisis SEO señala los meta refresh.
- →Evitar para SEO
¿Cuántas redirecciones están bien?
Una. Cada salto extra cuesta tiempo y puede perder valor de enlace; Googlebot sigue hasta 10 y luego se detiene. Si la cadena muestra http → https → www, cambia la primera regla para que envíe a los visitantes directamente a la dirección final.
- →Objetivo: 1 salto
- →Google se detiene después de 10
Código de redirección 301
para cada plataforma.
Redirige /old-page a https://example.com/new-page. Sustituye ambas direcciones por las tuyas — o usa Obtener el código en la herramienta, que lo completa por ti.
use Illuminate\Support\Facades\Route;
Route::redirect('/old-page', 'https://example.com/new-page', 301);
// or: Route::permanentRedirect('/old-page', '/new-page');
Ejecuta php artisan route:clear después de desplegar si almacenas rutas en caché.
<?php
header('Location: https://example.com/new-page', true, 301);
exit;
Debe ir antes de cualquier HTML o echo.
app.get('/old-page', (req, res) => {
res.redirect(301, 'https://example.com/new-page');
});
Añádelo antes de tus otras rutas y de express.static().
module.exports = {
async redirects() {
return [
{ source: '/old-page', destination: '/new-page', statusCode: 301 },
];
},
};
permanent: true en lugar de statusCode envía un 308.
location = /old-page {
return 301 https://example.com/new-page;
}
Después: sudo nginx -t && sudo systemctl reload nginx
Redirect 301 /old-page https://example.com/new-page
Utiliza mod_alias, disponible en casi cualquier alojamiento compartido.
add_action('template_redirect', function () {
if (untrailingslashit(wp_parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)) === '/old-page') {
wp_redirect('https://example.com/new-page', 301);
exit;
}
});
Ponlo en un tema hijo o en un plugin de fragmentos de código. Un plugin de redirección también funciona.
from django.urls import path
from django.views.generic.base import RedirectView
urlpatterns = [
path('old-page', RedirectView.as_view(url='https://example.com/new-page', permanent=True)),
]
permanent=True envía un 301, False envía un 302.
from flask import redirect
@app.route('/old-page')
def old_page():
return redirect('https://example.com/new-page', code=301)
get '/old-page', to: redirect('https://example.com/new-page', status: 301)
<system.webServer>
<rewrite>
<rules>
<rule name="Old page" stopProcessing="true">
<match url="^old-page$" />
<action type="Redirect" url="https://example.com/new-page" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
Requiere el módulo de reescritura de URL de IIS.
export default {
async fetch(request) {
const url = new URL(request.url);
if (url.pathname === '/old-page') {
return Response.redirect('https://example.com/new-page', 301);
}
return fetch(request);
},
};
Sin código: Rules → Redirect Rules → Single Redirects.
{
"redirects": [
{ "source": "/old-page", "destination": "/new-page", "statusCode": 301 }
]
}
/old-page /new-page 301
Coloca el archivo en tu carpeta de publicación.
Forzar HTTPS y
una versión www.
Las dos redirecciones que todo sitio necesita. Después, la verificación de 4 versiones debería indicar "Todas las versiones apuntan a una URL canónica".
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
return 301 https://example.com$request_uri;
}
El certificado debe cubrir tanto example.com como www.example.com.
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
Una regla, un salto: http://www, http:// y https://www van directamente a https://example.com.
->withMiddleware(function (Middleware $middleware) {
$middleware->trustProxies(at: '*'); // behind Cloudflare or a load balancer
$middleware->web(prepend: \App\Http\Middleware\ForceHttps::class);
})
// app/Http/Middleware/ForceHttps.php
public function handle(Request $request, Closure $next)
{
if (! $request->secure() && app()->isProduction()) {
return redirect()->secure($request->getRequestUri(), 301);
}
return $next($request);
}
app.set('trust proxy', true);
app.use((req, res, next) => {
const host = req.headers.host || '';
if (req.secure && !host.startsWith('www.')) return next();
res.redirect(301, `https://${host.replace(/^www\./, '')}${req.originalUrl}`);
});
Cada verificación SEO
en el informe.
Qué analiza el Análisis SEO, el estándar que verifica y qué añadir cuando indica No encontrado.
- Standard
- 30–60 characters, one per page
- Example
- <title>Main Keyword – Brand</title>
- Standard
- 70–160 characters, one per page
- Example
- <meta name="description" content="…">
- What it is
- La dirección principal de este contenido.
- Standard
- One, usually pointing to itself
- Example
- <link rel="canonical" href="https://example.com/page">
- What it is
- Reglas de indexación / seguimiento para esta página.
- Standard
- Not set = index, follow
- Example
- <meta name="robots" content="noindex">
- Standard
- Optional
- Example
- <meta name="googlebot" content="nosnippet">
- What it is
- Las reglas de robots como encabezado HTTP.
- Standard
- Optional; good for PDFs and images
- Example
- X-Robots-Tag: noindex
- What it is
- Hace que la página se ajuste a los móviles.
- Standard
- Required for mobile-first indexing
- Example
- <meta name="viewport" content="width=device-width, initial-scale=1">
- Standard
- Set it
- Example
- <html lang="en">
- Standard
- UTF-8
- Example
- <meta charset="utf-8">
- Standard
- Ignored by Google; not needed
- Standard
- Avoid; use a 301
- Standard
- Exactly one
- Example
- <h1>Main topic</h1>
- Standard
- Use them to structure content
- Example
- <h2>Section</h2>
- Standard
- 300+ for pages that should rank
- Standard
- Every content image
- Example
- <img src="a.jpg" alt="What it shows">
- Standard
- At least some internal links
- Example
- <a href="/related-page">
- What it is
- Título y texto al compartir en Facebook, LinkedIn, WhatsApp.
- Standard
- Set both
- Example
- <meta property="og:title" content="…">
- Standard
- 1200 × 630 px
- Example
- <meta property="og:image" content="https://…/share.jpg">
- What it is
- Dirección, tipo y nombre del sitio para compartidos.
- Standard
- Set them
- Example
- <meta property="og:type" content="website">
- Standard
- summary_large_image
- Example
- <meta name="twitter:card" content="summary_large_image">
- Standard
- Optional: X falls back to og: tags
- Example
- <meta name="twitter:title" content="…">
- Standard
- Required
- What it is
- Indica a los navegadores que usen siempre HTTPS.
- Standard
- Recommended
- Example
- Strict-Transport-Security: max-age=31536000
- Standard
- Multilingual sites; include x-default
- Example
- <link rel="alternate" hreflang="de" href="…">
- What it is
- Esquema JSON-LD para resultados enriquecidos.
- Standard
- Valid JSON, a matching type
- Example
- <script type="application/ld+json">…
- What it is
- El pequeño icono en pestañas y resultados de Google.
- Standard
- Set it
- Example
- <link rel="icon" href="/favicon.ico">
- What it is
- Icono al guardar en la pantalla de inicio del teléfono.
- Standard
- Optional
- Example
- <link rel="apple-touch-icon" href="/apple-touch-icon.png">
- Standard
- Should exist and answer 200
- Example
- User-agent: * / Allow: /
- What it is
- La lista de tus URLs para los motores de búsqueda.
- Standard
- Listed in robots.txt
- Example
- Sitemap: https://example.com/sitemap.xml
- What it is
- Si robots.txt permite a Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot y Google-Extended rastrear esta URL.
- Standard
- Googlebot must be allowed
- Example
- Disallow: /private/
- Standard
- On
- Example
- gzip on;
- Standard
- Under 500 KB
- What it is
- Tiempo hasta el primer byte de la página final.
- Standard
- Under 800 ms
| Check | What it is | Standard | Example |
|---|---|---|---|
| Etiqueta de título | El titular clicable en Google. | 30–60 characters, one per page | <title>Main Keyword – Brand</title> |
| Meta descripción | El texto bajo el título en Google. | 70–160 characters, one per page | <meta name="description" content="…"> |
| URL canónica | La dirección principal de este contenido. | One, usually pointing to itself | <link rel="canonical" href="https://example.com/page"> |
| Meta robots | Reglas de indexación / seguimiento para esta página. | Not set = index, follow | <meta name="robots" content="noindex"> |
| Meta googlebot | Las mismas reglas solo para Google. | Optional | <meta name="googlebot" content="nosnippet"> |
| X-Robots-Tag | Las reglas de robots como encabezado HTTP. | Optional; good for PDFs and images | X-Robots-Tag: noindex |
| Viewport | Hace que la página se ajuste a los móviles. | Required for mobile-first indexing | <meta name="viewport" content="width=device-width, initial-scale=1"> |
| Idioma | El idioma de la página en <html>. | Set it | <html lang="en"> |
| Charset | Cómo se codifica el texto. | UTF-8 | <meta charset="utf-8"> |
| Meta palabras clave | Una lista de palabras clave. | Ignored by Google; not needed | — |
| Meta refresh | Una redirección dentro de la página. | Avoid; use a 301 | — |
| Encabezado H1 | El encabezado principal. | Exactly one | <h1>Main topic</h1> |
| H2 / H3 | Subencabezados. | Use them to structure content | <h2>Section</h2> |
| Recuento de palabras | Palabras visibles en la página. | 300+ for pages that should rank | — |
| Texto alternativo de la imagen | Texto que describe una imagen. | Every content image | <img src="a.jpg" alt="What it shows"> |
| Enlaces | Enlaces internos, externos y nofollow. | At least some internal links | <a href="/related-page"> |
| og:title / og:description | Título y texto al compartir en Facebook, LinkedIn, WhatsApp. | Set both | <meta property="og:title" content="…"> |
| og:image | La imagen de un enlace compartido. | 1200 × 630 px | <meta property="og:image" content="https://…/share.jpg"> |
| og:url / og:type / og:site_name | Dirección, tipo y nombre del sitio para compartidos. | Set them | <meta property="og:type" content="website"> |
| twitter:card | Cómo se ve un enlace en X. | summary_large_image | <meta name="twitter:card" content="summary_large_image"> |
| twitter:title / description / image | Textos específicos para X. | Optional: X falls back to og: tags | <meta name="twitter:title" content="…"> |
| HTTPS | Conexión segura. | Required | — |
| Cabecera HSTS | Indica a los navegadores que usen siempre HTTPS. | Recommended | Strict-Transport-Security: max-age=31536000 |
| Hreflang | Versiones de idioma de la página. | Multilingual sites; include x-default | <link rel="alternate" hreflang="de" href="…"> |
| Datos estructurados | Esquema JSON-LD para resultados enriquecidos. | Valid JSON, a matching type | <script type="application/ld+json">… |
| Favicon | El pequeño icono en pestañas y resultados de Google. | Set it | <link rel="icon" href="/favicon.ico"> |
| Apple touch icon | Icono al guardar en la pantalla de inicio del teléfono. | Optional | <link rel="apple-touch-icon" href="/apple-touch-icon.png"> |
| robots.txt | Reglas de rastreo para todo el sitio. | Should exist and answer 200 | User-agent: * / Allow: / |
| Mapa del sitio XML | La lista de tus URLs para los motores de búsqueda. | Listed in robots.txt | Sitemap: https://example.com/sitemap.xml |
| Acceso de rastreo | Si robots.txt permite a Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot y Google-Extended rastrear esta URL. | Googlebot must be allowed | Disallow: /private/ |
| Compresión | gzip o Brotli para texto. | On | gzip on; |
| Tamaño HTML | Tamaño del HTML de la página. | Under 500 KB | — |
| Tiempo de respuesta del servidor | Tiempo hasta el primer byte de la página final. | Under 800 ms | — |
Además de las comprobaciones, obtienes una puntuación (el porcentaje de comprobaciones superadas), una vista previa de Google de cómo se ven tu título y descripción en las búsquedas, y una vista previa de compartido con tu og:image.
Un completo
SEO head y robots.txt.
Copia esto como punto de partida y sustituye los textos y direcciones de ejemplo.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Main Keyword – Brand Name</title>
<meta name="description" content="A clear 120–160 character summary of the page with its main keyword.">
<link rel="canonical" href="https://example.com/page">
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<!-- language versions (multilingual sites only) -->
<link rel="alternate" hreflang="en" href="https://example.com/page">
<link rel="alternate" hreflang="x-default" href="https://example.com/page">
<!-- Open Graph: Facebook, LinkedIn, WhatsApp -->
<meta property="og:type" content="website">
<meta property="og:site_name" content="Brand Name">
<meta property="og:title" content="Main Keyword – Brand Name">
<meta property="og:description" content="The same summary for social shares.">
<meta property="og:url" content="https://example.com/page">
<meta property="og:image" content="https://example.com/images/share-1200x630.jpg">
<!-- X (Twitter) -->
<meta name="twitter:card" content="summary_large_image">
</head>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "Main Keyword – Brand Name",
"url": "https://example.com/page",
"publisher": {
"@type": "Organization",
"name": "Brand Name",
"logo": "https://example.com/logo.png"
}
}
</script>
Pruébalo con la prueba de resultados enriquecidos de Google antes de publicar.
User-agent: *
Disallow: /admin/
Allow: /
# block AI training crawlers (optional)
User-agent: GPTBot
Disallow: /
Sitemap: https://example.com/sitemap.xml
Disallow detiene el rastreo, no la indexación. Para mantener una página fuera de Google, usa noindex y permite que sea rastreada.
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_types text/css application/javascript application/json image/svg+xml text/plain application/xml;
10 problemas de redirección
y cómo solucionarlos.
Lo que la herramienta encuentra con más frecuencia, y la solución para cada caso.
Preguntas
que la gente hace.
Un número de tres dígitos que el servidor envía con cada respuesta. Indica si la página fue encontrada (200), movida (301, 302), no encontrada (404) o si hay un error (500). Los navegadores y buscadores deciden qué hacer basándose en él.
Continúa
con estas herramientas.
Last updated: · Built by Manamil Dev.