Rankift
Rankift$100 मुफ्त पाएं

रेसिपी

एक मिनट में पढ़े जा सकने वाले साप्ताहिक अंतर के साथ बैकलिंक्स ट्रैक करें

खींचें, स्टोर करें, तुलना करें, पोस्ट करें। पूरी रेसिपी एक पायथन फ़ाइल, तारीख वाली JSON की एक फ़ोल्डर और एक क्रोन लाइन है।

दो पानी के टैंकों और एक घड़ी को जोड़ने वाली रेंच के साथ वर्कशॉप बेंच

रेसिपी, शुरुआत से अंत तक

  1. 1

    कुंजी बनाएं

    Google के साथ साइन इन करें, अकाउंट पेज पर एक कुंजी बनाएं और इसे RANKIFT_KEY के रूप में एक्सपोर्ट करें। इसे रीपो में कभी भी कमिट न करें।

  2. 2

    एक्शन चुनें

    डोमेन-स्तर के अंतर के लिए refdomains, जो अधिकांश अलर्टों को चाहिए। केवल तभी backlinks का उपयोग करें जब आपको URLs और एंकर टेक्स्ट की आवश्यकता हो, उसी 2 क्रेडिट्स पर।

  3. 3

    तारीख वाली स्नैपशॉट्स स्टोर करें

    प्रति रन प्रति डोमेन एक फ़ाइल, तारीख के नाम से। डिस्क सस्ती है, और पुरानी फ़ाइलें आपको उन सवालों के जवाब देने में मदद कर सकती हैं जो अभी तक नहीं पूछे गए हैं।

  4. 4

    अंतर और पोस्ट

    दो नवीनतम फ़ाइलों की तुलना करें, प्रिंट करें कि क्या बाहर गया और क्या आया, और यदि दोनों सूखियां खाली हों तो शांति से निकलें।

  5. 5

    इसे शेड्यूल करें

    सोमवार की सुबह क्रोन। एक विफलता सूचना जोड़ें, क्योंकि एक चुप मॉनिटर किसी मॉनिटर से भी बुरा है।

diff.py

दस्तावेज़ीकृत पैरामीटर के खिलाफ जांच की गई: action, q, per, page और key। प्रतिक्रिया का आकार एक्शन के अनुसार अलग-अलग होता है, इसलिए इसे भरोसेमंद मानने से पहले एक वास्तविक प्रतिक्रिया प्रिंट करें और ROWS और ID को मेल खिलाने के लिए सेट करें।

python
import json, os, sys, glob, urllib.parse, urllib.request

KEY, SITE = os.environ['RANKIFT_KEY'], 'https://rankift.com/api.php'
ROWS, ID = 'rows', 'domain'   # adjust after inspecting one response

def pull(domain):
    out, page = [], 1
    while True:
        qs = urllib.parse.urlencode({'action': 'refdomains', 'q': domain,
                                     'per': 1000, 'page': page, 'key': KEY})
        with urllib.request.urlopen(f'{SITE}?{qs}') as r:
            batch = json.load(r)[ROWS]
        out += batch
        if len(batch) < 1000 or page >= 5:   # five pages = 5,000 rows
            return out
        page += 1

domain, date = sys.argv[1], sys.argv[2]
json.dump(pull(domain), open(f'snap/{domain}-{date}.json', 'w'))

files = sorted(glob.glob(f'snap/{domain}-*.json'))
if len(files) > 1:
    old = {r[ID] for r in json.load(open(files[-2]))}
    new = {r[ID] for r in json.load(open(files[-1]))}
    lost, gained = sorted(old - new), sorted(new - old)
    if lost or gained:
        print(f'{domain}: -{len(lost)} +{len(gained)}')
        print('lost:', lost[:25])

डैशबोर्ड से बेहतर अंतर क्यों है

एक चार्ट आपको बताता है कि लाइन हिल गई है। एक अंतर आपको बताता है कि कौन से डोमेन हिले, जो वह चीज है जिस पर आप कार्रवाई कर सकते हैं।

Ahrefs और Semrush जैसे टूल अपने इंटरफ़ेस में नए और खोए हुए लिंक्स दिखाते हैं, और एड हॉक काम के लिए यह ठीक है। मुसीबत पचास साइटों और एक विश्लेषक के साथ शुरू होती है, जब सोमवार की रीति में प्रत्येक प्रोजेक्ट खोलने में सुबह का समय खराब हो जाता है।

