Backlink exchange overview
Join the opt-in partner network, install the Partners block and see who links to you.
Backlink exchange is an opt-in, reciprocal partner network. Each member website shows a visible block labelled “Partners” with links to 5–10 relevant member sites, and receives the same number of links back in other members' blocks. Open Backlink exchange in the app, choose a verified website on an active plan and fill in the settings.
Guidelines this module follows
Google's spam policies describe excessive link exchanges and links passed mainly to manipulate rankings as link spam, and ask that sponsored or reciprocal links be qualified with rel="sponsored" or rel="nofollow". To stay within those guidelines, the module enforces these rules and they can't be switched off:
- Links are visible to every visitor and the HTML is identical for people and crawlers: no hidden or collapsed blocks, CSS tricks, cloaking or user-agent switching.
- Links sit inside a block labelled “Partners”.
- Every link has rel="sponsored noopener" by default, or rel="nofollow noopener". There is no followed-link option.
- Anchor text is your brand name or domain only, never a keyword.
Settings
- Category and language (required) and country (optional). You're only matched within your language.
- Links shown: 5–10, up to your plan's limit (Starter 5, Growth 6, Scale 8, Pro/Business/Enterprise 10). You receive the same number back.
- Anchor: brand name (up to 5 words, no keyword lists) or domain.
- Target URL: an https:// page on the same website.
- Excluded categories and domains: neither side is matched with them.
- Link attribute (sponsored or nofollow), theme (auto, light, dark) and style (list or compact).
Install the script
Paste the snippet from the Install section where the block should appear on your homepage (the footer is fine). The placeholder reserves its height so nothing shifts while it loads. The script is under 3 KB gzipped, has no dependencies, loads async, sets no cookies and follows the visitor's light/dark preference in auto mode.
<div data-partners="YOUR_KEY" data-theme="auto" data-style="list" style="min-height:163px"></div>
<script src="https://serpfull.com/p/v1.js" async defer></script>Server-side HTML and JSON
Without JavaScript, fetch https://serpfull.com/api/exchange/v1/YOUR_KEY/html from your server, cache it for up to a day and print it (add ?css=0 to leave out the styles; you can also place it inside <noscript>). Custom renderers can read https://serpfull.com/api/exchange/v1/YOUR_KEY, which returns the label, rel value, theme, style and links. Both responses are public, the same for every client and cached at the CDN for up to 15 minutes. Custom renderers must keep the “Partners” label, the rel value and visible links.
Joining and presence checks
Press “Check install and join”: we fetch your homepage from our servers and look for the block (placeholder plus script, or the server-side HTML) and for obvious hiding such as display:none, the hidden attribute or off-screen positioning. After you join we check daily. If the block is missing or hidden on two checks in a row, your links on other members' sites pause, you get an in-app notification and an exchange.link_missing webhook; we then re-check hourly and resume automatically once it's back.
Matching
Partners are matched within your language, preferring the same category and then the same country. Your own organisation's sites, excluded categories and domains, blocked partners and banned domains are never matched, and only verified websites on an active plan that aren't paused take part. The network is built so every site shows as many links as it receives, avoids direct A↔B swaps where the pool is large enough, keeps assignments stable between hourly runs and rotates about a third of each site's partners every 30 days.
Dashboard
- Status, last check, links shown and received.
- Partners shown on your site and sites showing your link, with impressions and clicks for 7, 30 or 90 days.
- Report a partner (reviewed by our team) or block it; blocked partners are never matched with you again.
- A light and dark preview of your block.
Counting without cookies
The script sends one impression when the block scrolls into view and one request per click, both without cookies. We store daily totals per link only; no IP address or other identifier is kept. The server-side HTML option isn't counted.
Notifications, webhooks, export and API
- In-app: Settings → Notifications → Partner network.
- Webhooks: exchange.installed, exchange.link_missing, exchange.partner_added.
- CSV: daily impressions and clicks per partner in both directions, plus assignment history.
- GET /api/v1/projects/{id}/exchange: enrolment, settings, links shown/received and plan limit.
- GET /api/v1/projects/{id}/exchange/partners?days=30: current partners in both directions with impressions and clicks.
Sponsored and nofollow links are treated by search engines as hints, so the value of the network is visibility and referral visits from relevant sites rather than a direct ranking boost.
Updated