From 3ee6192fd2beca15609a27000d041b2b8a40480f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enes=20Ya=C4=9F=C4=B1z?= Date: Mon, 2 Nov 2026 23:24:08 +0300 Subject: [PATCH] fix(seo): list pub.dev packages on the pub registry page Packages and the registries API use "pub", so filtering by "pub.dev" matched nothing and left an empty page that could be indexed. A registry page with no packages is now noindex. Co-Authored-By: Claude Opus 5.5 --- src/backend/PkgDiff.API/Controllers/SitemapController.cs | 6 ++++-- src/frontend/public/llms.txt | 2 +- src/frontend/src/app/features/packages/packages-list.ts | 8 ++++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/backend/PkgDiff.API/Controllers/SitemapController.cs b/src/backend/PkgDiff.API/Controllers/SitemapController.cs index 568a8bb..9805940 100644 --- a/src/backend/PkgDiff.API/Controllers/SitemapController.cs +++ b/src/backend/PkgDiff.API/Controllers/SitemapController.cs @@ -2,7 +2,6 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Caching.Memory; using PkgDiff.Application.Interfaces; -using PkgDiff.Shared.Constants; namespace PkgDiff.API.Controllers; @@ -25,6 +24,9 @@ public class SitemapController : ControllerBase "/cookies", }; + // The values used in public URLs, where pub.dev is "pub" + private static readonly string[] RegistryHubs = { "nuget", "npm", "pypi", "pub", "packagist", "maven" }; + private readonly IAdminPackageService _adminService; private readonly IMemoryCache _memory; private readonly ILogger _logger; @@ -73,7 +75,7 @@ private async Task BuildSitemapAsync() AppendUrl(xml, path, null); } - foreach (var registry in RegistryNames.All) + foreach (var registry in RegistryHubs) { AppendUrl(xml, $"/packages?registry={registry}", null); } diff --git a/src/frontend/public/llms.txt b/src/frontend/public/llms.txt index bfd9d5a..3a5ccaf 100644 --- a/src/frontend/public/llms.txt +++ b/src/frontend/public/llms.txt @@ -17,7 +17,7 @@ pkgdiff helps developers decide whether a dependency upgrade is safe. It combine - [npm packages](https://pkgdiff.dev/packages?registry=npm) - [PyPI packages](https://pkgdiff.dev/packages?registry=pypi) - [Maven packages](https://pkgdiff.dev/packages?registry=maven) -- [pub.dev packages](https://pkgdiff.dev/packages?registry=pub.dev) +- [pub.dev packages](https://pkgdiff.dev/packages?registry=pub) - [Packagist packages](https://pkgdiff.dev/packages?registry=packagist) ## Package pages diff --git a/src/frontend/src/app/features/packages/packages-list.ts b/src/frontend/src/app/features/packages/packages-list.ts index 6a04562..25ee3a8 100644 --- a/src/frontend/src/app/features/packages/packages-list.ts +++ b/src/frontend/src/app/features/packages/packages-list.ts @@ -15,12 +15,12 @@ const REGISTRY_LABELS: Record = { npm: 'npm', pypi: 'PyPI', maven: 'Maven', - 'pub.dev': 'pub.dev', + pub: 'pub.dev', packagist: 'Packagist', }; const REGISTRY_ALIASES: Record = { - pub: 'pub.dev', + 'pub.dev': 'pub', composer: 'packagist', }; @@ -259,5 +259,9 @@ export class PackagesListComponent { : 'Browse packages from NuGet, npm, PyPI, Maven, pub.dev and Packagist. See version history, breaking changes and categorized release notes.', url: query ? `/packages?${query}` : '/packages', }); + + if (!this.isLoading() && this.registryPackages().length === 0) { + this.seo.setNoIndex(); + } } }