Duplicate urls returned by `generateRemixSitemap` using React Router 7

Aperta
#12 1 commento 4 reazioni 0 assegnatari Vedi su GitHub

@mateussilva92 ci sta già lavorando.

Dal 6/1/2026.

  • #20 di @mateussilva92 — aperta

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
react, typescript
Ambito
backend, web-dev

Direzione di ricerca

Inizia dalla chiamata a generateRemixSitemap nel loader fornito e confronta le route di virtual:react-router/server-build con la configurazione di routes.ts. Riproduci l’XML generato con la configurazione mostrata di React Router 7, traccia il punto in cui i percorsi duplicati entrano nell’helper e verifica che ogni URL della sitemap compaia una sola volta.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Hi @AlemTuzlak, first of thanks for the package!

I do not know if its only related to RR7 or Remix v2 aswell, but when I use the following code to generate the sitemap, the generateRemixSitemap helper function returns duplicate links. Any chance to fix this or do you know why that is happening?

import { generateRemixSitemap } from "@forge42/seo-tools/remix/sitemap";
import type { Route } from "./+types/sitemap.xml";
import { href } from "react-router";

export const loader = async ({ request }: Route.LoaderArgs) => {
  const { routes } = await import("virtual:react-router/server-build");
  const sitemap = await generateRemixSitemap({
    domain: new URL(request.url).origin,
    ignore: [href("/api/chat"), href("/legal-notice"), href("/privacy-policy")],
    // @ts-expect-error Type mismatch, maybe related to a stricter type mentioned in release notes for v.7.0.0
    // https://github.com/forge-42/seo-tools/issues/8
    routes,
  });

  return new Response(sitemap, {
    headers: {
      "Content-Type": "application/xml",
    },
  });
};
// routes.ts
import {
  type RouteConfig,
  index,
  layout,
  prefix,
  route,
} from "@react-router/dev/routes";

export default [
  layout("routes/layout.tsx", [
    index("routes/index.tsx"),
    ...
    route("sitemap.xml", "routes/sitemap.xml.ts"),
    route("robots.txt", "routes/robots.txt.ts"),
  ]),
] satisfies RouteConfig;

The generated sitemap:

<url>
  <loc>http://localhost:5173/</loc>
</url>
<url>
  <loc>http://localhost:5173/</loc>
</url>
<url>
  <loc>http://localhost:5173/chat</loc>
</url>
<url>
  <loc>http://localhost:5173/blog</loc>
</url>
<url>
  <loc>http://localhost:5173/</loc>
</url>
Lingua principale
TypeScript
Stelle
96
Fork
9
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di code-forge-io/seo-tools

Tutte le issue di code-forge-io/seo-tools

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.