Repository navigation
Duplicate rendered page titles: remaining 35 groups (follow-up to #19301) #19351
Copy link
Copy link
Open
Description
Background
Follow-up to #19301, which de-duplicated the Troubleshooting and Custom Instrumentation title families.
Sentry docs render the browser <title> as frontmatter.title + " | Sentry for {Platform}" for platform/guide pages (app/[[...path]]/page.tsx:366). Product/API pages get no suffix. So the ~200 raw frontmatter-title duplicates (e.g. "Configuration" across every SDK) are mostly already unique at the tag level and are not a problem.
Accounting for that suffix and excluding version-variant pairs (__v7.x, etc., which share a URL via the version switcher), 35 groups / 77 pages still render a genuinely duplicate <title>. This issue tracks fixing them.
Categories
Three buckets, in rough priority order:
- Same-platform collisions (17) — different pages on the same platform render an identical title; the platform suffix can't disambiguate. Highest value. Many are
legacy-sdkvscommonpairs (Integrations, Usage, Context, Source Maps) and instrumentation-vs-trace-propagation pairs. - Product / non-platform collisions (15) —
/product/and/api/pages get no suffix, so these are true duplicate<title>tags (e.g. 8× "Set Up", plus Authentication, Logs, Issues, Errors). - Cross-guide, shared framework name (3) — two guides that share a display name (e.g. a .NET and a JS "AWS Lambda" guide) render the same
X | Sentry for X. Arguably acceptable; may not need a change.
Recommended approach
- Prefer descriptive, unique
title; addsidebar_titleto keep the menu label short where the section already provides context (the pattern established in docs: De-duplicate Troubleshooting and Custom Instrumentation page titles #19301). - For
legacy-sdkvscommonpairs, consider whether the legacy page should be retitled ("Legacy …") or redirected, since some may be effectively superseded — worth an SME check. - Leave version-variant pairs alone (same URL).
Full list
Same-platform collisions (17)
Configuration | Sentry for PHP — 3 pages
docs/platforms/php/common/configuration/index.mdxdocs/platforms/php/common/user-feedback/configuration/index.mdxdocs/platforms/php/legacy-sdk/config.mdx
Breadcrumbs | Sentry for JavaScript — 2 pages
docs/platforms/javascript/common/configuration/integrations/breadcrumbs.mdxdocs/platforms/javascript/common/enriching-events/breadcrumbs/index.mdx
Capturing Errors | Sentry for Java — 2 pages
docs/platforms/java/common/usage/index.mdxdocs/platforms/java/usage.mdx
Configuration | Sentry for Elixir — 2 pages
docs/platforms/elixir/configuration/index.mdxdocs/platforms/elixir/user-feedback/configuration/index.mdx
Context | Sentry for Go — 2 pages
docs/platforms/go/common/enriching-events/context/index.mdxdocs/platforms/go/legacy-sdk/context.mdx
Expo | Sentry for Expo — 2 pages
docs/platforms/react-native/guides/expo/index.mdxdocs/platforms/react-native/guides/expo/sourcemaps/uploading/expo.mdx
Hermes | Sentry for React Native — 2 pages
docs/platforms/react-native/common/manual-setup/hermes.mdxdocs/platforms/react-native/common/sourcemaps/uploading/hermes.mdx
Integrations | Sentry for Go — 2 pages
docs/platforms/go/common/integrations/index.mdxdocs/platforms/go/legacy-sdk/integrations.mdx
Integrations | Sentry for JavaScript — 2 pages
docs/platforms/javascript/common/configuration/integrations/index.mdxdocs/platforms/javascript/legacy-sdk/integrations.mdx
Integrations | Sentry for PHP — 2 pages
docs/platforms/php/common/integrations/index.mdxdocs/platforms/php/legacy-sdk/integrations.mdx
Integrations | Sentry for Python — 2 pages
docs/platforms/python/integrations/index.mdxdocs/platforms/python/legacy-sdk/integrations.mdx
OpenTelemetry Support | Sentry for Java — 2 pages
docs/platforms/java/common/opentelemetry/index.mdxdocs/platforms/java/common/tracing/instrumentation/opentelemetry.mdx
OpenTelemetry Support | Sentry for JavaScript — 2 pages
docs/platforms/javascript/common/migration/v7-to-v8/v8-opentelemetry.mdxdocs/platforms/javascript/common/opentelemetry/index.mdx
Source Context | Sentry for Android — 2 pages
docs/platforms/android/data-management/debug-files/source-context/index.mdxdocs/platforms/android/enhance-errors/source-context.mdx
Source Context | Sentry for Apple — 2 pages
docs/platforms/apple/common/data-management/debug-files/source-context/index.mdxdocs/platforms/apple/common/sourcecontext/index.mdx
Source Maps | Sentry for JavaScript — 2 pages
docs/platforms/javascript/common/sourcemaps/index.mdxdocs/platforms/javascript/legacy-sdk/sourcemaps.mdx
Usage | Sentry for PHP — 2 pages
docs/platforms/php/common/usage/index.mdxdocs/platforms/php/legacy-sdk/usage.mdx
Product / non-platform collisions (15)
Set Up — 8 pages
docs/product/agents/getting-started.mdxdocs/product/logs/getting-started/index.mdxdocs/product/mcp-servers/getting-started.mdxdocs/product/metrics/getting-started/index.mdxdocs/product/monitors-and-alerts/monitors/crons/getting-started/index.mdxdocs/product/profiling/getting-started.mdxdocs/product/releases/setup/index.mdxdocs/product/user-feedback/setup.mdx
Agents Dashboards — 2 pages
docs/product/agents/dashboards.mdxdocs/product/dashboards/sentry-dashboards/ai/agents.mdx
Authentication — 2 pages
docs/api/auth.mdxdocs/organization/authentication/index.mdx
Errors — 2 pages
docs/integrations/integration-platform/webhooks/errors.mdxdocs/product/errors/index.mdx
Feature Flags — 2 pages
docs/integrations/feature-flag/index.mdxdocs/product/issues/issue-details/feature-flags/index.mdx
Installation — 2 pages
docs/cli/installation.mdxdocs/integrations/integration-platform/webhooks/installation.mdx
Integrating Into CI — 2 pages
docs/product/size-analysis/integrating-into-ci.mdxdocs/product/snapshots/integrating-into-ci.mdx
Issues — 2 pages
docs/integrations/integration-platform/webhooks/issues.mdxdocs/product/issues/index.mdx
Logs — 2 pages
docs/cli/logs.mdxdocs/product/logs/index.mdx
MCP Dashboards — 2 pages
docs/product/dashboards/sentry-dashboards/ai/mcp.mdxdocs/product/mcp-servers/dashboard.mdx
Replay Performance Overhead — 2 pages
docs/product/session-replay/mobile/performance-overhead.mdxdocs/product/session-replay/web/performance-overhead.mdx
Search — 2 pages
docs/concepts/search/index.mdxdocs/contributing/pages/search.mdx
Seer — 2 pages
docs/integrations/integration-platform/webhooks/seer.mdxdocs/product/ai-in-sentry/seer/index.mdx
Session Health — 2 pages
docs/product/dashboards/sentry-dashboards/frontend/session-health.mdxdocs/product/dashboards/sentry-dashboards/mobile/session-health.mdx
Web Vitals — 2 pages
docs/product/dashboards/sentry-dashboards/frontend/web-vitals/index.mdxdocs/product/issues/issue-details/performance-issues/web-vitals/index.mdx
Cross-guide (shared framework name) (3)
AWS Lambda | Sentry for AWS Lambda — 2 pages
docs/platforms/dotnet/guides/aws-lambda/index.mdxdocs/platforms/javascript/guides/aws-lambda/index.mdx
Azure Functions | Sentry for Azure Functions — 2 pages
docs/platforms/dotnet/guides/azure-functions-worker/index.mdxdocs/platforms/javascript/guides/azure-functions/index.mdx
Google Cloud Functions | Sentry for Google Cloud Functions — 2 pages
docs/platforms/dotnet/guides/google-cloud-functions/index.mdxdocs/platforms/javascript/guides/gcp-functions/index.mdx
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
linear-code commentedon Sep 10, 2026
DOCS-2945
coolguyzone commentedon Sep 11, 2026
Deferred: dashboards near-duplicate content (from #19387)
While de-duplicating product titles (#19387), two collisions turned out to be duplicate content, not title problems, and need a canonical/redirect decision from the Dashboards/AI team rather than a retitle:
product/agents/dashboards.mdxandproduct/dashboards/sentry-dashboards/ai/agents.mdxhave essentially identical body text.product/dashboards/sentry-dashboards/ai/mcp.mdxandproduct/mcp-servers/dashboard.mdxoverlap heavily.Recommended: pick one canonical location per pair and redirect the other (or set a canonical tag), instead of manufacturing distinct titles for the same content.
Also still open from the same-platform work (#19358): the Java OpenTelemetry Support pair, where
tracing/instrumentation/opentelemetry.mdxis a moved-page stub that should become a redirect.docs: De-duplicate same-platform page titles (#19358)
coolguyzone commentedon Sep 14, 2026
Decision: cross-guide title collisions — leave as-is (wontfix for now)
The 3 remaining title collisions are same-named guides across two languages:
AWS Lambda | Sentry for AWS Lambda—dotnet/guides/aws-lambda+javascript/guides/aws-lambdaAzure Functions | Sentry for Azure Functions—dotnet/guides/azure-functions-worker+javascript/guides/azure-functionsGoogle Cloud Functions | Sentry for Google Cloud Functions—dotnet/guides/google-cloud-functions+javascript/guides/gcp-functionsNot fixable via frontmatter. A guide root page always renders
X | Sentry for Xbecause the page title and the suffix source are the same value (nodeToGuide.title = frontmatter.title,src/docTree.ts:377). Editing the guide index title also changes the| Sentry for …suffix for every sub-page under that guide, and still leaves the root doubled.The clean fix would be a code change in
app/[[...path]]/page.tsx#generateMetadata: on a guide root page, build the suffix from the parent platform/language instead of the guide's own name, e.g.AWS Lambda | Sentry for .NETvsAWS Lambda | Sentry for JavaScript. This also de-doubles every guide-root<title>site-wide (Express | Sentry for Express→Express | Sentry for JavaScript).Decision: leaving as-is for now — only 3 pairs, the URLs disambiguate them, and the proper fix is a broader
page.tsxchange better handled on its own if/when we decide the guide-root title format is worth changing.docs: De-duplicate product and non-platform page titles (#19387)
docs: De-duplicate same-platform page titles (#19358)
docs: De-duplicate product and non-platform page titles (#19387)