Free template

Link Exchange Tracker Template

A Google Sheets template for tracking link exchange deals: supplier, anchor, target, status, return link, and per-partner balance. Two tabs, one balance formula, no macros.

Use it free for as long as it works. Below, we explain every column, the balance formula, and the specific point at which a spreadsheet starts fighting you.

We will email a Google Sheets and CSV version. No spam, unsubscribe in one click.

Link exchange tracker interface with placement rows, status labels, and a partner balance panel

Definition

What a link exchange tracker does

A link exchange tracker is the record of what you agreed with each link partner, what has actually been published in each direction, and therefore who currently owes whom. It exists because link exchanges settle slowly and asymmetrically. You agree terms in email, one side publishes this week, the other side publishes next month or not at all, and different people on your team may be involved at each stage. Nobody holds that accurately in their head past about a month, which is why the tracker is not administrative overhead but the thing that stops you giving away links for free.

01

The unit of the first tab

One row per placement. An event with a date, a URL, a direction, and a verification status.

02

The unit of the second tab

One row per partner. A relationship with a running balance across every placement in both directions.

03

The column that makes it trustworthy

Last checked. Without a timestamp, every status is an assumption you made at some unknown point in the past.

04

Where it breaks

Around 50 active placements, or the second concurrent editor. Both are predictable and neither is a failure.

Individual link placement events grouped under one partner relationship record
Placement rows record events. The partner record preserves the relationship and its running balance.

The columns

Why each field earns its place

Thirteen columns sounds like a lot for a spreadsheet. Each one is here because leaving it out causes a specific problem later, and I have watched most of those problems happen.

Contact email on the placement row is the one people argue about, because it feels redundant when the conversation is right there in your inbox. Then eighteen months pass, you changed email clients, the account manager left, and a link disappears from a page whose editor you cannot identify. Recovery outreach depends entirely on reaching a person, so this field is the difference between chasing a lost link and writing it off.

Last checked is the column that separates a verified inventory from a list of things you believe.

Deal type looks bureaucratic and is the field that makes your history readable. A paid insertion, a mutual exchange, and a guest post carry completely different obligations, and once they are all recorded as link, you cannot tell a year later whether a partner owes you anything. It also matters for disclosure, since a client or a finance team asking what we paid for needs a filter rather than an archaeology project.

Two date columns rather than one, agreed and published, because the gap between them is your time to live. That number tells you whether your bottleneck is outreach or content production, and it is invisible if you only record when a link went live.

Anchor text agreed, as distinct from what got published. Drift is normal, especially with insertions where an editor rewrites the sentence around your link. Recording what you asked for is what lets you notice, and noticing in month one means a polite correction while noticing in month six means an awkward request.

Supplier placement URL, not just the domain. You cannot verify a link without knowing the exact page it sits on, and a surprising number of trackers record only the domain, which makes the whole verification workflow impossible.

Then last checked, which I would argue is the most important column in the sheet and is the one almost always missing. Its absence is what turns a tracker into a wish list: every row shows a status, none of them tell you when that status was last true.

The formula

How the balance tab works

The partner tab has one row per supplier domain and three meaningful columns: links received, links given, and balance. Received counts placements on the first tab where the direction is inbound and the status is live. Given counts the outbound ones. Balance is received minus given.

Status matters in that count and people usually forget it. If you count agreed rather than live placements, your balance flatters whichever side has made promises rather than published links, which is exactly backwards from what you need to know. Only count what has been verified live, and only within the last check interval you trust.

For authority weighting, add two columns multiplying each count by a domain rating. The important detail, and the one spreadsheet versions almost always get wrong: value received uses the partner's rating, while value given uses yours. A link on your site carries your authority to them, not theirs. Multiplying both sides by the partner's rating produces a number that looks rigorous and means nothing.

Three way A-B-C exchanges need care. You link to B, B links to A, and there is no direct reciprocal pair anywhere. Record each leg as its own row with the actual direction, and note the chain in the notes column. The failure mode is counting the same obligation twice, once against B and once against A, and concluding that a partner owes you links they never agreed to.

Finally, add a conditional format that highlights any partner where given exceeds received by two or more. That highlight is the entire point of the tab. A balance column nobody looks at does not change behavior, and the behavior you are trying to change is publishing one more link for a partner who has stopped reciprocating.

Formula rules to keep straight

  • Count live placements only, never agreed ones
  • Value received uses the partner's domain rating
  • Value given uses your own domain rating
  • Record each A-B-C leg once, in its real direction
  • Group by domain, not by contact or by deal
  • Highlight deficits of two or more automatically
Partner balance calculation using verified received and given links, plus the three legs of an ABC exchange
Count verified live placements only, and record every leg of a three-site exchange once.

Setup

Getting the sheet working

Fifteen minutes to set up properly, and the fifth step is the one that determines whether you are still using it in six months.

  1. 1

    Copy the sheet and delete the sample rows

    Keep one sample row visible somewhere while you learn the structure, then remove it. Sample data left in a live tracker eventually ends up in a client report, which is a small humiliation worth avoiding.

  2. 2

    Set your own quality bar in the notes tab

    Write down the thresholds a domain has to clear before you will pitch it: authority floor, language, outbound link limit, and anything your clients will not accept. A written bar holds during the last week of the month, when an unwritten one bends.

  3. 3

    Backfill everything you already have

    Including placements built before you started tracking. This is the step people skip and it is where the value is, because the old links you have never verified are the ones most likely to be dead.

  4. 4

    Add the conditional formatting

    Highlight over-given partners, and highlight any row whose last checked date is older than your cadence. Two rules, and they turn a passive record into something that tells you what to do when you open it.

  5. 5

    Put verification on your calendar

    A recurring block, monthly at minimum. This is the step the whole system depends on, and it is the first thing to slip when client work gets busy. If it is not on a calendar with an owner, it will not happen.

  6. 6

    Decide your trigger for outreach

    Write down what turns a failed check into an email: a removed link gets contacted within two weeks, a pending return link gets a nudge at 14 days, an over-given partner gets paused. Rules beat judgment when you are tired.

