1import{r as p,j as e,a as f}from"./index-DZOQM2QL.js";import{u as b,F as y,D as k,G as j,S as w,k as N,A as v,b as S,l as A,E as d,f as c}from"./freeGlossary-CtdGfrCU.js";import{u as D}from"./freeJob-CdRA4ujy.js";function L(){const[a,s]=p.useState(""),{job:r,error:i,busy:l,start:t}=D(),h=b(),g=x=>{x.preventDefault(),t(()=>f.freeBacklinks({domain:a,...h.fields()}),{translateError:h.handleRefusal}),h.resetCaptcha()};return e.jsxs(y,{title:"Who links to your website?",blurb:"Search engines treat a link as a recommendation. This counts yours, names the ten sites sending the most, and shows the words they link with.",footer:"This is a snapshot of the ten biggest. The full explorer lists every link, tracks what you gained and lost each month, and flags the toxic ones.",children:[e.jsxs(k,{onSubmit:g,busy:l,error:i,cta:"Check my backlinks",gateFields:e.jsx(j,{gate:h}),children:[e.jsx("label",{htmlFor:"domain",className:"sr-only",children:"Your website address"}),e.jsx("input",{id:"domain",name:"domain",type:"text",required:!0,autoComplete:"url",placeholder:"yourbrand.com",value:a,onChange:x=>s(x.target.value),className:"field h-14 grow text-base"})]}),e.jsx("p",{className:"mt-4 text-center text-sm text-muted",children:"Usually a few seconds. Works on any website, including a competitorâs."}),l&&!r?.cells?.length&&e.jsx("p",{className:"mt-10 text-center text-sm text-muted",role:"status",children:"Looking up the link profileâ¦"}),r&&e.jsx("section",{className:"mt-10","aria-live":"polite",children:e.jsx(u,{job:r})}),!r&&!l&&e.jsxs("section",{className:"mt-14",children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight text-heading",children:"What you get back"}),e.jsx("p",{className:"mt-2 max-w-3xl text-[15px] leading-relaxed text-dim",children:"Six numbers, a twelve-month trend, four breakdowns and two lists. The example below is a clinic that does not exist."}),e.jsx("div",{className:"mt-6",children:e.jsx(w,{note:"Northwind Dental is invented, and so is every figure below.",children:e.jsx(u,{job:N})})}),e.jsx("h3",{className:"mt-10 text-lg font-bold text-heading",children:"Reading it, part by part"}),e.jsx(v,{items:[{title:"1,284 backlinks but only 96 referring domains",body:"The second number is the one that matters. One site linking to you 400 times â a sidebar on every page â counts once as a recommendation, not four hundred times. Any report leading with the bigger number is flattering you."},{title:"Domain rank 138",body:"Our data providerâs 0â1000 strength score, passed through unchanged. Useful for comparing two sites inside this report. It is not Mozâs Domain Authority or Ahrefsâ Domain Rating â different companies, different scales, not interchangeable."},{title:"Spam score 11",body:"How much of the profile looks like sites built to sell links. Low needs no action; a high number is usually the residue of an old SEO campaign, and it is a signal you did not choose and cannot see from your own site."},{title:"23 broken backlinks",body:"Links pointing at pages of yours that no longer exist, normally after a redesign changed your addresses. These are the cheapest links you will ever recover â somebody already decided to link to you."},{title:"Who links to you",body:"Read it for what is missing. If the whole list is directories and your own social profiles, nobody has written about you â and that, rather than any technical fix, is the work."},{title:"The link text",body:"A healthy profile is mostly your brand name, bare web addresses and vague words like âhereâ. A list dominated by one commercial phrase looks bought, and has been a penalty trigger for over a decade."}]})]}),e.jsx(S,{groups:A})]})}function u({job:a}){const s=a.result;if(a.status!=="done"||!s)return e.jsx("div",{className:"card p-6",children:e.jsx("ul",{className:"space-y-3",children:(a.cells||[]).map(t=>e.jsxs("li",{className:"flex items-center gap-3 text-[15px]",children:[t.state==="done"?e.jsx("span",{"aria-hidden":"true",className:"grid h-6 w-6 place-content-center rounded-full bg-emerald-50 text-xs font-bold text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-300",children:"â"}):e.jsx("span",{className:"h-4 w-4 animate-spin rounded-full border-2 border-edge border-t-brand-600"}
1),e.jsx("span",{className:t.state==="done"?"text-body":"text-muted",children:t.label})]},t.step))})});if(!s.found)return e.jsxs("div",{className:"card p-8 text-center",children:[e.jsxs("h2",{className:"text-xl font-bold text-heading",children:["We found no links pointing at ",s.domain]}),e.jsx("p",{className:"mx-auto mt-3 max-w-xl text-[15px] leading-relaxed text-dim",children:"For a new or very small site that is normal rather than alarming â nobody has had a reason to link yet. Check the address is right, then treat the first ten links as a project rather than a fix."})]});const r=s.dofollowPages!=null&&s.referringPages?Math.round(s.dofollowPages/s.referringPages*100):null,i=(s.firstSeen||"").slice(0,4),l=Math.max(1,...(s.history||[]).map(t=>t.referringDomains||0));return e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"card p-6 sm:p-8",children:[e.jsx("p",{className:"text-xs font-bold tracking-wider text-muted",children:s.domain}),e.jsxs("dl",{className:"mt-4 grid grid-cols-2 gap-x-6 gap-y-6 sm:grid-cols-3 lg:grid-cols-6",children:[e.jsx(o,{label:"Referring domains",value:n(s.referringDomains),note:"Separate websites linking to you"}),e.jsx(o,{label:"Total backlinks",value:n(s.backlinks),note:"Every individual link"}),e.jsx(o,{label:"Domain rank",value:n(s.domainRank),note:"Providerâs 0â1000 strength score"}),e.jsx(o,{label:"Spam score",value:s.spamScore==null?"â":`${s.spamScore}%`,note:"How much looks like link-selling sites"}),e.jsx(o,{label:"Passing credit",value:r==null?"â":`${r}%`,note:"Links without a nofollow tag"}),e.jsx(o,{label:"Separate networks",value:n(s.referringSubnets),note:`Across ${n(s.referringIps)} IP addresses`})]}),i&&e.jsxs("p",{className:"mt-5 text-[15px] leading-relaxed text-body",children:["The oldest link we can see dates from ",e.jsx("strong",{className:"text-heading",children:i}),s.cms?e.jsxs(e.Fragment,{children:[" and the site runs on ",e.jsx("strong",{className:"text-heading",children:s.cms})]}):null,". Age counts: a profile built slowly over years reads very differently from the same number of links appearing in one month."]}),e.jsxs(d,{label:"Which of these numbers to care about",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Referring domains."})," Forty links from forty different websites are worth far more than four hundred from one, because each separate site is a separate recommendation."]}),e.jsxs("p",{children:["Total backlinks is the flattering number and the one most tools lead with.",r!=null&&` Of your ${n(s.referringPages)} linking pages, ${r}% pass credit â the rest carry a nofollow tag asking search engines to ignore them, which is normal for links from social networks and forums.`]}),s.referringSubnets!=null&&e.jsxs("p",{children:[e.jsx("strong",{children:"Spread matters as much as count."})," Your ",n(s.referringDomains)," domains sit on"," ",n(s.referringIps)," IP addresses across ",n(s.referringSubnets)," networks. Many domains on very few networks usually means one owner â which search engines discount accordingly."]}),s.brokenBacklinks>0&&e.jsxs("p",{children:[e.jsxs("strong",{children:[n(s.brokenBacklinks)," of your links are broken"]})," â they point at pages of yours that no longer exist. Redirecting those old addresses to the right pages recovers links you have already earned."]})]})]}),s.history?.length>1&&e.jsxs("div",{className:"card p-6",children:[e.jsx(c,{sub:"Referring domains, month by month â the shape matters more than any single number.",children:"How the profile grew"}),e.jsx("div",{className:"mt-5 flex items-end gap-1.5",role:"img","aria-label":`Referring domains from ${s.history[0].month} to ${s.history[s.history.length-1].month}, ${s.history[0].referringDomains} rising to ${s.history[s.history.length-1].referringDomains}`,children:s.history.map(t=>e.jsxs("div",{className:"flex grow flex-col items-center gap-1.5",children:[e.jsx("span",{className:"w-full rounded-t bg-brand-600/80",style:{height:`${Math.max(4,(t.referringDomains||
10)/l*120)}px`}}),e.jsx("span",{className:"text-[10px] text-muted",children:t.month.slice(5)})]},t.month))}),e.jsxs("div",{className:"mt-3 flex justify-between text-xs font-semibold text-muted",children:[e.jsxs("span",{children:[s.history[0].month," · ",n(s.history[0].referringDomains)," domains"]}),e.jsxs("span",{children:[s.history[s.history.length-1].month," · ",n(s.history[s.history.length-1].referringDomains)," domains"]})]}),e.jsxs(d,{label:"Reading the shape",children:[e.jsx("p",{children:"A line that climbs steadily is what earned links look like. A flat line means nothing new is being written about you. A vertical jump in one month is almost always links that were bought, and it is the pattern search engines look for."}),s.history[s.history.length-1].gained!=null&&e.jsxs("p",{children:["Last month you gained ",e.jsx("strong",{children:n(s.history[s.history.length-1].gained)})," referring domains and lost ",e.jsx("strong",{children:n(s.history[s.history.length-1].lost)}),". Losing some every month is normal â pages get deleted and sites close."]})]})]}),(s.countries?.length>0||s.tlds?.length>0||s.platforms?.length>0||s.placements?.length>0)&&e.jsxs("div",{className:"card p-6",children:[e.jsx(c,{sub:"Everything below came out of the same lookup â it is who links to you, sliced four ways.",children:"The shape of your links"}),e.jsxs("div",{className:"mt-5 grid gap-6 sm:grid-cols-2 lg:grid-cols-4",children:[e.jsx(m,{title:"Countries",rows:s.countries}),e.jsx(m,{title:"Domain endings",rows:s.tlds}),e.jsx(m,{title:"Kinds of site",rows:s.platforms}),e.jsx(m,{title:"Where on the page",rows:s.placements})]}),e.jsxs(d,{label:"Why placement is the one to read first",children:[e.jsx("p",{children:"A link inside an article is a recommendation. A link in a footer or a sidebar is furniture, repeated on every page of that site, and is worth a fraction as much however many times it is counted."}),e.jsx("p",{children:"Countries and domain endings matter when they do not match your market: a Singapore clinic whose links are almost all from unrelated foreign blogs is describing a link campaign, not a reputation."})]})]}),e.jsxs("div",{className:"grid gap-5 sm:grid-cols-2",children:[s.topDomains.length>0&&e.jsxs("div",{className:"card p-6",children:[e.jsx(c,{sub:"The ten sending you the most links.",children:"Who links to you"}),e.jsx("ul",{className:"mt-4 space-y-2.5",children:s.topDomains.map(t=>e.jsxs("li",{className:"flex items-center gap-3 text-[15px]",children:[e.jsx("span",{className:"grow truncate text-body",children:t.domain}),e.jsx("span",{className:"shrink-0 text-sm font-bold text-muted",children:n(t.backlinks)})]},t.domain))}),e.jsxs(d,{label:"What a healthy list looks like",children:[e.jsx("p",{children:"A mix: a few directories, an industry site or two, somewhere you were written about, maybe a supplier or a partner. That is a business other people reference."}),e.jsx("p",{children:"A list that is only directories and your own social profiles means nobody has written about you yet. No technical change fixes that â being worth writing about does."})]})]}),s.topAnchors.length>0&&e.jsxs("div",{className:"card p-6",children:[e.jsx(c,{sub:"The clickable words people link with.",children:"The link text"}),e.jsx("ul",{className:"mt-4 space-y-2.5",children:s.topAnchors.map(t=>e.jsxs("li",{className:"flex items-center gap-3 text-[15px]",children:[e.jsxs("span",{className:"grow truncate text-body",children:["â",t.anchor,"â"]}),e.jsx("span",{className:"shrink-0 text-sm font-bold text-muted",children:n(t.backlinks)})]},t.anchor))}),e.jsxs(d,{label:"Why the words matter",children:[e.jsx("p",{children:"Link text tells a search engine what the linked page is about. Mostly your brand name, bare web addresses and filler like âhereâ is exactly right â it is what natural linking looks like."}),e.jsx("p",{children:"If one commercial phrase dominates the list, the links look bought. That pattern has triggered penalties for over a decade and is worth correcting before it is noticed."})]})]})]})]})}const n=a=>
1a==null?"â":Number(a).toLocaleString();function m({title:a,rows:s}){if(!s?.length)return null;const r=Math.max(1,...s.map(i=>i.count||0));return e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-bold uppercase tracking-wide text-muted",children:a}),e.jsx("ul",{className:"mt-3 space-y-2",children:s.map(i=>e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx("span",{className:"w-24 shrink-0 truncate text-body",children:i.key}),e.jsx("span",{className:"h-1.5 grow overflow-hidden rounded-full bg-sunken",children:e.jsx("span",{className:"block h-full rounded-full bg-brand-600/70",style:{width:`${(i.count||0)/r*100}%`}})}),e.jsx("span",{className:"w-10 shrink-0 text-right text-xs font-bold text-muted",children:n(i.count)})]},i.key))})]})}function o({label:a,value:s,note:r}){return e.jsxs("div",{children:[e.jsx("dt",{className:"text-xs font-bold uppercase tracking-wide text-muted",children:a}),e.jsx("dd",{className:"mt-1.5 text-3xl font-bold leading-none text-heading",children:s}),e.jsx("p",{className:"mt-1.5 text-xs leading-snug text-muted",children:r})]})}export{L as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.