For the sake of your visibility on search engines (like Google), an SEO (search engine optimization specialist) will tend to talk to you about optimizing your internal linking. But what is internal linking, how do you work with it and what is the logic behind this onsite SEO lever?
What is internal linking?
From site structure to user experience:
In internal linking, there are 2 terms, the main one being “linking” (we could use “mesh”): we represent the structure of a site through the links that are made from source page to target page, like the meshes of a net or the lines of a spider’s web, and we indicate “internal” because each link concerned starts from one page of this site to arrive on another page of the site.
The purpose of these links is to enable the user, or rather the visitor, to discover different pages of the website through the links he or she uses. I’m talking about visitors here, because visitors aren’t necessarily just humans – they also include search engine robots and other crawlers such as Google.
But one essential principle remains: these internal links should normally serve a purpose for the user, who will use them while browsing and, in the best-case scenario, end up buying, registering or continuing to read on your site.
Unfortunately, this essential principle doesn’t take into account the fact that you need the various pages of your site to be accessible to these users from the outside, and in order for search engines like Google to serve these pages, Google’s robot must be able to crawl over them, and since its crawling method goes through these links (among others, but mainly), you need to serve all the pages your site through your mesh.
However, the robots that run the web don’t have the bandwidth (not even Google’s) to see all the pages of all the existing sites (and even if they did, the cost would be too high to justify a functional service without this exhaustiveness). So, they need a way to prioritize the pages they’re going to visit, and Google has come up with a mathematical method that SEOs are very familiar with and are quick to use: PageRank (PR), which serves as the probability that the next page on their list of pages to visit will be interesting.
How can this mesh be represented mathematically?
This PageRank can be calculated at site level, considering all the outgoing links on every page we know about.
What does this mean in concrete terms? Well, quite simply, after a crawl using an appropriate tool (screaming frog, for example), all we need to do is export the list of outgoing links (since each page on the site may have links to other pages on the site, but these are still links that “leave” the source), and start calculating page rank on this list of links. (Note that when you extract the list of outgoing links, you also keep in the list the links that are made outside the site, so don’t filter them out).
So how do we go about it? PR simulation depends on what we call a web graph, represented by nodes and edges.

Representation of a site and its internal mesh

: node

: edge
The PageRank of a page is the value attributed to that page through the links it receives from other pages. Thanks to this calculation, we can assess the importance a page seems to have from the point of view of its internal links.
All we must do is calculate the most suitable PR for the dataset provided.
There are several types of PageRank:
- The classic PageRank, which every SEO knows, takes into account the value of a source page, the number of outgoing links from this page, and adds up for the target page. This PageRank is “old-fashioned”, but remains the simplest to calculate, via Gephi, which is easy enough for those who prefer an interface.
- Reasonable random PageRank: in addition to the classic, this will add a dimension of importance depending on the position of the link in the list of outgoing links when analyzing the HTML rendering of a page. The first link has a higher weighting factor than subsequent links, providing an opportunity to modify links to improve the transmission of priority links.
- A themed PageRank: in addition to the reasonable random PageRank, here we’ll make sure to add a new factor to the transmission calculation, the notion of proximity (the inverse of distance) between the source document and the target document, which can be calculated with the distance between the embedding of the source content and the embedding of the target content. In my opinion, this version is the most interesting, as it can be activated quite easily thanks to LLM embeddings (which are literally the best embedding methods available): you can rely on an LLM like Ollama for embedding and provide a fairly reliable distance calculation.
Formulas can be used for various factors:
For the notion of reasonable randomness, the gross weight is calculated using this formula:

We can normalize this formula to have a result of the sum of all weights that is equal to 1 in order to be able to compare the weights and distribute the probabilities correctly:

Where N is the number of links on the page, P the position of the link in the list of outgoing links, W is the weight, J the source page and i the target page, the PageRank formula thus becomes:

Finally, regarding the notion of themed PageRank, here we need to calculate proximity via the Eudlidian distance between two embeddings. For this factor, we need another formula:

Here, e i and e j are the 2 embeddings whose inverse distance is identified. The closer the embeddings are, the closer the value is to 1, the further apart they are, the closer the value is to 0.
The PageRank formula can be updated and used :

We adjust this formula by adding a weighting for each added factor (S, w) to adjust the weight they carry.
And this formula will adapt correctly to adjustments to be made after the fact on simulations of link modifications.

