Repository navigation
Conversation
Ahrefs broken-backlinks (2026-10-11) confirmed these 6 paths 404 with live external backlinks pointing at them, none covered by an existing docs.json redirect: - /realtime/overall/getstarted (DR97, github.com x2) - /box/overall/getstarted (DR97, github.com) - /qstash/features/topics (DR97, github.com) - pre-rename "Topics" term - /qstash/api/dlq/listMessages (DR97, github.com discussion) - /qstash/api/signingKeys/get (DR97, github.com discussion) - /ratelimit (DR77, deepwiki.com) Each maps to the current live page covering the same content.
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
Contributor
|
Docs7 for upstash.com
Commit |
context7
Bot
temporarily deployed
to
Docs7 Preview: claude/stoic-fermi-b8hpoc
October 12, 2026 06:24
Destroyed
CahidArda
pushed a commit
that referenced
this pull request
Oct 19, 2026
…#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).
This was referenced Oct 19, 2026
Contributor
Author
|
Closing as superseded — this was output from an earlier weekly run of the automated SEO review routine (reported "shipped" in that week's ticket but never merged). All 6 redirects from this PR have been folded into #927, along with #889 and #903, to avoid 4 overlapping open PRs doing the same kind of fix. See #927's description for the full consolidation notes. Generated by Claude Code |
CahidArda
added a commit
that referenced
this pull request
Oct 23, 2026
* seo: add redirects for legacy docs paths with high-DR backlinks 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. * seo: consolidate redirects from older open seo-weekly PRs (#889, #903, #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). * seo: give product/SDK name to 47 pages sharing a generic title 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. * chore(llms): regenerate llms.txt and llms-full.txt * seo: give unique titles to the two "Compare" pages 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 * chore(llms): regenerate llms.txt and llms-full.txt * seo: keep short sidebar labels on retitled pages via sidebarTitle The longer, product-specific titles from aa3ed8e (e.g. "QStash Python SDK Examples Overview") also showed up as sidebar labels, which is redundant inside an already-scoped nav group. Add sidebarTitle with each page's previous label ("Overview", "Getting Started") to all 47 pages, so the sidebar is unchanged vs main while <title> and JSON-LD keep the unique titles. Verified on the Docs7 preview that sidebarTitle is honored: the two Compare pages (eb0044f) render "Compare" in the sidebar and the full title in <title> and BreadcrumbList. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RAhS4rWaMVuMCaTUJKgz3P * docs: 1 review fix for #927 (broken links) (#933) * chore(llms): regenerate llms.txt and llms-full.txt * seo: product-specific titles for quickstarts and other generic docs pages Quickstart pages were titled with only the framework or platform name ("App Router", "Laravel", "Next.js"), so search results showed e.g. "App Router - Upstash Documentation" with neither Redis nor Next.js in it, and the same title was reused across products (three "Cloudflare Workers", two "Next.js", two "App Router", ...). Retitle them to "<Product> with <Framework>" (e.g. "Upstash Redis with Next.js (App Router)", "QStash with Next.js", "Upstash Workflow with FastAPI"). Also retitle feature/help pages that have search traffic or rankings but generic titles, per Ahrefs Site Explorer (2026-10-22): Redis FAQ ("upstash redis" #4, 2.5k/mo), Global Database, Connect Your Client, REST API, Search Queries, QStash Queues / Use Cases / DLQ / Flow Control / Schedules / Local Tunnel ("localtunnel" #10), and the remaining cross-product duplicate titles (Changelog, Quickstart, FAQ, Features, Security, Pricing, Read-only Token, ...). Fix the Workflow Datadog and Prometheus pages, which were titled as QStash integrations. All pages keep their previous label as sidebarTitle, so the sidebar is unchanged. Add meta descriptions to the 24 Redis pages whose generated description was the "If you are an AI agent..." tip (Ahrefs Site Audit, crawl 2026-10-20). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RAhS4rWaMVuMCaTUJKgz3P * seo: title Workflow monitoring pages as Workflow & QStash integrations The Workflow Datadog and Prometheus pages document the shared QStash metrics integration, so name both products instead of only Workflow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RAhS4rWaMVuMCaTUJKgz3P * seo: keep the docs landing page titled Overview Per review on #927: leave the landing page title unchanged. The duplicate the rename was meant to fix is resolved by redis/search/introduction now being titled "Redis Search Introduction", and no other page uses "Overview" anymore. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RAhS4rWaMVuMCaTUJKgz3P * seo: fix four quickstart descriptions and tighten titles from self-review Self-review of #927 (four parallel reviewers covering all 156 changed pages) confirmed every sidebar label is unchanged vs main, every new title matches its page and is unique, and only frontmatter changed. Fixes from the review: - Descriptions that overstated the page: Koyeb (not a "globally scaled" deploy; it deploys from Git or a container), Azure Functions (deploys with Functions Core Tools, not the Azure CLI), Next.js App Router (no "create a database" step), DigitalOcean (reword around the shutdown date instead of a call to migrate before it). - Name the product in titles that still left it out: Upstash Redis / Search / Vector Getting Started, Upstash Redis Keyspace Notifications, Upstash Terraform / Pulumi Provider Overview, Upstash Developer API Getting Started, and the four Redis Search operator overviews. - Match Google's casing: "Google Cloud Run functions". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RAhS4rWaMVuMCaTUJKgz3P --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: context7[bot] <236830434+context7[bot]@users.noreply.github.com>
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Weekly SEO audit (Ahrefs, 2026-10-11) found these 6 paths as 404s via
site-explorer-broken-backlinks, each with a live external backlink pointing at a URL that isn't covered by any existingdocs.jsonredirect. Checked each against the repo and against the existing ~87-entryredirectsarray to rule out duplicates and stale-crawl false positives (several other candidates from this week's pull, e.g./docs/features/restapi,/docs/qstash/pricing,/docs/redis/sdks/redis-ts/getstarted,/docs/workflow/migration, turned out to already have a redirect in place — Ahrefs is showing a stale recrawl date for those, not a live 404 — so they're left untouched here).Evidence & changes
site-explorer-broken-backlinks)upstash.com/docs/realtime/overall/getstartedtahzeer/cryptalk-app,AbiNash1017/self-destruct-chat-app), anchor "Upstash Realtime"/realtime/overall/getstarted→/realtime/overall/quickstart(actual getting-started page)upstash.com/docs/box/overall/getstartedalitariksahin/symphony-box), anchor "Upstash Box"/box/overall/getstarted→/box/overall/quickstartupstash.com/docs/qstash/features/topicsorgs/upstash/discussions/90)upstash_qstash_topicTerraform resource keeps the old name). Add redirect/qstash/features/topics→/qstash/features/url-groupsupstash.com/docs/qstash/api/dlq/listMessagesorgs/upstash/discussions/90)openapi.yaml, tagDLQ, summary "List DLQ messages"). Add redirect →/qstash/api-reference/dlq/list-dlq-messages, matching the existing/qstash/api/url-groups/*→/qstash/api-reference/url-groups/*pattern already in this fileupstash.com/docs/qstash/api/signingKeys/getorgs/upstash/discussions/90)openapi.yamltagSigning Keys, summary "Get Signing Keys". Add redirect →/qstash/api-reference/signing-keys/get-signing-keysupstash.com/docs/ratelimitRailly/tinte), anchor "Upstash Redis"/ratelimit→/redis/overall/ratelimitI could not find a live equivalent for a 7th candidate from the same discussion thread,
/docs/qstash/api/events/list— QStash's OpenAPI spec no longer has an "Events" tag/endpoint at all (not renamed, just not present), so there's no destination I can map to with confidence. Flagging this in this week'sseo-weeklyLinear ticket instead of guessing a redirect target.Expected effect
Recovers link equity from 6 DR77–97 referring domains currently pointing at dead pages, and removes 6 confirmed 404s from Site Audit's error count (
crawled: 31404 pages this week).Notes
redirectsentries indocs.json.🤖 Generated with Claude Code
https://claude.ai/code/session_01G5CArZvv5MAeKJg3DxSVTr
Generated by Claude Code