AlfaLinks
AlfaLinksÎnregistrare

Ghid de configurare

Contor de backlinks pentru un panou SaaS, pas cu pas

Un contor funcțional necesită o rută de server și un component mic. Acest ghid construiește ambele, incluzând stările de eșec pe care le uită majoritatea versiunilor inițiale.

Meșteșugar asamblând cinci roți dințate mecanice pe o bancă de atelier din lemn reprezentând pașii panoului
Scopul acestui ghid

Presupunem un backend Node sau Python și orice framework front-end. Fiecare solicitare de mai jos atinge API-ul documentat, iar URL-ul de bază este al brandului tău: alfalinks.net/api.php.

Cinci pași, în ordinea în care i-am livra

01

1. Creează cheia și stocheaz-o ca secret

Autentifică-te cu Google la /auth/google.php, copiază cheia sk_ de pe pagina de cont și pune-o în mediul serverului tău. Front-end-ul nu o vede niciodată.

02

2. Adaugă o rută proxy

Expune ceva de genul /internal/links?domain=... care validează domeniul, apelează API-ul nostru și returnează doar câmpurile pe care le folosește interfața ta. Validarea este importantă deoarece utilizatorii pot introduce orice.

03

3. Începe cu acțiunea gratuită

Acțiunea overview nu costă nimic, astfel încât prima versiune a contorului nu are niciun risc de facturare. Treci la acțiunile plătite atunci când un ecran le necesită.

04

4. Redă trei stări

Încărcare, date și indisponibil. Indisponibil acoperă HTTP 401, HTTP 402 și o eroare de rețea, și nu ar trebui să afișeze niciodată zero.

05

5. Adaugă eticheta de prospețime

Indexul nostru se reîmprospătează aproximativ lunar. O linie gri care scrie 'datele linkurilor actualizate lunar' previne tichetul de suport care începe cu 'Am adăugat un link ieri'.

Ruta proxy, în Node

Suficient de scurtă pentru a fi citită într-un ecran. Cache-ul este un Map simplu aici; înlocuiește cu Redis când rulezi mai mult de un proces.

js
const cache = new Map();
const MONTH = 30 * 24 * 3600 * 1000;

app.get('/internal/links', async (req, res) => {
  const domain = String(req.query.domain || '').toLowerCase().trim();
  if (!/^[a-z0-9.-]+\.[a-z]{2,}$/.test(domain)) return res.status(400).json({ok:false});
  const hit = cache.get(domain);
  if (hit && Date.now() - hit.t < MONTH) return res.json(hit.v);
  const r = await fetch(`https://alfalinks.net/api.php?action=overview&q=${domain}`);
  if (!r.ok) return res.status(502).json({ok:false});
  const v = await r.json();
  cache.set(domain, {t: Date.now(), v});
  res.json(v);
});
Grădinar folosind o plasă largă pentru a prinde un stol de păsări reprezentând solicitările bulk de domenii

Adăugarea unui badge DR odată ce contorul funcționează

Contorul este jumătatea ușoară. Badge-ul necesită un apel suplimentar.

Pentru un tabel cu domenii clienți, trimite o singură solicitare bulk_dr cu până la 2.000 de domenii în loc de un apel pe rând. Costă 1 credit indiferent de numărul de rânduri, iar răspunsul mapează fiecare domeniu la valoarea sa 0-100, pe care o stochezi lângă overview-ul cache-uit.

Potrivește domeniile pe numele de gazdă normalizat. Elimină schema, calea și un www de la început, sau jumătate din rândurile tale vor rata căutarea și vor afișa goluri.

Citește notele despre scor pentru formularea etichetelor și rețeta de cache pentru TTL-urile acestor apeluri.

Afișează o valoare mai întâi, apoi cere configurarea

Utilizatorii noi rareori citesc o pagină de configurare. Vor să vadă dacă funcția merită efortul, iar un contor de backlinks care afișează o valoare reală răspunde mai rapid decât orice formular. Pune valoarea prima. Configurarea vine a doua.

