robots
Escribe robots.txt en el build con las reglas de User-agent asterisco y, con sitemap, la URL absoluta del sitemap.
robots hace que meeko build escriba robots.txt con las reglas para User-agent: *: sus allow y disallow (Allow: / sin ninguna) y, si sitemap está activo, la línea Sitemap: con su URL absoluta. Vale para todos los adaptadores: en Node, Bun, Deno y Workers se sirve como un archivo público más, con ETag.
Uso#
// meeko.config.ts
import { defineMeekoConfig } from "@meekojs/meeko/framework";
export default defineMeekoConfig({
site: "https://example.com",
sitemap: true,
robots: { disallow: ["/admin/"] }, // o robots: true
});Tipo#
readonly robots?: boolean | RobotsConfiginterface RobotsConfig {
readonly allow?: readonly string[]
readonly disallow?: readonly string[]
}Opciones#
| Opción | Tipo | Por defecto | Descripción |
|---|---|---|---|
allow |
readonly string[] |
["/"] si no hay disallow |
Prefijos permitidos (Allow:). |
disallow |
readonly string[] |
[] |
Prefijos prohibidos (Disallow:). |
Cada entrada empieza por /, sin espacios, ? ni #. robots: true equivale a {}.
Resultado#
User-agent: *
Disallow: /admin/
Sitemap: https://example.com/sitemap.xmlCon robots: true y sin sitemap:
User-agent: *
Allow: /Ejemplos#
Un entorno de pruebas que no se indexa#
import { defineMeekoConfig } from "@meekojs/meeko/framework";
const staging = process.env.DEPLOY_ENV === "staging";
export default defineMeekoConfig({
robots: staging ? { disallow: ["/"] } : true,
});Permitir una carpeta dentro de otra prohibida#
import { defineMeekoConfig } from "@meekojs/meeko/framework";
export default defineMeekoConfig({ robots: { disallow: ["/cuenta/"], allow: ["/cuenta/ayuda/"] } });Errores comunes#
Un campo mal escrito#
export default defineMeekoConfig({ robots: { disalow: ["/admin/"] } as never });meeko dev, meeko build, meeko check y meeko routes se detienen con …/meeko.config.ts: robots: campo desconocido disalow.
import { defineMeekoConfig } from "@meekojs/meeko/framework";
export default defineMeekoConfig({ robots: { disallow: ["/admin/"] } });Una ruta sin / inicial#
export default defineMeekoConfig({ robots: { disallow: ["admin"] } });…/meeko.config.ts: robots.disallow debe ser un array de cadenas no vacías que empiecen por /.
import { defineMeekoConfig } from "@meekojs/meeko/framework";
export default defineMeekoConfig({ robots: { disallow: ["/admin"] } });Un public/robots.txt#
public/robots.txt y robots: truemeeko build se detiene con El archivo público robots.txt (de public/ o de un módulo) choca con el que genera la opción robots de meeko.config.ts; quita uno de los dos.
Borre public/robots.txt y declare sus reglas en robotsNotas#
- No es seguridad.
Disallowes una petición a los rastreadores, no una protección: proteja/admincon sesión y middleware de servidor. - Origen.
robotssinsitemapno necesitasite. - Páginas concretas. Para que una página no se indexe, use
<meta name="robots" content="noindex">conuseSeoMeta; si es prerenderizada, además sale del sitemap.