With α the weight assigned to the importance of similarity and β the weight assigned to the importance of link position. (What weight for these values? It’s up to you to see what makes sense).
The freedoms of PageRank simulation
The advantage of PageRank is that it’s a formula that can be applied based on a list of links and some additional information about the pages that make up these links.
The disadvantage is that sometimes reality, linked to the technical constraints of certain CMS, means that a meshing strategy always has to be double-checked once it’s online.
(Yes, I’m thinking of one CMS in particular, and I’m sure you’ve got some in mind too, that don’t really allow for mesh optimization).
That said, if we return to the advantages of simulation, we should consider that it brings us another benefit: the possibility of automating recommendations.
In an internal link optimization strategy, there are numerous optimization possibilities: we’ve seen that there are optimization possibilities via the use of semantics and link placement, but there’s also the notion of link quantity, which can vary: you can decide to create or delete links, as we’ll discuss later in this article.
But before that, you need to think about priorities, because each player may have a different notion of which urls to put forward. And since internal meshing serves several purposes, it’s sometimes necessary to help decision-makers find the right balance on a scale of choices
The slider of the internal linking strategy
It’s sometimes said that internal networking requires a compromise between business interest and “user experience”. In reality, there’s nothing categorical about it. In your meshing logic, it’s important to highlight strategic pages, while avoiding pushing non-priority pages too far. Most of the time, this also applies to the navigation logic for users, but surprises do happen.
First and foremost, the objective of any optimization attempt must be to push pages of strategic interest, whether these are pages that will lead users to buy your products, subscribe to your newsletters or consume your content in one way or another, depending on your objectives. This notion of priority varies from one site to another, and we can’t decide for the site what it wants to put forward. Sometimes, even within a company, several departments may have different objectives.
We can talk about the acquisition objectives of a content creation team, whose aim is to legitimize the brand for users who will convert after the fact, and the sales objectives of a sales team, whose aim is to convert directly.
These objectives are not incompatible, but they do need to coexist in order to push the objectives of each of these services forward in a balanced and sufficient way.
Once I’ve chosen my strategy, what do I do?
How should priorities be formulated?
It’s quite simple: our aim is to highlight a list of pages, which are then arranged in linear order of importance.
There are a number of approaches you can take to facilitate this ranking, by assigning an amount based on the number of potential visits, or on the overall cost of the page, or an expected return on investment, or a key performance index specific to your interests – in short, you have plenty of possibilities for ranking your list of pages. Bear in mind, however, that some pages are more difficult to highlight than others in the semantic proximity approach.
Taking semantics into account
In fact, semantics can be quite essential (as we’ve just seen with the page rank formula adapted to semantics) via the embeddings method. This method takes the distance between contents into account, but it’s important to remember that this notion of distance doesn’t allow for an equal distribution between each link (and that’s kind of the point), but it does mean that certain pages will naturally be more complicated to push, requiring more effort to highlight them, as they are less surrounded by similar pages than the site’s other pages.
We can therefore try to optimize, among other things, the link between two contents by adapting the text of these two contents or by producing an intermediate text which will serve to optimize the transmission between each content
Here, a few illustrations are in order to easily integrate the complexity of using semantics in internal meshing:
Let’s take the spatial representation of a site with many urls:

Here’s a 2-dimensional representation of a site with numerous urls (circles). We can see that some are closer than others, to the point where we can represent a cluster of these contents in the form of a circle that groups said contents together

Here we have a cluster of pages with very similar subjects. It’s therefore easy to create a mesh between pages in this cluster.

These pages, on the other hand, will be more difficult to mesh with pages from the previous cluster. But between them, no problem.
Now, we also need to explain that this notion of distance (added to the damping caused by the teleportation factor) is at the root of a weakening of the overall signal transmission when a link neighborhood is made via increasingly distant pages.
The principle, in this case, of a semantic meshing strategy within a restricted group of pages is similar to certain strategies known as “semantic cocoons”, where the use of intermediate pages that are semantically close to several other pages enables better transmission.
Modifying existing links: reasonable random PageRank leverage
Another technique consists of simply modifying existing links in order to make the best use of the available mesh, without touching, adding or deleting too many links.
As we saw earlier, modifying links means changing their position in the list of outgoing links from a source page. Overall, this means putting links to the list of priority pages first, and moving links to non-priority pages whose Internal PageRank scores are higher than those of our priorities down the list of outgoing links.
However, be careful with the number of outbound links: I don’t recommend placing a link beyond the 100th position on a source page, as it may not really be worth much.
Creating or deleting internal links: what you need to know
The limits of creating links
When it comes to optimizing internal links, link building can’t always lead us to give top priority to our url list. There’s a limit to how far we can go with link building, specifically when we want to use the notions of intrinsic weight to semantics and position.
So sometimes we have to turn to other opportunities to improve the internal PageRank score we can find on priority pages, and in particular relative to other pages on the site, since this is really what we’re trying to do in internal link optimization.
Since we’re trying to push certain pages to the detriment of others, there are several techniques to try:
- Remove links to low-priority pages
- Add links to priority pages and their parents
- Modify links to priority pages so that they always appear at the top of the page
- Obfuscating certain links can still be useful if only the HTML rendering is considered (which is simpler at first).
The counter-intuitive advantage of deleting links
One of these other opportunities is to try to remove links that are made to pages that won’t be a priority, so that we can better distribute PageRank to the really important pages.
The recommendation is therefore quite simple: to push certain pages, you need to de-prioritize others.
A good diagram will be better than a long speech, so let’s represent the mesh within a site as I’m used to doing

Here, our Priority page should receive more PageRank than the Top or Competing page.
What to do? Removing the link from Top to Competing should be enough to improve Prio’s relative strength compared to the rest of the urls. Removing the link from Prio to Top doesn’t have a huge impact, other than to reduce Top’s importance.
But should we remove outgoing links from priority pages?
NO! These outgoing links help to transmit PageRank within the site. You can reduce the number of outgoing links and specifically choose pages that will allow PageRank to return to the priority page, but deleting all outgoing links will do more harm to your site as a whole than good to your priority urls.
Some of the links I want to remove are of interest for user interaction. What can I do?
There are several possibilities:
- These are not links to be deleted because the urls they serve are really in your priorities.
- These are links that serve someone else’s priorities, and you may wish to make them “disappear” from the mesh via obfuscation.
A quick look at link obfuscation
Finally, let’s focus on link obfuscation, the subtle technique of modifying the HTML rendering of certain links to reduce their impact on PageRank transmission, without removing them and compromising the user experience.
Instead of removing a link which, because of its usefulness for navigation or interaction, deserves to remain visible to your visitors, you can “hide” its value from the search engine robots.
In concrete terms, this could take the form of JavaScript modifications to make the link less “heavy” in terms of authority transmission, or server-side cloaking (by agent detection) of the “link” part.
The aim is twofold: on the one hand, to preserve the fluidity of navigation and the relevance of the user interface, and on the other, to refine the distribution of PageRank by redirecting the power of the signals to the pages with the highest priority.
From the point of view a conventional search engine using HTML links, these links are invisible and do not serve the web graph. From the point of view of a javascript rendering engine, however, javascript obfuscated links are perfectly legible.
A simpler technique consists in referring to a javascript code that is incidentally placed in a file not accessible to robots.
Another possibility is to use buttons instead of links to make a no-follow link, but beware, if in the HTML you have a string that looks like a link, chances are the Googlebot will try to access it anyway.
Beware of cloaking and obfuscation techniques in general, serving different content to robots and humans is quite frowned upon, even if in reality there’s probably not a big campaign against it, it’s something that can happen.
All in all, link obfuscation is a technique that can be fully envisaged, but whose sustainability is uncertain over the long term.
Guidelines to follow
We’ve seen all kinds of techniques for improving a site’s internal mesh and optimizing internal page rank, including modifying links, adding links to priority pages and deleting links to non-priority pages.
There are 2 major safeguards to keep in mind when considering the number of outgoing links and the number of incoming links to each page. You shouldn’t have more than a hundred outgoing links. Google says “allow” up to 200 links, and beyond 300 links there’s no PageRank transmission, but internally on a site, a hundred outgoing links are more than enough.
From the point of view of the number of inbound links, there is a minimum to respect: at least one inbound link per site url, and all urls must be accessible from the home page, directly or indirectly.
In conclusion, internal linking is an interesting strategy for optimizing the distribution of PR for SEO purposes for certain urls on a website. It consists in creating internal links between the various pages of a site, to improve their visibility on search engines like Google. This strategy generally goes hand in hand with work on the user experience, to make it easier for users to navigate through the site’s content.
When implementing an internal linking strategy, consider the use of relevant semantics for each link, and the optimal placement of these links on the source pages. A well-thought-out internal linking strategy, based on regular analysis of page performance and continuous adaptation to your site’s business imperatives, will have a lasting impact on your performance.
Acknowledgements :
Thomas Largillier & Sylvain Peyronnet: Algorithmic & mathematical advice
Guillaume Peyronnet: Technical advice
Lucie Cazenave – Peyronnet: Writing advice