Deoarece acțiunea gratuită overview nu necesită cheie, primul tău ecran poate afișa o valoare înainte ca utilizatorul să fi configurat ceva.

Ce are nevoie prima randare?

Doar un domeniu și un apel gratuit. Imaginează-ți un utilizator nou care își introduce propriul site în onboarding și vede contorul apărând în aceeași vizualizare a paginii. Acea singură valoare face mai mult pentru a începe configurarea decât o listă de pași, așa că păstrează restul configurării în spatele ei.

Utilizatorul vede ceea ce va primi înainte ca cineva să ceară un card, o cheie sau un al doilea formular. Nimic din prima randare nu ar trebui să pară o barieră.

Unde ar trebui să se afișeze promptul de configurare?

Imediat după valoare, nu înainte. O linie scurtă precum 'Conectează un domeniu pentru a urmări acest lucru în fiecare lună' se potrivește sub contor. Dacă același prompt este deasupra valorii, utilizatorii îl citesc ca pe o barieră și pleacă.

Urmărește care utilizatori completează fiecare pas de configurare. Un mic funnel arată unde se opresc oamenii, iar o schimbare în formulare poate modifica acel număr mai mult decât un nou feature ar face.

Testare înainte de lansare

Testează mai întâi căile nefericite. Căile fericite se testează singure.

Revocă cheia în staging și confirmă că cardul afișează 'indisponibil' în loc de zero. Apoi golește un balanț de test pentru a declanșa un 402 și introdu o valoare malformed precum un domeniu cu o schemă și o cale de la final, pentru a dovedi că validatorul îl respinge înainte ca orice credit să fie cheltuit.

Un test rapid de fum aparține în CI. Un singur apel overview gratuit pe nytimes.com, rulat zilnic, îți spune dacă ruta și cheia funcționează încă.

Trei chei de fier agățate pe o ușă grea din stejar reprezentând regulile de acces și limitele de domenii

Cine poate căuta care domeniu și la ce cost

Un contor care acceptă orice șir este o ușă deschisă către balanțul tău. Decide cine poate cere ce înainte ca ruta să meargă live și scrie răspunsul în cod, nu într-o pagină wiki pe care nimeni nu o deschide.

Trei întrebări apar de fiecare dată: care domenii, ce limită și unde se află cheia.

Ce domenii ar trebui să i se permită utilizatorului să introducă?

Doar pe cele la care are spațiul de lucru o pretenție, plus orice căutări publice ai ales să oferi. Să zicem că un spațiu de lucru deține două site-uri. Ruta poate accepta acele două și poate respinge orice altceva cu un mesaj clar, ceea ce împiedică un tenant să cheltuiască credite pe domenii care nu sunt ale lui.

Verificarea numelui de gazdă în rută este minimul. Dovedește că inputul arată ca un domeniu, nu că utilizatorul îl deține, așa că păstrează lista de pretenții în propria ta bază de date ca un tabel separat.

Cum oprești un utilizator să golească balanțul?

Pune o cotă per spațiu de lucru în propria ta stocare și numără apelurile acolo. Balanțul din partea noastră este un singur pool preplătit, așa că nu îți poate spune ce client a cheltuit ce. Notele despre pagina de căutare acoperă partea publică a aceleiași probleme. Când un spațiu de lucru ajunge la limită, returnează un mesaj simplu și lasă cache-ul să continue răspunzând cu ceea ce deține deja.

Alege limita din aritmetica din notele per loc, nu dintr-o ghicire, și revizuiește-o când un plan se schimbă. Testează ruta cu un al doilea spațiu de lucru înainte să ai încredere în cotă.

Ar trebui browserul să dețină cheia vreodată?

