You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Duplicate rendered page titles: remaining 35 groups (follow-up to #19301) #19351
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-sdk vs common pairs (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.
For legacy-sdk vs common pairs, consider whether the legacy page should be retitled ("Legacy …") or redirected, since some may be effectively superseded — worth an SME check.
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:
Agents Dashboards — product/agents/dashboards.mdx and product/dashboards/sentry-dashboards/ai/agents.mdx have essentially identical body text.
MCP Dashboards — product/dashboards/sentry-dashboards/ai/mcp.mdx and product/mcp-servers/dashboard.mdx overlap 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.mdx is a moved-page stub that should become a redirect.
Google Cloud Functions | Sentry for Google Cloud Functions — dotnet/guides/google-cloud-functions + javascript/guides/gcp-functions
Not fixable via frontmatter. A guide root page always renders X | Sentry for X because 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 .NET vs AWS 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.tsx change better handled on its own if/when we decide the guide-root title format is worth changing.
Background
Follow-up to #19301, which de-duplicated the Troubleshooting and Custom Instrumentation title families.
Sentry docs render the browser
<title>asfrontmatter.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:
legacy-sdkvscommonpairs (Integrations, Usage, Context, Source Maps) and instrumentation-vs-trace-propagation pairs./product/and/api/pages get no suffix, so these are true duplicate<title>tags (e.g. 8× "Set Up", plus Authentication, Logs, Issues, Errors).X | Sentry for X. Arguably acceptable; may not need a change.Recommended approach
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).legacy-sdkvscommonpairs, consider whether the legacy page should be retitled ("Legacy …") or redirected, since some may be effectively superseded — worth an SME check.Full list
Same-platform collisions (17)
Configuration | Sentry for PHP— 3 pagesdocs/platforms/php/common/configuration/index.mdxdocs/platforms/php/common/user-feedback/configuration/index.mdxdocs/platforms/php/legacy-sdk/config.mdxBreadcrumbs | Sentry for JavaScript— 2 pagesdocs/platforms/javascript/common/configuration/integrations/breadcrumbs.mdxdocs/platforms/javascript/common/enriching-events/breadcrumbs/index.mdxCapturing Errors | Sentry for Java— 2 pagesdocs/platforms/java/common/usage/index.mdxdocs/platforms/java/usage.mdxConfiguration | Sentry for Elixir— 2 pagesdocs/platforms/elixir/configuration/index.mdxdocs/platforms/elixir/user-feedback/configuration/index.mdxContext | Sentry for Go— 2 pagesdocs/platforms/go/common/enriching-events/context/index.mdxdocs/platforms/go/legacy-sdk/context.mdxExpo | Sentry for Expo— 2 pagesdocs/platforms/react-native/guides/expo/index.mdxdocs/platforms/react-native/guides/expo/sourcemaps/uploading/expo.mdxHermes | Sentry for React Native— 2 pagesdocs/platforms/react-native/common/manual-setup/hermes.mdxdocs/platforms/react-native/common/sourcemaps/uploading/hermes.mdxIntegrations | Sentry for Go— 2 pagesdocs/platforms/go/common/integrations/index.mdxdocs/platforms/go/legacy-sdk/integrations.mdxIntegrations | Sentry for JavaScript— 2 pagesdocs/platforms/javascript/common/configuration/integrations/index.mdxdocs/platforms/javascript/legacy-sdk/integrations.mdxIntegrations | Sentry for PHP— 2 pagesdocs/platforms/php/common/integrations/index.mdxdocs/platforms/php/legacy-sdk/integrations.mdxIntegrations | Sentry for Python— 2 pagesdocs/platforms/python/integrations/index.mdxdocs/platforms/python/legacy-sdk/integrations.mdxOpenTelemetry Support | Sentry for Java— 2 pagesdocs/platforms/java/common/opentelemetry/index.mdxdocs/platforms/java/common/tracing/instrumentation/opentelemetry.mdxOpenTelemetry Support | Sentry for JavaScript— 2 pagesdocs/platforms/javascript/common/migration/v7-to-v8/v8-opentelemetry.mdxdocs/platforms/javascript/common/opentelemetry/index.mdxSource Context | Sentry for Android— 2 pagesdocs/platforms/android/data-management/debug-files/source-context/index.mdxdocs/platforms/android/enhance-errors/source-context.mdxSource Context | Sentry for Apple— 2 pagesdocs/platforms/apple/common/data-management/debug-files/source-context/index.mdxdocs/platforms/apple/common/sourcecontext/index.mdxSource Maps | Sentry for JavaScript— 2 pagesdocs/platforms/javascript/common/sourcemaps/index.mdxdocs/platforms/javascript/legacy-sdk/sourcemaps.mdxUsage | Sentry for PHP— 2 pagesdocs/platforms/php/common/usage/index.mdxdocs/platforms/php/legacy-sdk/usage.mdxProduct / non-platform collisions (15)
Set Up— 8 pagesdocs/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.mdxAgents Dashboards— 2 pagesdocs/product/agents/dashboards.mdxdocs/product/dashboards/sentry-dashboards/ai/agents.mdxAuthentication— 2 pagesdocs/api/auth.mdxdocs/organization/authentication/index.mdxErrors— 2 pagesdocs/integrations/integration-platform/webhooks/errors.mdxdocs/product/errors/index.mdxFeature Flags— 2 pagesdocs/integrations/feature-flag/index.mdxdocs/product/issues/issue-details/feature-flags/index.mdxInstallation— 2 pagesdocs/cli/installation.mdxdocs/integrations/integration-platform/webhooks/installation.mdxIntegrating Into CI— 2 pagesdocs/product/size-analysis/integrating-into-ci.mdxdocs/product/snapshots/integrating-into-ci.mdxIssues— 2 pagesdocs/integrations/integration-platform/webhooks/issues.mdxdocs/product/issues/index.mdxLogs— 2 pagesdocs/cli/logs.mdxdocs/product/logs/index.mdxMCP Dashboards— 2 pagesdocs/product/dashboards/sentry-dashboards/ai/mcp.mdxdocs/product/mcp-servers/dashboard.mdxReplay Performance Overhead— 2 pagesdocs/product/session-replay/mobile/performance-overhead.mdxdocs/product/session-replay/web/performance-overhead.mdxSearch— 2 pagesdocs/concepts/search/index.mdxdocs/contributing/pages/search.mdxSeer— 2 pagesdocs/integrations/integration-platform/webhooks/seer.mdxdocs/product/ai-in-sentry/seer/index.mdxSession Health— 2 pagesdocs/product/dashboards/sentry-dashboards/frontend/session-health.mdxdocs/product/dashboards/sentry-dashboards/mobile/session-health.mdxWeb Vitals— 2 pagesdocs/product/dashboards/sentry-dashboards/frontend/web-vitals/index.mdxdocs/product/issues/issue-details/performance-issues/web-vitals/index.mdxCross-guide (shared framework name) (3)
AWS Lambda | Sentry for AWS Lambda— 2 pagesdocs/platforms/dotnet/guides/aws-lambda/index.mdxdocs/platforms/javascript/guides/aws-lambda/index.mdxAzure Functions | Sentry for Azure Functions— 2 pagesdocs/platforms/dotnet/guides/azure-functions-worker/index.mdxdocs/platforms/javascript/guides/azure-functions/index.mdxGoogle Cloud Functions | Sentry for Google Cloud Functions— 2 pagesdocs/platforms/dotnet/guides/google-cloud-functions/index.mdxdocs/platforms/javascript/guides/gcp-functions/index.mdx