एक स्क्रिप्ट उस रिट्यूअल को एक फ़ाइल में बदल देती है। यह एक तारीख-युक्त आर्काइव भी छोड़ देती है, ताकि मार्च में आप किसी विक्रेता से एक्सपोर्ट मांगे बिना यह बता सकें कि अक्टूबर में प्रोफ़ाइल कैसी थी।

क्रॉन लाइन

यह सोमवार को 07:00 सर्वर समय पर चलती है और किसी भी आउटपुट को आपको ईमेल कर देती है, इसलिए स्क्रिप्ट तब कुछ नहीं प्रिंट करती जब कुछ बदलाव न हुआ हो।

bash
0 7 * * 1  cd /srv/linkwatch && for d in example.com rival-one.com rival-two.com; do python3 diff.py $d $(date +%F); done | mail -s 'link diff' your-team-list

इसकी लागत

1 क्रेडिट $0.0001 है। प्रत्येक कॉल को एक बार बिल किया जाता है, चाहे पंक्तियों की संख्या कुछ भी हो, 1,000 पंक्तियों तक।
सेटअपप्रति सप्ताह कॉलप्रति सप्ताह क्रेडिटप्रति वर्ष
1 डोमेन, 1,000 से कम रेफ़रिंग डोमेन12लगभग $0.01
1 डोमेन, 4,000 रेफ़रिंग डोमेन48लगभग $0.04
आपकी साइट और 5 प्रतिस्पर्धी, प्रत्येक पर 1 पेज612लगभग $0.06
50 क्लाइंट साइटें, प्रत्येक पर 1 पेज50100लगभग $0.52
एक शांत बगीचे में झाड़ी को काटते हुए रेतवाला लिए एक बगीचे में बगीचेवाला

वे मुसीबतें जिनसे हमें सामना करना पड़ा, ताकि आपको न पड़े

स्नैपशॉट केवल तब बदलते हैं जब इंडेक्स बदलता है। हम लगभग मासिक रूप से रिफ़्रेश करते हैं, इसलिए अधिकांश साप्ताहिक रन एक समान सूची लौटाते हैं और कुछ प्रिंट नहीं करते। यह जानबूझकर किया गया है। शांत रहना ही अपेक्षित परिणाम है।

डीप पेजिनेशन 50,000 पंक्तियों तक सीमित है, और स्क्रिप्ट में पांच पेज की सीमा आपको उससे काफी नीचे रखती है। बड़े डोमेन के लिए एक अलग योजना चाहिए: sort और order=desc का उपयोग करें, और एक ऐसे फ़ील्ड पर जो एक्शन स्वीकार करता है, तब तक रोकें जब तक पंक्तियाँ दिलचस्प रहती हैं।

पहली बार मैन्युअल रूप से पुल चलाएं और JSON पढ़ें। फ़ील्ड नामों की जांच करें। फिर, मुफ़्त overview एक्शन के एक रिस्पॉन्स से रेफ़रिंग डोमेन के कुल आंकड़े के साथ पंक्ति गणना की तुलना करें, यदि उस रिस्पॉन्स में कोई आंकड़ा मौजूद है।

HTTP 401 और 402 को स्पष्ट रूप से हैंडल करें, क्योंकि 401 का अर्थ है बुरा कुंजी और 402 का अर्थ है कि बैलेंस शून्य हो गया है। दोनों को आपकी विफलता सूचना में शामिल करें। जब एक डिफ़ फ़ायर होता है, तो पहले घंटे के लिए खोए हुए लिंक रनबुक का पालन करें।

खरीदे गए लिंक अभियान को मापना, एक-एक स्नैपशॉट के साथ

बेसलाइन के बिना लिंक खरीदना एक आम तरीका है जिससे आपको एक ऐसा नंबर मिल सकता है जिसका बचाव करना मुश्किल हो। पहले प्लेसमेंट लाइव होने से पहले स्नैपशॉट लें और उसे अगले हर स्नैपशॉट के साथ रखें।

फिर कच्चे गणना की तुलना में रेफरिंग डोमेन की तुलना करें, क्योंकि एक डोनर कई लिंक ले जा सकता है। डिफ में हर नई पंक्ति एक साइट है जिसे आप खुद खोलकर जांच सकते हैं।

एक ऐसा अभियान जो एक महीने के लिए स्थिर दिखता है, वह स्वचालित रूप से विफल नहीं है। इंडेक्स रिफ्रेश धीमे होते हैं, इसलिए डिफ लाइव पेजों पर हुए बदलावों के बाद आता है, और यह विलंब विधि का हिस्सा है।