Honest limits

Six ways this sheet will fail you

Not reasons to buy software today. Reasons to recognize the moment when the spreadsheet has stopped being the right tool.

It does not check anything

The sheet records what you typed, not what is true on the web. Every status is only as fresh as the last time a human verified it, which is usually longer ago than they think.

Formulas break silently

Someone inserts a row, a range shifts, and the balance column is wrong. Nothing announces it, and people keep trusting the number for months.

Two editors is one too many

Concurrent edits, conflicting notes, and no record of who changed what. This is the threshold that pushes most teams off spreadsheets, ahead of row count.

Rollups are manual

With a sheet per client, answering how much does the agency owe this partner in total means opening every file. That question gets asked more as you grow.

No reminders

A return link promised in March needs chasing in April. A spreadsheet will never tell you that. It waits to be asked, and mostly it does not get asked.

No history

Overwriting a status column destroys the timeline. You cannot compute survival rate, cannot say when a link died, and cannot show a client a trend.

Straight talk

When to stay on the spreadsheet

This is a page on a software vendor's site telling you when not to buy the software. That is deliberate, because the alternative is selling a tool to someone who does not need it and watching them churn in two months.

Stay on the sheet if you have one client, under 50 placements, and you are the only person editing. The full argument for and against runs longer than this section. At that size manual verification is an hour a month, the balance formula will not break because nobody else is touching it, and the reminders live in your head adequately because there are not many of them. Paying for software here buys you convenience rather than capability.

Move when one of three things becomes true. A second person needs to edit, which is when conflicting edits and formula breakage start. Your inventory passes roughly 50 to 100 links, which is when verification stops fitting into an afternoon and quietly stops happening. Or a client asks a question you cannot answer in under a minute, which is the clearest signal of all, because it means the record has stopped serving its purpose.

There is one more trigger worth naming, and it is the one that actually costs money, because balance only shows up in aggregate. If you are running exchanges with more than a handful of partners and you cannot say confidently who owes you links right now, you are almost certainly net negative and subsidizing partners who noticed you were not counting. That is not a spreadsheet problem exactly, it is an attention problem, but the sheet is what makes it invisible.

Either way, take the template. It is a decent sheet, it costs nothing, and the columns map closely to our import format if you do eventually switch. The worst outcome for both of us is you tracking link exchanges in your head.

Terminology

Fields and concepts

Definitions for the terms used in the template and in this page.

Placement
A single published link. The unit of the first tab, with a date, a direction, and a verification status.
Partner
A domain you trade links with. The unit of the second tab, carrying a running balance across all placements.
Direction
Whether a placement is a link you received or one you gave. The field the balance formula depends on.
Return link
A link owed in an exchange. Blank in the return link column means the obligation is still open.
Exchange balance
Links received minus links given for one partner, counting only verified live placements.
Deal type
A-B, A-B-C, 2:1, insertion, guest post, or paid. Makes history readable and disclosure answerable.
Time to live
Days between the agreed date and the published date. Tells you whether content production is your bottleneck.
Last checked
When this row's status was last verified. The column that separates data from assumption.

Questions

Frequently asked questions

When does this template stop working?

Around 50 active placements, or the moment a second person needs to edit it. Those two thresholds arrive for different reasons: 50 is where manual verification stops fitting into an afternoon, and the second editor is where formula breakage and conflicting edits begin. Below both, this template is genuinely the right tool and we would rather you used it than paid us.

Can I use it for client work?

Yes. Duplicate the sheet per client, or add a project column and filter. Duplicating is cleaner for two or three clients. Past that, the per-client copies drift apart, the same supplier appears in several files with different notes, and rolling anything up becomes a manual afternoon.

Does it calculate exchange balance automatically?

Yes, on the partner sheet. The balance column subtracts links you gave from links you received for each partner. It handles straightforward two party exchanges well. Three way A-B-C chains need careful manual entry, because each leg has to be counted once and only once, and this is where most spreadsheet versions quietly go wrong.

Why is there a separate partner sheet?

Because a partner is a relationship and a placement is an event, and mashing them into one tab is the main reason spreadsheet link tracking collapses. One row per placement on the first sheet, one row per partner on the second, with the balance formula looking across. Keep that separation and the sheet stays usable much longer.

What formula does the balance column use?

A count of placements where the direction is received, minus a count where the direction is given, grouped by partner domain. Straight count rather than weighted by authority. If you trade with sites much stronger or weaker than yours, add a column multiplying count by domain rating, and remember that links you gave carry your rating rather than theirs.

Should I track nofollow status in the sheet?

Yes, add a rel column. It is the field most likely to change without anyone telling you, and a placement that switched to nofollow looks completely fine on the page. Without that column you will report it as a live dofollow link indefinitely.

Is Excel or Google Sheets better for this?

Google Sheets, mainly for version history and because sharing a link beats emailing a file. The template works in Excel if that is your environment, though you lose the revision history that occasionally saves you when a formula gets overwritten.

Can I import this into LinkSwapy later?

Yes, and the column structure is deliberately close to what the CSV import expects. Import deduplicates by domain and shows a preview before committing, so a messy sheet does not silently overwrite anything. Most teams bring in a couple of years of history in one pass.

When the spreadsheet stops scaling

LinkSwapy does everything in this template, then adds the parts a sheet cannot do: automated verification, reminders, history, and cross-project rollups.