Skip to content

feat(seo): Improve Internal Linking#426

Open
0xIchigo wants to merge 2 commits intomainfrom
feat/better-internal-linking
Open

feat(seo): Improve Internal Linking#426
0xIchigo wants to merge 2 commits intomainfrom
feat/better-internal-linking

Conversation

@0xIchigo
Copy link
Contributor

@0xIchigo 0xIchigo commented Feb 3, 2026

Summary

This PR aims to add missing internal links to RPC methods and Helius products across our documentation to improve discoverability and user navigation. It also makes it 10x easier for bots to crawl and understand content relationships 🧠

What changed

  • Added links to 8 files across our RPC guides, sending transactions page, dedicated nodes page, Enhanced WebSockets page, and FAQs

* Use your shared plan for `getProgramAccounts` queries as we have a [**custom indexer**](https://x.com/heliuslabs/status/1864750969755422797) that makes those calls much faster and more reliable
* **Poor transaction landing rates**: While `sendTransaction` is supported, it's not optimized - most transactions will not land; use your shared plan for reliable transaction submission
* **Use [`getProgramAccounts`](/api-reference/rpc/http/getprogramaccounts) carefully**: While supported, dedicated nodes are not optimized for these calls - heavy usage can impact performance or cause node failure
* Use your shared plan for [`getProgramAccounts`](/api-reference/rpc/http/getprogramaccounts) queries as we have a [**custom indexer**](https://x.com/heliuslabs/status/1864750969755422797) that makes those calls much faster and more reliable
Copy link
Contributor

@brady-at-helius brady-at-helius Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typically it's best not to include the same link multiple times. better to include it once in the most relevant section. imo, better to remove this link to gPA and mention gPAV2 instead:

  • Use your shared plan for getProgramAccounts queries as we have a custom indexer that makes gPA calls much faster and more reliable.
  • Shared plans also support getProgramAccountsV2, which adds support for pagination and incremental updates.

* **Poor transaction landing rates**: While `sendTransaction` is supported, it's not optimized - most transactions will not land; use your shared plan for reliable transaction submission
* **Use [`getProgramAccounts`](/api-reference/rpc/http/getprogramaccounts) carefully**: While supported, dedicated nodes are not optimized for these calls - heavy usage can impact performance or cause node failure
* Use your shared plan for [`getProgramAccounts`](/api-reference/rpc/http/getprogramaccounts) queries as we have a [**custom indexer**](https://x.com/heliuslabs/status/1864750969755422797) that makes those calls much faster and more reliable
* **Poor transaction landing rates**: While [`sendTransaction`](/api-reference/rpc/http/sendtransaction) is supported, it's not optimized - most transactions will not land; use your shared plan for reliable transaction submission
Copy link
Contributor

@brady-at-helius brady-at-helius Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change to:

"...shared plan or Sender for landing Solana transactions more reliably"

* **Use [`getProgramAccounts`](/api-reference/rpc/http/getprogramaccounts) carefully**: While supported, dedicated nodes are not optimized for these calls - heavy usage can impact performance or cause node failure
* Use your shared plan for [`getProgramAccounts`](/api-reference/rpc/http/getprogramaccounts) queries as we have a [**custom indexer**](https://x.com/heliuslabs/status/1864750969755422797) that makes those calls much faster and more reliable
* **Poor transaction landing rates**: While [`sendTransaction`](/api-reference/rpc/http/sendtransaction) is supported, it's not optimized - most transactions will not land; use your shared plan for reliable transaction submission
* **No archival queries**: Historical data access should be done through your shared plan
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

* Monitor your node's metrics to understand its performance based on response times, successful request %, and error counts
* Consider distributing intensive workloads across multiple nodes in a dedicated fleet

<Warning>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This whole warning section is pretty duplicative of the bullets in the managing load section. Recommend removing it to keep the page simpler.

If you want to keep the "No platform APIs, webhooks, or staked connections" stuff, it might be better served with a new "What's Not Supported" header where we include them in simple bullet list

Then you'd wanna move the historical data bullet from the load section here since it's unsupported, and not a load management thing


<Warning>
**Important**: While `getProgramAccounts` is supported, dedicated nodes are not optimized for these calls. Heavy usage can impact node performance or even cause node failure. Use your shared plan for `getProgramAccounts` queries as it has a custom indexer that makes these calls much faster and more reliable.
**Important**: While [`getProgramAccounts`](/api-reference/rpc/http/getprogramaccounts) is supported, dedicated nodes are not optimized for these calls. Heavy usage can impact node performance or even cause node failure. Use your shared plan for [`getProgramAccounts`](/api-reference/rpc/http/getprogramaccounts) queries as it has a custom indexer that makes these calls much faster and more reliable.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove the 2nd gpa link

</AccordionGroup>

### Monitoring new Jupiter DCAs using Transaction Subscribe + getAsset
### Monitoring new Jupiter DCAs using Transaction Subscribe + [getAsset](/api-reference/das/getasset)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

generally best to not link things in headers

instead it's better to include those links in the paragraph text underneath the header

my recommendation is to add a sentence or 2 to bridge between the header and the accordions like:

Jupiter DCA, or Dollar Cost Averaging, is a way to schedule recurring trades for tokens on Solana. Because these scheduled buy/sell orders are recorded on-chain, traders can use the transactionSubscribe method and the getAsset DAS API method to listen for new orders.


<Accordion title="How do I find all token holders of a specific mint?">
Use `getProgramAccounts` filtered by the token program and mint address, or `getTokenAccountsByOwner` for specific owners. For comprehensive token holder analysis, combine with `getTokenLargestAccounts`.
Use [`getProgramAccounts`](/api-reference/rpc/http/getprogramaccounts) filtered by the token program and mint address, or [`getTokenAccountsByOwner`](/api-reference/rpc/http/gettokenaccountsbyowner) for specific owners. For comprehensive token holder analysis, combine with [`getTokenLargestAccounts`](/api-reference/rpc/http/gettokenlargestaccounts).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a second paragraph:

Alternatively, you can use the getProgramAccountsV2 and getTokenAccountsByOwnerV2 method for improved pagination support and support for incremental updates with the changedSinceSlot parameter.

@@ -69,9 +69,9 @@ The first step to building a Solana index is getting all the historical data tha

There are three main ways to do this:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we already include these links in their dedicated sections below, we don't need to link them here. Duplicate links hurt instead of help, and it's always best to include links in their most contextually relevant section. So if the section details using the gTFA method, that's the best section to include a link to the gTFA reference.

}
```

## Related Methods
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section feels a bit unneccessary since we link to all of these methods in their sections above. would recommend removing it, or replacing the /api-reference/ links with their respective "guides" but even that feels like overkill for an already long/detailed guide like this

@@ -34,9 +34,9 @@ description: "Dedicated Solana nodes optimized for gRPC streaming applications.
<Note>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you remove the ? Better that this information is just normal paragraph text / bullets instead of being wrapped in the . We do this a lot with where we shove multiple bullets or long paragraphs in notes, but they should just be clearly written header/paragraph sections. If we abuse the markup it loses it's urgency/meaning imo

Copy link
Contributor

@brady-at-helius brady-at-helius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approving so you can merge once the changes are fixed

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