How many internal links should a page have?
There is no number. Google says so in its own documentation, in a sentence quoted below, and every figure you have seen for this was chosen by whoever published it.
What follows is that sentence and where it comes from, why a number gets published anyway, and the questions about internal links that do have checkable answers on your own site.
What Google actually says
There’s no magical ideal number of links a given page should contain. However, if you think it’s too much, then it probably is.
That is the whole answer, and it is deliberately not a figure. The sentence immediately before it is the one people skip:
Think about what other resources on your site could help your readers understand a given page on your site, and link to those pages in context.
Read together, the guidance is about fit rather than quantity. Link to a page where a reader would want it, and the count is whatever the count turns out to be. There is no threshold being described, which is why no threshold is given.
The same page is specific where it can be, which is about the words a link is written as rather than the number of them:
Good anchor text is descriptive, reasonably concise, and relevant to the page that it’s on and to the page it links to.
That is a testable instruction. You can look at a link and say whether it is descriptive, and you can fix it. It is the part of this subject worth your afternoon.
Why you were given a number anyway
Because a number is what the question asks for. A page answering “how many?” with “it depends” loses to one answering with a figure, so figures get published: so many per thousand words, so many before a page is diluted, a round ceiling that everybody has heard and nobody can source.
None of them are wrong in an interesting way. They are unsourced, which is worse, because an unsourced number cannot be argued with. You cannot check it, you cannot find the study, and the only thing it reliably does is make you count something that was never the problem with the page.
The useful version of the question is not how many. It is whether any of these links is one a reader would want, and that is answerable one link at a time.
Are internal links worth bothering with?
Yes, and for a duller reason than the one usually given. Internal links are how a crawler reaches a page that is not in the navigation, and how a reader gets from the page that answered their question to the page that answers the next one. Both of those are worth having on their own terms.
The claim worth being careful about is the one measuring a single link. What adding one link to one page did to that page’s position is not something you can isolate on your own site: the results moved, other pages moved, and you changed one thing among many. Anybody quantifying that for you is estimating, and usually not saying so.
So the honest framing is that internal links are plumbing. Plumbing that is missing is a real problem. Plumbing that exists and is sensible is not a lever you tune.
What to check instead of counting
Every question below is answerable from a crawl of your own pages, with no estimate and no third-party index involved. That is the dividing line: these have answers, and “how many links should this page have” does not.
Pages nothing links to
A page reachable only from the sitemap is a page a search engine can find and a reader cannot. This is the one internal-link problem with an unambiguous answer, and it is answerable from your own crawl without estimating anything.
Anchor text that does not say where it goes
The words a link is written as are the only clue a reader has about where it goes before they commit to it. “Read more” and “click here” give them nothing, and a page full of them reads as navigation rather than as writing. Google publishes guidance on this and it is quoted further up the page.
Links that are in the navigation, not in the page
The same link on every page of a site is doing a different job from one chosen in context, and counting them together is how a page with two real links reads as a page with forty. Which is which is decided by where the link sits, not by how many there are.
Links that do not resolve
A relative href that was right when it was typed and wrong after a section moved looks exactly like a working link until somebody clicks it. Anything pointing at a page that no longer answers belongs on the list before anything about quantity does.
Whether a reader can tell two links apart
If two links on a page go to different places under the same words, one of them is going to be clicked by somebody who wanted the other. That is a reading problem you can see by looking, and it will not appear in any count.
What this product records about a link
When ShownTrue crawls a site it keeps every link on every page, not a tally of them: the address it resolves to, the words it was written as, its rel attribute, whether it points at your own site, and where it sat in the page relative to the others.
That last one is the field that makes a count mean anything. It is what separates a link somebody put in a sentence from the thirty that are in the footer of every page on the site, and without it the two are the same row.
A link whose address cannot be resolved to a full one is dropped rather than stored as it was written, because a relative path joins to nothing while still looking like a link. And each crawl replaces what a page links to rather than adding to it, so a site that reorders its navigation does not accumulate both versions for ever.
And what it refuses to tell you
ShownTrue will not tell you that a page is under-linked. There is a guard in the opportunity engine whose only job is to stop it, and the reason is worth reading because it is the reason most tools would give you the opposite.
The column holding how many pages link to a given page defaults to zero. So a page nobody has measured and a page nothing links to look identical, and a rule reading that column, comparing it to a sensible threshold and reporting everything below it would tell every customer that every page they own is under-linked. It would be a correct rule. The data under it is what is missing, which is precisely why it would survive review.
So the engine declines to produce an internal-link finding at all while it has no measured link graph, and today it has none. The crawler writes one; the part of the engine that reads it back has not been built. An absent signal is refused rather than read as a zero, and the missing capability is stated here rather than filled in with a number.
No customer has run any of this. There are no results on this page, and no figures about anybody’s rankings, because there are none to report. The capability pages say exactly what exists today and what does not.
If you are checking links as part of a wider review, the free SEO audit template has a links group that asks the questions above without a number to pass.