Nu. Cheia trăiește pe serverul tău, iar browserul apelează ruta ta. Această separare este, de asemenea, ceea ce face o cotă posibilă, deoarece fiecare apel facturat trece prin codul pe care îl controlezi. Dacă o cheie apare vreodată într-un bundle livrat, rotește-o în aceeași zi și verifică jurnalul de balanț pentru apelurile pe care nu le-ai făcut. Unele echipe stochează cheia într-un fișier de configurare pe care front-end-ul îl citește la momentul build-ului, iar acel fișier ajunge în bundle. Ține cheia în afara oricărui lucru pe care pasul de build îl poate vedea și verifică fișierele livrate o dată înainte de fiecare lansare.

Acțiunile gratuite pot fi apelate de pe o pagină publică fără o cheie, și acesta este singurul caz în care browserul poate vorbi direct cu API-ul.

Ce ar trebui să spună contorul și ce nu ar trebui

Spune mai puțin decât știi. Un contor etichetat 'backlinks' invită întrebarea 'de ce Ahrefs arată un număr diferit?', iar răspunsul onest este că doi crawleri văd două feliuri ale webului.

Etichetează valoarea cu sursa și luna în schimb. Ceva de genul 'Domenii care fac referire, index AlfaLinks, octombrie 2026' este mai lung, dar termină argumentul înainte să înceapă și se citește bine într-un card mic.

Rotunjește pentru afișare. Un utilizator care vede 12.481 luni și 12.481 vineri are mai multă încredere în instrument decât unul care vede fluctuații, iar reîmprospătarea noastră lunară îți oferă acea stabilitate gratuit.

Dacă vrei figura 0-100 lângă ea, citește mai întâi notele despre un scor de backlinks. Este metrica noastră proprie, așa că numirea este importantă.

Stări de eșec și ce face interfața

Codurile HTTP sunt cele pe care le returnează API-ul; coloana UI este sugestia noastră.
SemnalSemnificațieCe vede utilizatorulCe faci tu
HTTP 401Cheie lipsă sau greșită'Date link indisponibile'Te deplozezi singur: bug
HTTP 402Credit epuizat'Date link indisponibile'Reîncarcă cu USDT (TRC-20)
ok: falseSolicitare respinsăLink de reîncercare inlineLoghează domeniul și acțiunea
TimeoutProbleme de rețeaValoare cache-uită dacă ai unaReîncearcă o dată, apoi reduce frecvența

Menținerea contorului onest în suport și jurnale

Un contor eșuează mai des în liniște decât eșuează zgomotos. Loghează suficient pentru a răspunde la întrebarea pe care o pune un client în continuare și ține datele personale în afara jurnalului complet. Linii scurte câștigă. O linie care răspunde la o întrebare de suport salvează mai mult timp decât orice alertă ai putea scrie.

Majoritatea firelor de suport despre un contor sunt una dintre trei întrebări, așa că planifică jurnalul în jurul lor. Ține acele trei întrebări în manualul tău de funcționare, lângă pașii pentru rotirea unei chei.

Ce ar trebui să înregistreze fiecare linie de log?

Acțiunea, domeniul, codul de stare, vârsta cache-ului și balanțul de credite care a revenit. Acele cinci câmpuri răspund la majoritatea întrebărilor de suport. Să zicem că un utilizator întreabă de ce contorul său arată o valoare veche. Vârsta cache-ului și luna indexului îți spun dacă problema este cache-ul sau eticheta.

Lasă cheia API în afara fiecărei linii, inclusiv în trace-urile de eroare. Mascheaz-o la logger, deoarece o singură linie scursă poate goli întregul cont.

Cum știi că contorul este sănătos în fiecare săptămână?

Urmărește trei numere: cota de stări indisponibile, tenderea balanțului de credite și rata de hit cache. O salt brusc în stările indisponibile indică de obicei o problemă de cheie sau balanț. O scădere lentă a balanțului indică de obicei o cheie cache prea specifică.

Fiecare citire are o remediere diferită, de aceea un singur tile de dashboard pentru toate trei rareori ajută pe cineva. Pune cele trei citiri pe o linie în nota ta săptămânală, cu ultima valoare și schimbarea de la săptămâna precedentă. Numerele citite izlat invită la ghiciri, în timp ce o tendință scurtă menține conversația pe aceleași fapte.