technical

Sitemap a robots.txt

MetricSpot busca una línia Sitemap: al robots.txt. És com Google, Bing i la majoria de rastrejadors d'IA descobreixen automàticament el teu sitemap sense enviar-lo manualment.

Què comprova aquesta auditoria

Descarrega /robots.txt i busca una o més directives Sitemap:. Verifica que la URL sigui absoluta (les URL relatives no estan permeses per l’especificació) i que sigui accessible.

Per què importa

La majoria de rastrejadors descobreix el teu sitemap d’una de tres maneres:

  1. L’envies a Google Search Console / Bing Webmaster Tools.
  2. El declares al robots.txt via Sitemap:.
  3. El rastrejador endevina /sitemap.xml com a últim recurs.

El mètode 2 és el que escala a rastrejadors amb els quals no tens un compte: Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot, Applebot, Yandex, Baidu i desenes d’indexadors més petits llegeixen robots.txt abans de rastrejar res. Declarar el teu sitemap allà és una línia de configuració que difon la ubicació a tothom alhora.

Si te’l saltes, un sitemap generat pel CMS a una URL no estàndard (/sitemap_index.xml, /wp-sitemap.xml, /sitemap-0.xml) pot no ser descobert mai pels rastrejadors més petits que no proven rutes alternatives.

Com solucionar-ho

Afegeix una línia Sitemap: al /robots.txt. Fes servir la URL absoluta i canònica: mateix esquema (https), mateix hostname (amb o sense www, coincidint amb el teu canònic), sense redireccions al final.

User-agent: *
Allow: /

Sitemap: https://example.com/sitemap.xml

Es permeten diversos sitemaps. Llista cada un, o llista un índex de sitemaps que referenciï els altres:

Sitemap: https://example.com/sitemap-pages.xml
Sitemap: https://example.com/sitemap-posts.xml
Sitemap: https://example.com/sitemap-products.xml

Regles:

  • Només URL absoluta. Sitemap: /sitemap.xml no és vàlid per l’especificació. Alguns rastrejadors ho toleren, d’altres ignoren la directiva del tot.
  • Coincideix amb l’esquema/host canònic. Si el teu lloc és https://www.example.com, no declaris https://example.com/sitemap.xml. Google tracta el sitemap com a pertanyent al host on es declara.
  • La directiva Sitemap: és global, no està limitada a un bloc User-agent:. Posa-la en la seva pròpia línia, a dalt o a baix del fitxer, la posició no importa.

nginx (servint un robots.txt estàtic):

location = /robots.txt {
  alias /var/www/example.com/robots.txt;
}

Next.js (App Router), robots.txt dinàmic:

// app/robots.ts
import type { MetadataRoute } from "next";

export default function robots(): MetadataRoute.Robots {
  return {
    rules: [{ userAgent: "*", allow: "/" }],
    sitemap: "https://example.com/sitemap.xml",
  };
}

Astro: posa un public/robots.txt literal al teu projecte, o genera’n un a src/pages/robots.txt.ts:

// src/pages/robots.txt.ts
import type { APIRoute } from "astro";

export const GET: APIRoute = ({ site }) => {
  const body = `User-agent: *
Allow: /

Sitemap: ${new URL("sitemap-index.xml", site).href}
`;
  return new Response(body, { headers: { "Content-Type": "text/plain" } });
};

Si fas servir @astrojs/sitemap, emet sitemap-index.xml, apunta la directiva a l’índex, no als sitemaps individuals.

WordPress: Yoast SEO i Rank Math afegeixen automàticament la línia Sitemap: al robots.txt virtual. Si tens un fitxer /robots.txt real al disc, el plugin no el pot sobreescriure, o esborres el fitxer o afegeixes la línia Sitemap: manualment.

Cloudflare Workers / Pages: robots.txt és només text estàtic, posa’l al teu directori public/. Si el generes via un Worker, configura content-type: text/plain perquè els rastrejadors l’analitzin correctament.

Combina-ho amb fitxer robots.txt, sitemap XML i permetre rastrejadors d’IA, els tres junts configuren tota la superfície de descobriment de rastreig.

Preguntes freqüents

Encara haig d’enviar el sitemap a Search Console si està al robots.txt?

Sí, per a Google. L’enviament a Search Console et dóna estadístiques d’indexació per sitemap, reports d’errors i diagnòstics de “descobert però no indexat” que l’autodescobriment no ofereix. Fes servir tots dos: robots.txt per a la resta del web, Search Console per a visibilitat específica a Google.

Puc tenir més d’una línia Sitemap:?

Sí. L’especificació permet múltiples declaracions de sitemap. O llista-les totes, o llista un fitxer índex de sitemaps que referenciï els altres (més net, més fàcil de mantenir).

I si canvia la URL del meu sitemap?

Actualitza la línia Sitemap: i Googlebot ho recollirà la pròxima vegada que llegeixi el robots.txt (normalment en 24 hores). Si tens un sitemap antic enviat a Search Console, treu-lo manualment, el robots.txt només diu als rastrejadors on és el nou, no fa caducar l’antic.

Fonts

Última actualització 2026-05-11