seo: redirects + fix 49 duplicate page titles by CahidArda · Pull Request #927 · upstash/docs · GitHub
Skip to content

seo: redirects + fix 49 duplicate page titles - #927

Draft
CahidArda wants to merge 6 commits into
mainfrom
seo/weekly-2026-10-19
Draft

CahidArda wants to merge 6 commits into
mainfrom
seo/weekly-2026-10-19

Conversation

@CahidArda

@CahidArda CahidArda commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Three fixes, all from this week's Ahrefs Site Audit (project 9854245, crawls 2026-10-18 and 2026-10-20):

1. Redirects for legacy /docs/* paths with dofollow backlinks from DR75-94 domains (Cloudflare docs, StackOverflow, Medium, Habr, Go pkg docs, DeepWiki) that currently 404. This also consolidates 3 older open draft PRs from earlier weekly runs of this routine (#889, #903, #914), which were still open and unmerged and overlapped with each other and with this PR — folded their entries in and closed all three as superseded. See the commit message on c225c96 for the full consolidation notes (what was deduped, what was corrected, what was added).

2. 47 duplicate page titles. Ahrefs flags duplicate_title on exactly 17 pages titled literally "Getting Started" and 30 pages titled literally "Overview" — a repo-wide search confirms these counts are the complete set, not a sample. Every product's SDK/getstarted/overview landing page has the same copy-pasted placeholder title with no product or SDK name, so Google sees an identical <title> for e.g. Redis, QStash, Vector and Search's getting-started pages. Several of these carry real traffic: redis/overall/getstarted (862 visits/mo), qstash/overall/getstarted (534), workflow/getstarted (312), introduction (215). Renamed each to a unique, descriptive title (e.g. "Overview" → "Redis TypeScript SDK Overview"); no body copy, URLs, or nav changed.

3. (added 2026-10-21, commit eb0044f) The two "Compare" pages. redis/overall/compare (247 visits/mo) and qstash/overall/compare (26) share the literal title "Compare" (duplicate_title group of 2). Retitled to "Compare Upstash Redis to Alternatives" / "Compare QStash to Alternatives", kept the sidebar label "Compare" via sidebarTitle, and added the missing meta description on the Redis page (it had none).

Evidence — redirects

Source (legacy, 404) New destination Backlink DR Referring page
/docs/howto/developerapi /common/account/developerapi 91, 79 pkg.go.dev/terraform-provider-upstash, upstash.mintlify.app
/docs/docs/overall/getstarted /redis/overall/getstarted 94 medium.com/upstash/get-started-with-next-js-and-kafka
/docs/overall/durability /redis/features/durability 88 habr.com
/docs/overall/consistency /redis/features/consistency 88 habr.com
/docs/vector/features/metadatafiltering /vector/features/filtering 91, 75 pkg.go.dev/vector-go, libraries.io/go/vector-go
/docs/workflow/migration /workflow/howto/migrations 78 (×2) deepwiki.com/upstash/qstash-js
/docs/qstash/pricing /qstash/overall/pricing 81 ithub (GitHub mirror)/riccardogiorato/qstash-with-nextjs
ratelimit paths (×6, prefixed+bare) /redis/sdks/ratelimit-ts/overview or /redis/overall/ratelimit 81, 78, 79 ithub mirror, deepwiki.com
redis/overview paths (×4) /redis/overall/getstarted or /redis/sdks/ts/overview 81, 87 railway.com/deploy/serverless-redis
/docs/vector/sdks/ts/semantic-cache (+bare) /vector/sdk/semantic-cache-js 81 ithub mirror/awesome-llm-cost
7 more from consolidated #889/#914 see commit c225c96 77-97 github.com (×5), deepwiki.com

Evidence — duplicate titles

Full before/after list is in the diff (one-line title: change each). Top-traffic examples:

Page Before After Traffic/mo
/redis/overall/getstarted "Getting Started" "Redis Getting Started" 862
/qstash/overall/getstarted "Getting Started" "QStash Getting Started" 534
/workflow/getstarted "Overview" "Workflow Overview" 312
/redis/overall/compare "Compare" (no meta description) "Compare Upstash Redis to Alternatives" + description 247
/introduction "Overview" "Introduction" 215
/qstash/overall/compare "Compare" "Compare QStash to Alternatives" 26

Expected effect

Redirects recover link equity from ~22 dofollow backlinks (DR75-94) and fix one confirmed internal 404. The title fixes give Google a distinct, descriptive <title> for 49 pages instead of an identical generic one — should help both relevance and SERP CTR (users currently see no product context in the title for these pages).

Notes for reviewer

  • Left Kafka-related broken backlinks (/docs/kafka/*, /pricing/kafka) out of scope per the standing Kafka-paused exclusion.
  • Please double check the 3 corrected redirect destinations (ratelimit × 2, redis/overview) since they're based on file-tree inference, not a live crawl of the rendered site.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RAhS4rWaMVuMCaTUJKgz3P

Ahrefs Site Explorer (upstash.com, broken-backlinks, 2026-10-18) found
dofollow backlinks from DR75-94 domains (Cloudflare docs, StackOverflow,
Medium, Habr, Go pkg docs, DeepWiki) pointing at legacy /docs/* paths
that now 404. /docs/howto/developerapi is also in the current internal
404 crawl (0 traffic, but 2 external backlinks at DR79/91). Added
redirects from each legacy path to its current canonical page, plus
the bare (no /docs prefix) variant for each, following the existing
dual-entry convention already used in this file (e.g. "/box/overall/stream"
and "/docs/box/overall/stream" -> "/box/overall/agent").

Two of the reported broken paths (/docs/howto/connectwithtls and
/docs/features/restapi) already had matching redirects in this file,
so no new entries were added for those - Ahrefs' backlink index just
hasn't recrawled since the fix shipped.
@mintlify

mintlify Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
upstash 🟢 Ready View Preview Oct 21, 2026, 9:39 AM

💡 Tip: Enable Automations to automatically generate PRs for you.

@context7

context7 Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Docs7 for upstash.com

Result Status Action
Deployment ✅ Ready Open preview
Content review ⚠️ Did not finish. View run

Commit fb7126c · Updated 2026-10-21 09:43 UTC · View build details

…#914)

These three PRs are from earlier weekly runs of the same routine and
were still open/unmerged, each adding overlapping or complementary
legacy-docs redirects. Folded their entries into this PR instead of
leaving four separate overlapping PRs open:

- Deduplicated exact-match sources already covered here (/howto/developerapi,
  /overall/durability, /overall/consistency, /docs/overall/getstarted).
- Added the bare (no /docs prefix) variants #889 had that this PR was
  missing (metadatafiltering, semantic-cache, ratelimit/overview,
  ratelimit, redis/ratelimit, redis/overview).
- Corrected 3 destinations where this PR's guess and #889's guess
  disagreed, verified against the actual file tree:
  - /ratelimit, /redis/ratelimit -> /redis/overall/ratelimit (a real
    file, redis/overall/ratelimit.mdx, missed earlier - not the
    TS-specific SDK overview page).
  - /redis/overview -> /redis/overall/getstarted (generic "overview"
    with no SDK named shouldn't default to the TS SDK).
  - metadatafiltering kept pointing at /vector/features/filtering
    (titled "Metadata Filtering") rather than #889's
    /vector/features/metadata (titled "Metadata and Data" - a
    different, more general page).
- Added #889's 2 fully-unique entries (redis/sdks/javascriptsdk/..,
  vector/sdks/rag-chat) and #914's 5 fully-unique entries
  (realtime/box getstarted->quickstart renames, qstash/features/topics,
  and 2 qstash API-reference redirects verified against qstash/openapi.yaml's
  endpoint summaries, which are not backed by static files so a plain
  file-existence check missed them).

#889 and #903 will be closed as superseded. #914 will be closed as
superseded (it was reported "shipped" in last week's ticket but never
merged).
claude and others added 2 commits October 19, 2026 10:58
Ahrefs Site Audit flags duplicate_title on exactly 17 pages titled
"Getting Started" and 30 pages titled "Overview" (project 9854245,
crawl 2026-10-18) - these counts match a full repo search exactly, so
this is the complete set, not a sample.

These are each-product's SDK/getstarted/overview landing pages with a
copy-pasted placeholder title and no product or SDK name, so Google
sees the same <title> for e.g. Redis, QStash, Vector and Search's
getting-started pages, and separately for their SDK overview pages -
including several with real traffic (redis/overall/getstarted: 862
visits/mo, qstash/overall/getstarted: 534, workflow/getstarted: 312,
introduction: 215, redis/overall/compare: 247).

Renamed each page's title to include its product/SDK/feature name
(e.g. "Overview" -> "Redis TypeScript SDK Overview", "Getting Started"
-> "QStash Getting Started"), so every page now has a unique,
descriptive <title>. No body copy, URLs, or nav structure changed -
only the `title` frontmatter field on each page.
@CahidArda CahidArda changed the title seo: add redirects for legacy docs paths with high-DR backlinks seo: redirects + fix 47 duplicate page titles Oct 19, 2026
Ahrefs Site Audit (project 9854245) flags duplicate_title on
redis/overall/compare (247 visits/mo) and qstash/overall/compare (26),
which both use the literal title "Compare". Give each a product-specific
title, keep the sidebar label as "Compare" via sidebarTitle, and add the
missing meta description on the Redis page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RAhS4rWaMVuMCaTUJKgz3P
@CahidArda CahidArda changed the title seo: redirects + fix 47 duplicate page titles seo: redirects + fix 49 duplicate page titles Oct 21, 2026

This branch was successfully deployed

2 active deployments
Docs7 Preview: seo/weekly-2026-10-19 — fb7126c8 Deployed Oct 21, 2026 by context7[bot]
staging — fb7126c8 Deployed Oct 21, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants