How RankForge calculates authority flow

Authority flow is the movement of link equity through your internal graph — which pages accumulate it, which pass it on, and which leak it away. RankForge models this with an internal-PageRank computation tuned for the realities of real sites: discounted navigation links, nofollow, canonical consolidation, redirect chains, JavaScript rendering, and duplicate URLs. This article explains the model end to end, at the level an SEO who wants to trust the number actually needs.

account_tree

Run the Authority Flow Checker on your site — free, no account.

See your authority flow free

Why internal authority is worth modelling at all

Every internal link is a vote and a pipe. As a vote, it tells search engines a page is worth visiting; as a pipe, it carries a share of the linking page's authority to the target. Backlinks decide how much authority enters your domain, but your internal graph decides where it ends up — and on most sites the answer is 'pooled on the homepage and a handful of hubs, nowhere near the pages that need to rank'.

You can't fix what you can't see. A page-by-page audit shows you that /pricing has a weak position; it doesn't show you that /pricing receives one nofollowed footer link and nothing else, while three dead category pages soak up most of your homepage's authority. Modelling authority flow makes the invisible plumbing visible, which is the precondition for the structural fixes that move rankings.

PageRank, in the form that still matters

Forget the deprecated toolbar number. PageRank is an algorithm, and the algorithm is alive and well as a model of how importance propagates through a link graph. The intuition: a page is important if important pages link to it, recursively. The mechanic that makes it computable is simple — each page divides its authority evenly among its outbound links and passes it along; you iterate until the numbers stop changing.

One iteration of authority passing
A has authority 1.0 and 2 outbound links:
   A(1.0) --> B        B receives 0.5 from A
   A(1.0) --> C        C receives 0.5 from A

B has authority 0.5 and 1 outbound link:
   B(0.5) --> C        C receives another 0.5 from B

After this pass C holds the most authority because two
pages point to it — one of which (B) was itself fed by A.
Iterate until values converge.
Importance is recursive: C is strong not just because two pages link to it, but because one of those pages (B) is itself well-fed. This recursion is the whole point — and the reason you can't judge a link's value without looking at the entire graph.

The damping factor, at a high level

Raw link-passing has a problem: authority could circulate forever in loops, or get permanently trapped in pages with no outbound links. PageRank solves this with a damping factor (classically ~0.85). The interpretation is a 'random surfer' who follows a link about 85% of the time and, the other 15%, teleports to a random page. Practically, damping means a small, constant baseline of authority reaches every page — and that authority doesn't propagate infinitely far, so a link's value decays with each hop it travels.

info

Why this matters for you: Because authority decays per hop, a link from a page two clicks from your homepage is worth far more than the same link ten clicks deep. This is the mathematical reason crawl depth and authority are two views of the same problem.

Not all links are equal: link-type weighting

Textbook PageRank treats every edge identically. Real search engines don't, and neither does RankForge — because a link's placement on the page tells you how much it was 'meant'. RankForge classifies each internal link by where it sits in the rendered DOM and weights its contribution accordingly.

Link types by structural value
LINK TYPE     WHERE              VALUE   WHY
────────────  ─────────────────  ──────  ──────────────────────────
Contextual    in main content    HIGH    editorial, topical, chosen
                                          for THIS page
Navigation    global menu/header  LOW     same on every page; generic
Footer        global footer       LOW     boilerplate; often "junk
                                          drawer" of links
Sidebar       module/widget       MEDIUM  semi-curated; varies by
                                          template, sometimes topical
A site-wide nav link appears on thousands of pages with identical anchor text — search engines discount that heavily. An in-body contextual link was placed deliberately, in topical context, with descriptive anchor text. Counting them equally is the most common error in DIY internal-link audits.

Contextual links

In-body editorial links are the high-signal edges of your graph. They carry topical context, descriptive anchor text, and the implicit endorsement of being chosen for that specific page. RankForge weights these most heavily — they are where you actually steer authority, and where its recommendations focus.

Navigation and footer links

Global navigation and footer links are structural plumbing: they appear on every page, so their per-link signal is low and search engines discount them. They still matter — a link in the main nav puts a page one click from everywhere, which is great for crawl depth — but you can't fix a buried money page by adding it to the footer and expect it to rank. RankForge counts them, flags when a page's only inbound links are boilerplate, and weights them down so they don't inflate the picture.

Sidebar links

Sidebar and widget links sit in between — 'related posts', 'popular in this category'. They're semi-curated and sometimes topical, so they get a middle weight. The trap is auto-generated sidebar modules that link the same 'recent posts' from every page: that's navigation in disguise, and RankForge treats site-wide repeated modules accordingly.

The edge cases that wreck naive models

A model that only handles clean <a href> links on static HTML will badly misread a real site. Here is how RankForge handles the things that actually distort authority graphs in the wild.

Nofollow

A rel="nofollow" (or sponsored/ugc) link is a hint that the linking page doesn't fully endorse the target. RankForge treats nofollowed internal links as carrying little to no authority — so if a page's only inbound internal links are nofollowed, it's effectively orphaned from an authority standpoint even though a crawler can still reach it. Sites nofollow internal links far more often than they realise (login, cart, faceted filters), quietly starving real pages.

Canonicals

A rel="canonical" tag says 'treat this URL as that one'. Authority should consolidate onto the canonical target, not stay split across duplicates. RankForge follows canonicals so that links pointing at /product?color=red and /product both feed the single canonical /product — modelling the consolidation search engines perform rather than counting each variant as its own page. Mismatched or self-conflicting canonicals are flagged because they leak authority into pages that should never have been separate.

Redirects

Links pointing at a URL that 301-redirects pass their authority through to the destination, minus a small loss per hop. RankForge resolves redirect targets so authority lands on the live page — and flags redirect chains (A→B→C→D), where each extra hop bleeds equity and slows crawling. A surprising amount of internal authority is lost to internal links that were never updated after a URL changed.

JavaScript-rendered links

If a link only exists after client-side JavaScript runs, whether it counts depends on whether the crawler rendered the page. RankForge distinguishes links present in the server-rendered HTML from those that require execution, because relying on JS-injected internal links is a real risk — they're crawled less reliably and later. When a site is heavily client-rendered, the authority model says so rather than pretending the rendered graph is the whole graph.

Duplicate URLs

Trailing slashes, uppercase, tracking parameters, session IDs, and faceted filters spawn many URLs for one page. Naively, each looks like a distinct node and the page's authority shatters across them. RankForge normalizes URLs and consolidates duplicates (respecting canonicals) so a page is one node in the graph — otherwise the most-linked page on the site can look weak simply because its votes are scattered across thirty address variants.

Orphan pages

An orphan has no inbound internal links, so in the authority model it receives only the tiny damping baseline and nothing else. It's the clearest possible signal of wasted potential: the page exists, but the graph routes no equity to it. RankForge lists orphans explicitly and, where the page is worth keeping, recommends contextual links from relevant, already-authoritative pages.

Link depth

Because authority decays per hop, the click-depth of a page from strong entry points is inseparable from its authority. RankForge computes depth from the homepage and other high-authority hubs, and surfaces the distribution — a long tail of valuable pages at depth 4+ is both a crawl-frequency problem and an authority problem at once. Fixing depth is often the single highest-leverage authority move on a large site.

How RankForge assembles the model

Putting it together, the pipeline is: crawl the site → normalize and consolidate URLs (canonicals, redirects, duplicates) → build the directed link graph with each edge tagged by type (contextual / nav / footer / sidebar) and rel attributes → run a weighted, damped PageRank over that graph → read out per-page authority, plus where it pools (hubs) and where it leaks (dead ends, nofollow traps, redirect loss).

The authority-flow pipeline
  crawl ──> normalize URLs ──> build typed graph ──> weighted
            (canonical,          (edges tagged          PageRank
             redirect,            contextual/nav/        (damped)
             dedupe)              footer/sidebar,           |
                                  follow/nofollow)          v
                                                    per-page authority
                                                    + pools / leaks /
                                                      orphans
                                                          |
                                                          v
                                                  ranked link fixes
Authority is computed once, in the backend, over a graph that already reflects canonicalization and link-type weighting. Every downstream view — the score card, the maps, the PDF — reads that single computation rather than re-deriving it.
info

Single source of truth: The authority numbers you see in the web report, the recommendations, and the PDF all come from this one computation. That's deliberate — duplicated scoring logic drifts, and a report that contradicts itself is worse than no report.

Common misconceptions about internal authority

warning

“Adding more internal links raises a page's authority for free.” Authority a page passes is divided among its outbound links. Adding a link to page X dilutes every other link on that page. Net authority is conserved — you're redistributing, not creating. Add the link that matters and consider removing ones that don't.

warning

“The homepage should link to everything important.” A homepage that links to 150 pages passes a negligible share to each. Concentrate the homepage's outbound links on a small set of genuinely top-priority destinations and let those hubs distribute further down.

warning

“Footer links solve buried pages.” Footer links are site-wide boilerplate and heavily discounted. They improve crawl reachability marginally but barely move authority. A buried money page needs contextual links from relevant in-body content.

warning

“Internal PageRank is a Google ranking factor I can game.” It's a model of how authority propagates, not a dial Google exposes. Use it to find pages your own structure is starving, not to chase a number. The win is fixing real dead ends, not optimizing a metric.

Why the recommendations actually improve authority

The point of modelling authority flow isn't the score — it's that the model tells you exactly which link to add. Because RankForge holds the full graph, it can identify pages that are authority-rich and topically relevant to a starved target, and recommend a specific contextual link: from this page, to that page, with this anchor text. That's a link that shortens depth, passes real (non-diluted, followed) equity, and reinforces a topical relationship — the three things that move the model and, with it, rankings.

It also tells you what to stop doing: prune the redirect chains, fix the canonicals leaking equity, and trim mega-menu bloat that's diluting every link. Read the companion pieces on building topic clusters and improving crawl depth for the tactical playbooks, or run the checker below to see your own authority map.

FAQ

Is this the same PageRank Google uses?expand_more

It's the same family of algorithm — importance propagating recursively through a link graph, with a damping factor. RankForge applies it to your internal links with link-type weighting and real-world handling of nofollow, canonicals, redirects, and duplicates. It models how authority flows; it is not a copy of Google's exact, private system.

Does adding internal links always help?expand_more

No. The authority a page can pass is divided across its outbound links, so adding links dilutes the existing ones. The right move is adding relevant, contextual links to pages that are genuinely starved — and often removing low-value links elsewhere.

How does RankForge handle nofollow internal links?expand_more

It treats nofollowed internal links as passing little to no authority. If a page's only inbound links are nofollowed, RankForge flags it as effectively authority-orphaned even though a crawler can still reach it.

What about JavaScript-rendered links?expand_more

RankForge distinguishes links in the server-rendered HTML from those that require client-side JavaScript. Relying on JS-injected internal links is risky — they're crawled less reliably — so when a site is heavily client-rendered, the authority model caveats it rather than treating the rendered graph as complete.