use this competitor backlink analysis template to separate recorded link relationships from qualified editorial candidates. the free CSV contains 35 columns for source evidence, comparison limits, page checks and assigned actions, plus a separate file with five hypothetical examples. start with our free backlink research guide to select your data source, then document what each observation supports before deciding whether a publisher deserves further research or a relevant pitch.
this worksheet complements the competitor backlink analysis hub. it does not calculate a Google quality score or turn an export into a contact list. its purpose is to make your decisions inspectable: which snapshot supplied the candidate, what you checked today, and what evidence the next person still needs. use one row per observed source and target relationship, adding separate rows when different pages need different decisions.
download the worksheet
download the blank competitor backlink analysis CSV and download the five hypothetical example rows. the blank file contains headers and one empty row, so you can import it into a spreadsheet without deleting invented observations. the example file uses the same headers. every example hostname uses reserved example domains; no row represents a real publisher, customer or measured campaign.
These files are the 3 October 2026 version of our 35-column worksheet, with five examples in the separate example file. You may copy, adapt, and share the worksheet for your own research. The example rows remain hypothetical.
import the file as UTF-8 CSV and keep URLs and hostnames as text. record dates as YYYY-MM-DD. the competitor field uses a pipe separator for multiple hosts, keeping the CSV column count stable. leave unavailable URLs empty rather than guessing a likely article path. use unknown for an unresolved status; use not_observed only for a bounded dataset observation. save an untouched copy of each original export and place its filename in export_reference so a reviewer can reproduce the comparison.
what each column group records
| column group | what to record | decision it supports |
|---|---|---|
| provenance | observation date, tool, release, export reference | whether two observations can be compared |
| relationship | source host and URL, target URL, competitors, own-site status | what the dataset actually observed |
| limits | scope, returned rows, reported total, cap, truncation | whether absence is unresolved |
| page qualification | check date, HTTP result, link status, anchor, attributes, context | whether the current page supports the claim |
| action | relevance, confidence, evidence, next action, owner, review date | who should do what next |
use source_host for deduplication, but retain source_url when you have page-level evidence. a host-level relationship does not supply the actual linking page. target_url records the destination you inspected, including the full path when known. competitors_observed records hosts shown in the chosen dataset, not every company you consider a business competitor. own_observed_in_dataset and current_own_link_status deliberately remain separate so a historical absence does not overwrite a newer finding.
relevance_status and editorial_context are analyst judgments. support them with a short explanation in notes and a reference in evidence_reference. confidence describes the evidence for your stated observation, not the probability that a link will increase rankings. a confirmed page link can have strong observational evidence while remaining an unsuitable outreach target. a relevant page can remain uncertain when you have only a host relationship and no current placement to inspect.
populate the evidence before prioritizing
choose competitors that serve a comparable audience and address the same research question. export their referring hosts and your own using the same tool, release and scope wherever possible. if one list covers a subdomain and another covers a whole domain, record the difference before subtracting sets. follow the backlink gap comparison workflow for the comparison itself; this resource covers what happens after a candidate appears in the results.
record returned_rows, reported_total_rows and row_cap without substituting one for another. crawlgraph backlink queries return up to 100,000 referring hosts; the returned slice and reported total can differ. the product API documentation describes the available interface and limits. a tool-specific export cap does not mean the complete web has been checked. if your own list is truncated, mark that fact before interpreting an absent source as a gap. when truncation is unknown, retain unknown rather than assuming false.
write “not observed in this export” until you have additional evidence. a domain relationship, a current linking page, an editorial recommendation and a successful outreach request are different findings. the worksheet gives each a place; none should silently stand in for another.
inspect the source page and record the date, response and destination. look at the link in its surrounding paragraph or component. note the anchor and any visible rel attributes without inventing attributes when the page cannot be inspected. Google's crawlable-link guidance explains how links and meaningful anchor context help discovery and relevance. that guidance supports checking the placement; it does not supply a universal pass score for this worksheet.
five hypothetical usage examples
the five cases below correspond to the separately downloadable example file. all dates, counts, check outcomes, policies and host relationships in that file are invented for instruction. the examples show decision handling, not actual crawlgraph output or evidence of an outreach result. compare the evidence fields before reading next_action: the action should follow the observation, not force the observation to fit a preferred campaign.
- 1. a relevant editorial resource Hypothetical row HYP-01 records resources.example.org linking to rival-a.example.com and rival-b.example.com in a fictional export. A fictional page review finds a resource list relevant to your audience, with an ordinary editorial link and no payment request. Keep it as an editorial candidate, then check the contribution policy and whether your own research adds something missing. Two observed competitors help explain why you opened the page. They do not establish a ranking benefit, a willing editor, or a guaranteed outreach success.
- 3. your site already appears on the page Hypothetical row HYP-03 starts with a missing own-site observation in a fictional graph slice. The fictional current-page check then finds a link to own.example.com alongside the competitor. Keep own_observed_in_dataset as not_observed and current_own_link_status as present: the fields answer different questions. Close the acquisition candidate as already_linked_currently. Do not overwrite the historical export to make it agree with the page. This case explains why a dataset gap is a research lead, and why a useful worksheet preserves both snapshot evidence and current findings.
- 4. the page check cannot be completed Hypothetical row HYP-04 has a domain relationship but the fictional source-page request returns HTTP 403. Set page_check_status to blocked and current_competitor_link_status to unknown. The export may still be a valid observation, but the inaccessible page does not establish a removed link, a live placement, or editorial suitability. Assign an owner to inspect an available public page or use an existing permitted browser session. Keep the candidate on hold until evidence improves. Do not invent a source URL or contact an editor using an unverified placement claim.
- 5. a capped comparison needs another check Hypothetical row HYP-05 uses an explicitly illustrative export with 100,000 returned rows against 130,000 reported relationships for your site. Its absence from that slice is not enough to establish an acquisition gap. Mark dataset_truncated as true and evidence_confidence as limited_by_cap. The fictional competitor page is relevant, so retain it as a provisional editorial candidate while checking your own presence separately. A complete returned slice can still be bounded by crawler coverage. Never turn an unknown relationship into a confirmed absence just to make the shortlist look cleaner.
turn qualified rows into a review queue
sort confirmed relevant editorial candidates above unresolved rows only after checking their placement. a multi-competitor overlap can be a useful reason to inspect a page early, but an unrelated template link is still unrelated. Google's spam policies cover manipulative link arrangements, including widely distributed footer or template links. use context to decide whether to pursue a legitimate editorial contribution; do not treat competitor participation as permission to copy a questionable arrangement.
assign one owner and one next action per active row. useful actions include find_source_page, verify_own_presence, check_contribution_policy and draft_relevant_pitch. give unresolved rows a review date rather than repeatedly checking them without a changed source or new evidence. before drafting a request, describe the specific reader problem your resource solves and what it adds to the existing page. if you cannot explain that contribution, keep researching or close the candidate.
keep campaign outcomes separate from candidate qualification. a reply, an accepted contribution and a subsequently verified link need their own dates and evidence. the worksheet does not promise any of those outcomes. start a crawlgraph competitor gap comparison to generate a research shortlist, then import your available results into the blank worksheet. preview limits and paid export eligibility depend on the current product offer; review the current plans before choosing your export route.
faq
is this competitor backlink analysis template free?
Yes. The blank CSV worksheet and separate hypothetical example CSV are free downloads. They organize your research; they do not include a live backlink database. Data access, exports and automated comparisons depend on the tool and plan you choose.
does a missing own-site observation prove a link gap?
No. It means the selected dataset did not show that relationship within its recorded scope. A capped export, crawl coverage or a newer page change can explain the difference. Record the dataset observation and current page check separately.
how should I choose a candidate for outreach?
Confirm the actual page, topic, audience, placement and contribution policy. Identify a useful resource you can offer before making a relevant request. Competitor overlap helps prioritize inspection, but it does not guarantee editorial acceptance or a ranking benefit.
can I combine exports from several backlink tools?
Yes, if you preserve each source, release or retrieval date and scope. Do not collapse different observations into one undated fact. Keep unknown statuses explicit and use current page checks to qualify individual candidates.
documents crawlgraph backlink workflows, open-data methods, and the limits of each report.
plus one when a new common crawl release lands. that is all.