मैं यह कैसे मापूं कि खरीदे गए बैकलिंक्स काम कर रहे हैं?

पहले प्लेसमेंट की तारीख से शुरू करें और उस तारीख के बाद प्रकट होने वाले डोनर पंक्तियों को देखें। केवल उन गिनतियों को गिनें जो अगले दो स्नैपशॉट में बनी रहीं। फिर उस गिनती को प्लेसमेंट्स के लिए आपके द्वारा भुगतान की गई राशि के सामने रखें और परिणाम को तारीखों के बगल में रिकॉर्ड करें।

खरीदारी से पहले स्नैपशॉट में क्या होना चाहिए?

पूर्ण रेफरिंग-डोमेन सूची, हर बाद के रन के समान फ़ाइल प्रारूप में सहेजी गई, जिसमें फ़ाइल नाम में तारीख और डोमेन हो। अलग प्रारूप में बेसलाइन को डिफ नहीं किया जा सकता, और यह वह एकमात्र गलती है जिसे बाद में ठीक नहीं किया जा सकता।

जमीन पर पत्तियां छानते हुए एक डेटेक्टिव, ज़ूम लेंस के साथ

डिफ में एक शोर वाली सप्ताह कैसा दिखता है

हजारों नई पंक्तियों वाला एक सप्ताह हमेशा संकट नहीं होता। अक्सर यह स्क्रैपर्स होते हैं। वे पेज कॉपी करते हैं, और कॉपीज ऐसे लिंक बनाती हैं जिन्हें किसी ने प्लेस नहीं किया। किसी भी निष्कर्ष पर पहुंचने से पहले डोनर की जांच करें।

पंक्तियों को पढ़ने से पहले डोनर गुणवत्ता के आधार पर नई पंक्तियों को सॉर्ट करें। सूची का अधिकांश हिस्सा आमतौर पर शोर होता है, और शीर्ष पंक्तियों पर एक छोटा सा नज़र यह बताता है कि क्या स्पाइक आपके सुबह के समय के लायक है।

यदि पंक्तियां स्क्रैपर पेज हैं, तो गिनती रिकॉर्ड करें और आगे बढ़ें। यदि वे आपके मनी पेज्स पर लिंक वाले असली साइटें हैं, तो ट्राइएज चरणों का पालन करें।

डिफ में स्पैम से लाभ क्यों दिखाई देता है?

क्योंकि डिफ इंडेक्स में दिखाई देने वाली चीज़ रिपोर्ट करता है, न कि किसी इंसान द्वारा चुनी गई चीज़। इंडेक्स द्वारा पकड़ा गया स्पैम एक editorial लिंक जैसा दिखता है जब तक कि आप डोनर पेज न खोलें और उसे न पढ़ें।

मुझे डिसावोड उम्मीदवारों की कितनी बार समीक्षा करनी चाहिए?

मासिक समीक्षा इंडेक्स की लय के लिए दैनिक समीक्षा से बेहतर है। दैनिक समीक्षा अक्सर वही सूची फिर से दिखाती है, जबकि मासिक समीक्षा हर उम्मीदवार को मूल्यांकन से पहले फिर से क्रॉल होने का समय देती है। स्पैम लिंक्स ट्राइएज पेज पर निर्णय चरण दिए गए हैं।

पहले डिफ पर भरोसा करने से पहले

  • पहली बार खींचे गए डेटा को कम से कम एक पेज के लिए पंक्ति-दर-पंक्ति हाथ से पढ़ा गया था।
  • फ़ील्ड नाम स्क्रिप्ट के शीर्ष पर दिए गए स्थिरांक से मेल खाते हैं।
  • 401 और 402 दोनों काम को शोर के साथ विफल करते हैं, चुपचाप नहीं।
  • स्नैपशॉट फ़ोल्डर किसी ऐसी जगह बैकअप या सिंक किया गया है जहां से आप इसे पुनर्स्थापित कर सकें।
  • लेखक के अलावा किसी अन्य व्यक्ति ने पहले अलर्ट को देखा है और सहमत है कि यह एक संदेश के लायक है।

स्नैपशॉट आर्काइव को एक साल के लिए उपयोगी रखें

हर तारीख वाली फ़ाइल रखें, उनमें शामिल जो अपरिवर्तित दिखती हैं। एक साल की साप्ताहिक स्नैपशॉट्स में कम डिस्क स्पेस लगता है, और यह उन सवालों का जवाब देता है जो अभी तक किसी ने नहीं पूछे, जैसे कि एक डोनर पहले कब प्रकट हुआ था।

