fix(seo): make the sitemap canonical-only, healthy, and testable
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 58/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- typescript
- Domínio
- documentation, testing, web-dev
Direção de pesquisa
Comece em src/utils/sitemap.ts e revise como os caminhos do manifesto, os redirecionamentos, as páginas de showcase e os valores de lastmod entram no sitemap gerado. Adicione a validação solicitada do contrato do sitemap e a cobertura de testes unitários para filtragem de caminhos e normalização canônica; está concluído quando as entradas de produção forem URLs 200, indexáveis, autocanônicas, sem placeholders nem artefatos não permitidos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Problem
The production sitemap currently contains 3,245 URLs. A live audit found several categories of non-canonical or unhealthy entries:
- 189 Charts catalog URLs use trailing slashes and immediately redirect to the no-trailing-slash canonical.
- /showcase redirects to a default query-string URL before canonicalizing back to /showcase.
- Four /drafts/ URLs and two README URLs are included.
- Draft and README examples currently return 200 pages headed Content temporarily unavailable.
- A stratified check of 160 sitemap entries found 23 redirects and one 404, including stale DB reference paths that redirect to a parent reference page or no longer resolve.
- Only 77 entries currently contain lastmod values; docs and most other content do not.
- Approved showcase detail pages are not included even though later showcase pagination is currently noindex/nofollow.
Google says sitemap entries should be the canonical URLs the site wants indexed: https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
Relevant generation code: src/utils/sitemap.ts
Required changes
- Emit only URLs that return 200, are indexable, and self-canonicalize.
- Normalize Charts catalog entries to the production no-trailing-slash form.
- Exclude drafts, *.draft paths, README files, temporary-unavailable placeholders, hidden libraries, and other non-public docs artifacts.
- Apply docs redirect resolution before adding manifest paths to the sitemap.
- Remove stale or missing generated-reference paths.
- Reconcile /showcase so the sitemap entry does not require an avoidable redirect.
- Add approved showcase detail pages if they are intended for organic discovery.
- Keep query-string URLs only when they represent an intentionally indexable canonical page, such as the previous-partners directory.
- Add accurate lastmod values where the source provides a real meaningful modification date; do not synthesize timestamps on every request.
Automated validation
Add a sitemap contract checker that can validate generated entries and optionally check a deployed base URL.
For every sitemap URL, verify:
- Final status is 200 without following a redirect.
- Exactly one canonical link exists.
- Canonical equals the sitemap URL after consistent URL normalization.
- No robots noindex directive is present.
- The page is not a temporary-unavailable or error placeholder.
- The URL has no disallowed draft, README, embed, account, or admin pattern.
Acceptance criteria
- Production sitemap contains zero redirecting URLs.
- Production sitemap contains zero 4xx or 5xx URLs.
- Production sitemap contains zero noindex URLs.
- Every entry is self-canonical.
- Drafts and repository-maintenance documents are absent.
- Charts catalog URLs use the same trailing-slash policy as their canonical pages.
- Unit tests cover path filtering and canonical normalization.
- A CI or release-time check prevents regressions in the sitemap contract.
- Linguagem predominante
- TypeScript
- Estrelas
- 1.1k
- Forks
- 401
- Merge médio
- 14h 44min
- PRs com merge (30d)
- 58
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de TanStack/tanstack.com
-
source-audit
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 84/100
TanStack/tanstack.com#1195 ·
-
source-audit
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
TanStack/tanstack.com#1194 · 2 comentários ·
-
source-audit
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
TanStack/tanstack.com#1177 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
TanStack/tanstack.com#1059 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
TanStack/tanstack.com#1047 ·
Todas as issues de TanStack/tanstack.com
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
-
security
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
IBM/node-sdk-core#373 ·
-
e2e-failure ready-to-code
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
-
chore
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100