फ़ाइलों का नाम डोमेन, तारीख और क्रिया के साथ सुसंगत रखें। मिश्रित नाम डिफ स्क्रिप्ट को गलत जोड़ी चुनने पर मजबूर करते हैं, और गलत जोड़ी एक आत्मविश्वासपूर्ण और गलत अलर्ट पैदा करती है।

यदि जगह मायने रखती है तो पुरानी फ़ाइलों को तिमाही में एक बार कंप्रेस करें। नवीनतम बारह को अपकंप्रेस्ड रखें, ताकि साप्ताहिक जॉब कभी आर्काइव के लिए न रुके।

मैं वह पहला स्नैपशॉट कैसे ढूंढूं जहां एक डोनर प्रकट हुआ था?

तारीख वाली फ़ाइलों को नाम के आधार पर सॉर्ट करें, फिर पहली हिट मिलने तक प्रत्येक में डोनर डोमेन के लिए खोजें। एक छोटा लूप इसे कुछ पंक्तियों में करता है, और परिणाम उतना ही अच्छा है जितना कि आपने शुरुआत से रखे गए नामकरण का।

मुझे क्या हटाना चाहिए और क्या रखना चाहिए?

हर उस स्नैपशॉट को रखें जिस पर कोई निर्णय लिया गया था, साथ ही हर महीने का पहला और आखिरी स्नैपशॉट। बाकी को तब तक हटाएं जब तक आर्काइव की जांच नहीं हो जाती, क्योंकि एक हटाई गई फ़ाइल बाद में किसी सवाल का जवाब नहीं दे सकती।

डिफ उस जगह भेजें जहां लोग पहले से पढ़ते हैं

एक डिफ जो पढ़ी न जाने वाली फ़ोल्डर में गिरता है, उसकी कोई कीमत नहीं है। साझा करना निजी से बेहतर है। परिणाम को उस चैनल पर पोस्ट करें जिसकी टीम पहले से निगरानी कर रही है, और संदेश को इतना छोटा रखें कि एक नज़र में कार्रवाई की जा सके।

एक अच्छा संदेश डोमेन, खोई और प्राप्त पंक्तियों की गिनती, और पहले कदम का नाम बताता है। यह पूरी सूची को छोड़ देता है, जो संलग्न फ़ाइल में होती है।

शांत सप्ताह पर मौन डिज़ाइन का हिस्सा है। यदि कुछ बदला नहीं है, तो किसी को यह याद दिलाने की जरूरत नहीं कि कुछ बदला नहीं है। इसे वैसे ही रखें। चैनल अगले असली अलर्ट के लिए पठनीय रहता है।

संदेश में क्या होना चाहिए?

तीन चीज़ें: डोनर या प्रतिद्वंद्वी का नाम, दो गिनतियां और सहेजी गई फ़ाइल का लिंक। जब स्कोर जुड़ा हो, तो नई पंक्तियों में सर्वोच्च डोमेन रेटिंग जोड़ें, क्योंकि एक मजबूत डोमेन दस कमजोर डोमेन की तुलना में प्राथमिकता को अधिक बदल देता है।

विफलता सूचना किसको मिलेगी?

उस व्यक्ति को जो जॉब ठीद कर सकता है, न कि केवल उस व्यक्ति को जो संदेश पढ़ता है। 401 के लिए एक नई कुंजी की जरूरत है, और 402 के लिए अकाउंट पेज से टॉप-अप की जरूरत है। इनमें से कोई भी अगले सोमवार का इंतज़ार करके हल नहीं होता।

इसे विस्तारित करना

अलर्ट को डोनर URL और एंकर टेक्स्ट की जरूरत होने पर refdomains को backlinks से बदलें। दो क्रेडिट की लागत को ध्यान में रखें।

हर नए डोमेन को स्कोर करने के लिए bulk_dr जोड़ें, जो 2,000 डोमेन तक की कॉल पर एक क्रेडिट प्रति कॉल है। फिर आपका संदेश "3 नए, सर्वोच्च DR 72" कह सकता है, एक खाली सूची की जगह।

Google Sheets के लिए, Apps Script में UrlFetchApp के साथ वही क्वेरी स्ट्रिंग काम करती है। और प्रतिद्वंद्वियों के लिए, प्रतिद्वंद्वी बैकलिंक अलर्ट से थ्रेशोल्ड का उपयोग करें।