सामग्री पर जाएँ
Blume
Esc
↑↓नेविगेट↵खोलें⌘Jप्रीव्यू
इस पेज पर

ऑडिट

blume audit बिल्ट साइट को क्रॉल करता है और SEO तथा साइट-हेल्थ से जुड़ी समस्याओं की रिपोर्ट करता है — हर फ़ाइंडिंग उस सोर्स फ़ाइल और फ़्रंटमैटर लाइन का नाम बताती है जिससे समस्या ठीक होती है।

blume validate आपकी सामग्री पढ़ता है, जबकि blume audit बिल्ट साइट पढ़ता है। यह बिल्ड के बाद dist/ में मौजूद HTML को क्रॉल करता है और SEO तथा साइट-हेल्थ से जुड़ी समस्याओं की रिपोर्ट करता है। इनमें टाइटल, मेटा डिस्क्रिप्शन, कैनोनिकल, Open Graph और X कार्ड, हेडिंग, hreflang, इमेज, साइटमैप, robots.txt और स्ट्रक्चर्ड डेटा शामिल हैं।

साइट Blume ने बिल्ड की है, इसलिए हर फ़ाइंडिंग केवल वह URL नहीं बताती जो किसी क्रॉलर को दिखता है। वह उस सोर्स फ़ाइल और फ़्रंटमैटर की उस लाइन का नाम भी बताती है जिससे समस्या ठीक होती है:

⚠ Meta description too long or too short   5 pages
    /docs/configuration/export    content/docs/configuration/export.mdx:3
    fix: Rewrite `description` in the frontmatter to fit the length range.

बिल्ड के बाद इसे चलाएँ:

blume build
blume audit

फ़ाइंडिंग्स हर पेज के लिए अलग से नहीं दिखाई जातीं, बल्कि चेक के अनुसार समूहित की जाती हैं। इससे रिपोर्ट एक टू-डू सूची की तरह पढ़ी जा सकती है। हर प्रभावित पेज को उसके पूरे विवरण के साथ देखने के लिए --verbose का उपयोग करें। एक समय में एक श्रेणी पर काम करने के लिए --only/--skip का उपयोग करें। blume audit --list-checks पूरा कैटलॉग प्रिंट करता है। यही कैटलॉग इस पेज के अंत में चेक कैटलॉग के रूप में भी दिया गया है, और हर फ़ाइंडिंग का docsUrl वहाँ उसकी एंट्री से लिंक करता है।

फ़्लैग

  • --fail-on error|warning|info — यह CI गेट है। इस गंभीरता स्तर या उससे ऊपर की फ़ाइंडिंग मिलने पर कमांड नॉन-ज़ीरो कोड के साथ बाहर निकलती है। डिफ़ॉल्ट error है, और --strict, --fail-on warning का उपनाम है।
  • --url <origin> — स्टेटस कोड, रिस्पॉन्स हेडर और कॉन्फ़िगर किए गए रीडायरेक्ट के लिए किसी लाइव डिप्लॉयमेंट की भी जाँच करता है।
  • --external — नेटवर्क पर आउटबाउंड लिंक की जाँच करता है।
  • --ignore <glob> — --external के साथ, ऐसे किसी आउटबाउंड लिंक की जाँच नहीं करता जिसका URL glob से मेल खाता हो, जैसे --ignore "https://api.acme.example/**"। और पैटर्न जोड़ने के लिए यह फ़्लैग दोहराएँ। यह उसी तरह मिलान करता है जैसे blume validate --ignore करता है, और आंतरिक लिंक की जाँच हमेशा होती है।
  • --only <check|category> / --skip <check|category> — रिपोर्ट को केवल इन चेक या श्रेणियों तक सीमित करता है, या इन्हें रिपोर्ट से बाहर रखता है (कॉमा से अलग करके)। सारांश में दिखाई गई ऑडिट किए गए चेक की संख्या में केवल वही चेक गिने जाते हैं जो रिपोर्ट में शामिल रहते हैं। अगर कोई शब्द किसी चेक या श्रेणी का नाम नहीं है, तो त्रुटि मिलती है और सबसे मिलता-जुलता नाम सुझाया जाता है। इससे कोई टाइपो चुपचाप रिपोर्ट को खाली नहीं कर सकता।
  • --list-checks — ऑडिट जिन चेक की रिपोर्ट कर सकता है, उन सभी को प्रिंट करके बाहर निकल जाता है।
  • --verbose — केवल पहले कुछ पेजों के बजाय हर प्रभावित पेज को सूचीबद्ध करता है, और हर फ़ाइंडिंग का पूरा विवरण दिखाता है।
  • --json — रिपोर्ट को stdout पर JSON के रूप में आउटपुट करता है।
  • --codex / --claude — फ़ाइंडिंग्स को इंटरैक्टिव रूप से ठीक करने के लिए Codex या Claude Code को सौंपता है।

CI को फ़ेल करना

CI इसी एग्ज़िट कोड पर निर्भर करता है। डिफ़ॉल्ट रूप से blume audit केवल त्रुटियों पर फ़ेल होता है। त्रुटियाँ वे समस्याएँ हैं जो निश्चित रूप से टूटी हुई हैं, जैसे किसी ऐसे पेज का लिंक जो कभी बिल्ड नहीं हुआ, रीडायरेक्ट लूप या अमान्य साइटमैप। सलाह वाली फ़ाइंडिंग्स (जैसे छोटा डिस्क्रिप्शन या डुप्लिकेट टाइटल) चेतावनियाँ होती हैं और इनसे बिल्ड फ़ेल नहीं होता:

blume audit                      # fails on errors
blume audit --fail-on warning    # also fails on warnings

लाइव डिप्लॉयमेंट की जाँच करना

कुछ बातें केवल असली सर्वर ही बता सकता है। उदाहरण के लिए, dist/ में मौजूद कोई पेज गलत रीराइट के कारण असल में 404 तो नहीं देता, रिस्पॉन्स कंप्रेस्ड हैं या नहीं, कोई X-Robots-Tag हेडर किसी ऐसे पेज को चुपचाप डीइंडेक्स तो नहीं कर रहा जिसका HTML बिल्कुल ठीक दिखता है, और redirects में दिया गया हर पुराना URL सचमुच वहीं रीडायरेक्ट होता है या नहीं जहाँ आपने उसे कॉन्फ़िगर किया है। इन चेक को जोड़ने के लिए ऑडिट को किसी डिप्लॉयमेंट के URL पर चलाएँ:

blume audit --url https://docs.example.com
blume audit --url https://docs.example.com --external   # also probe outbound links

ये अनुरोध किसी क्रॉलर के रूप में नहीं, बल्कि एक सामान्य HTTP क्लाइंट के रूप में भेजे जाते हैं। ऑडिट Googlebot या किसी AI क्रॉलर का यूज़र एजेंट नहीं भेजता, क्योंकि किसी होस्ट की बॉट सुरक्षा ऐसे क्लाइंट को ब्लॉक कर सकती है जो क्रॉलर होने का दिखावा करता है। इसलिए क्रॉलर के साथ अलग व्यवहार करने वाले किसी फ़ायरवॉल या CDN नियम की जाँच नहीं होती। उसकी जाँच क्रॉलर के अपने टूल से करें, जैसे Google Search Console का URL Inspection।

ऑडिट हर सटीक रीडायरेक्ट के पुराने URL का अनुरोध करता है (पैटर्न किसी एक URL को नहीं दर्शाता जिसका अनुरोध किया जा सके)। जो URL 404 देता है, उसे त्रुटि माना जाता है। जो URL 200 के साथ जवाब देता है, उसे चेतावनी माना जाता है: जो होस्ट बिल्ड द्वारा लिखी गई रीडायरेक्ट फ़ाइल नहीं पढ़ता, वह वहाँ HTTP रीडायरेक्ट के बजाय बिल्ड का मेटा-रिफ़्रेश पेज सर्व करता है। पाठक इस पेज से आगे पहुँच जाते हैं, लेकिन हो सकता है कि क्रॉलर न पहुँचें। कौन-सा होस्ट क्या पढ़ता है, यह जानने के लिए रीडायरेक्ट देखें।

हर समस्या वाले आउटबाउंड लिंक को सीधे फ़ेल नहीं किया जाता, बल्कि जवाब के हिसाब से उसकी गंभीरता तय की जाती है। 404 या 410, या ऐसा होस्ट नाम जो रिज़ॉल्व नहीं होता, एक टूटा हुआ लिंक है जिसे आप ठीक कर सकते हैं। इसके अलावा कोई भी त्रुटि स्टेटस (बॉट को लौटा देने वाली साइट से मिला 401 या 403, 429, या 5xx), अस्वीकार किया गया कनेक्शन या टाइमआउट आमतौर पर रेट लिमिटिंग या किसी दूसरी साइट की सेवा में रुकावट के कारण होता है, इसलिए इन्हें चेतावनी के रूप में रिपोर्ट किया जाता है। ऑडिट जिस जगह से चलता है, वहाँ से जिन URL की जाँच नहीं हो सकती, जैसे कोई प्लेसहोल्डर डोमेन या लोकल सर्वर, उन्हें --ignore से बाहर रखें।

एजेंट की मदद से फ़ाइंडिंग्स ठीक करना

यदि आप Codex या Claude Code का उपयोग करते हैं, तो ऑडिट अपनी फ़ाइंडिंग्स सीधे उसे सौंप सकता है:

blume audit --codex   # or --claude

यह पूरी JSON रिपोर्ट एक फ़ाइल में लिखता है। इस रिपोर्ट में हर प्रभावित पेज होता है, टर्मिनल जैसा केवल तीन पेजों का प्रीव्यू नहीं। फिर यह एजेंट को इंटरैक्टिव मोड में एक प्रॉम्प्ट के साथ खोलता है, जो उसे फ़ाइंडिंग्स पर एक-एक करके काम करने का तरीका बताता है। एजेंट हर फ़ाइंडिंग में बताई गई सोर्स फ़ाइल संपादित करता है, सुझाया गया फ़िक्स लागू करता है, और फिर blume build और blume audit दोबारा चलाता है। यह तब तक चलता है जब तक रिपोर्ट में कोई समस्या न बचे। सत्र जानबूझकर इंटरैक्टिव रखा गया है, ताकि आप एजेंट के अपने अनुमति फ़्लो में हर संपादन की समीक्षा कर सकें। एजेंट को यह निर्देश भी दिया जाता है कि वह सामग्री हटाकर कभी कोई फ़ाइंडिंग ठीक न करे।

--only और --skip एजेंट को भेजी जाने वाली फ़ाइंडिंग्स को भी उसी तरह सीमित करते हैं जैसे रिपोर्ट को। इस तरह आप एक समय में एक श्रेणी भेज सकते हैं।

यह क्या जाँचता है और क्या नहीं

चेक का सेट जानबूझकर किसी सामान्य SEO क्रॉलर की तुलना में सीमित रखा गया है। ऐसे क्रॉलर जिन समस्याओं की रिपोर्ट करते हैं, उनमें से कई Blume साइट में हो ही नहीं सकतीं। उदाहरण के लिए, Blume कभी rel=nofollow नहीं जोड़ता, और Vite के कंटेंट-हैश्ड बंडल कभी गायब या रीडायरेक्ट नहीं होते। इन्हें हमेशा शून्य दिखाने वाले चेक के रूप में रिपोर्ट करने से आप बस रिपोर्ट को अनदेखा करना सीखेंगे।

कुछ सीमाएँ स्पष्ट रूप से बताना ज़रूरी है:

  • स्ट्रक्चर्ड डेटा का केवल यह सत्यापन होता है कि उसकी संरचना सही है (मान्य JSON, एक @context और हर नोड पर एक @type)। Blume पूरी schema.org शब्दावली या Google के रिच-रिज़ल्ट नियमों के अनुसार सत्यापन नहीं करता।
  • कंट्रास्ट की जाँच आपके थीम कॉन्फ़िग में सेट किए गए रंगों के लिए होती है, हर एलिमेंट के लिए अलग से नहीं। ऑडिट पेजों को रेंडर नहीं करता, इसलिए MDX या theme.css में आपके द्वारा हाथ से लिखे गए किसी रंग को नहीं मापा जाता।
  • Core Web Vitals की जाँच नहीं होती। इनके लिए एक असली ब्राउज़र चाहिए, और ऐसा फ़्लैग जो चुपचाप कुछ भी न मापे, फ़्लैग न होने से भी बुरा होगा। इसलिए blume audit लेआउट शिफ़्ट के केवल उन कारणों की रिपोर्ट करता है जिन्हें वह ऑफ़लाइन देख सकता है (बिना width/height वाली इमेज और बहुत बड़े एसेट)। बाकी को फ़िलहाल छोड़ दिया गया है।

जो चेक ऑडिट ने नहीं चलाए, वे चुपचाप पास नहीं माने जाते, बल्कि स्किप किए गए के रूप में रिपोर्ट होते हैं:

⊘ network      skipped — pass --url <origin> (12 checks)
⊘ external     skipped — pass --external (2 checks)

चेक कैटलॉग

यहाँ वे सभी चेक श्रेणी के अनुसार दिए गए हैं जिनकी blume audit रिपोर्ट कर सकता है। हर चेक के साथ उसकी डिफ़ॉल्ट गंभीरता, उसे चलाने के लिए ज़रूरी स्रोत (बिल्ट HTML, थीम कॉन्फ़िग या कोई फ़्लैग) और रिपोर्ट में सुझाया गया फ़िक्स दिया गया है। --only और --skip इन id (BLUME_AUDIT_ प्रीफ़िक्स के बिना भी) या किसी श्रेणी की कुंजी को स्वीकार करते हैं। कुंजी हमेशा श्रेणी की हेडिंग जैसी नहीं होती, इसलिए इस तालिका का उपयोग करें: blume audit --only i18n लिखें, --only Internationalization नहीं।

श्रेणी कुंजी
सुलभता accessibility
सामग्री content
डुप्लिकेट duplicates
इंडेक्सिंग indexability
लिंक links
रीडायरेक्ट redirects
सोशल कार्ड social
अंतर्राष्ट्रीयकरण i18n
एसेट assets
साइटमैप sitemap
robots.txt robots
AI द्वारा खोज ai
स्ट्रक्चर्ड डेटा structured-data
लाइव डिप्लॉयमेंट network

सामग्री

टाइटल टैग गायब या खाली है

BLUME_AUDIT_TITLE_MISSING · error · बिल्ट HTML से

समाधान: पेज के फ़्रंटमैटर में एक title जोड़ें।

एक से अधिक टाइटल टैग

BLUME_AUDIT_TITLE_MULTIPLE · error · बिल्ट HTML से

समाधान: पेज के लेआउट या MDX से अतिरिक्त <title> हटाएँ।

टाइटल बहुत लंबा या बहुत छोटा है

BLUME_AUDIT_TITLE_LENGTH · warning · बिल्ट HTML से

समाधान: फ़्रंटमैटर में title को दोबारा लिखें, ताकि वह तय लंबाई की सीमा में आ जाए।

मेटा डिस्क्रिप्शन गायब या खाली है

BLUME_AUDIT_DESCRIPTION_MISSING · warning · बिल्ट HTML से

समाधान: पेज के फ़्रंटमैटर में एक description जोड़ें।

एक से अधिक मेटा डिस्क्रिप्शन टैग

BLUME_AUDIT_DESCRIPTION_MULTIPLE · error · बिल्ट HTML से

समाधान: पेज के लेआउट या MDX से अतिरिक्त डिस्क्रिप्शन <meta> हटाएँ।

मेटा डिस्क्रिप्शन बहुत लंबा या बहुत छोटा है

BLUME_AUDIT_DESCRIPTION_LENGTH · warning · बिल्ट HTML से

समाधान: फ़्रंटमैटर में description को दोबारा लिखें, ताकि वह तय लंबाई की सीमा में आ जाए।

H1 टैग गायब या खाली है

BLUME_AUDIT_H1_MISSING · warning · बिल्ट HTML से

समाधान: पेज को एक title दें, क्योंकि Blume इसी को पेज के <h1> के रूप में रेंडर करता है।

एक से अधिक H1 टैग

BLUME_AUDIT_H1_MULTIPLE · warning · बिल्ट HTML से

समाधान: बॉडी में मौजूद अतिरिक्त # Heading को ## में बदलें, क्योंकि Blume पहले से ही title को h1 के रूप में रेंडर करता है।

शब्दों की संख्या कम है

BLUME_AUDIT_LOW_WORD_COUNT · info · बिल्ट HTML से

समाधान: पेज की सामग्री बढ़ाएँ, या इसे किसी बड़े पेज में मिला दें।

हेडिंग के स्तर छूट गए हैं (जैसे h2 के बाद सीधे h4)

BLUME_AUDIT_HEADING_SKIP · info · बिल्ट HTML से

समाधान: हेडिंग को उससे ठीक एक स्तर नीचे रखें। छूटे हुए स्तरों से विषय-सूची की नेस्टिंग और स्क्रीन रीडर की आउटलाइन बिगड़ जाती है।

पेज की तारीख भविष्य की है

BLUME_AUDIT_FUTURE_DATED_PAGE · info · बिल्ट HTML से

समाधान: date ठीक करें, या पेज को तब तक प्रकाशित न करें जब तक उसे लाइव होना न हो।

व्यूपोर्ट सेट नहीं है

BLUME_AUDIT_VIEWPORT_MISSING · error · बिल्ट HTML से

समाधान: अपने इजेक्ट किए गए लेआउट में व्यूपोर्ट <meta> वापस जोड़ें।

डुप्लिकेट

डुप्लिकेट टाइटल

BLUME_AUDIT_DUPLICATE_TITLE · warning · बिल्ट HTML से

समाधान: हर पेज को एक अलग title दें, क्योंकि सर्च इंजन इसे परिणाम की हेडलाइन के रूप में दिखाते हैं।

डुप्लिकेट मेटा डिस्क्रिप्शन

BLUME_AUDIT_DUPLICATE_DESCRIPTION · warning · बिल्ट HTML से

समाधान: हर पेज को एक अलग description दें।

कैनोनिकल के बिना डुप्लिकेट पेज

BLUME_AUDIT_DUPLICATE_CONTENT · warning · बिल्ट HTML से

समाधान: पेजों को एक में मिला दें, या जिस पेज को इंडेक्स करना है उसे छोड़कर बाकी सभी पर seo.canonical में उसी पेज का URL दें।

इंडेक्सिंग

deployment.site सेट नहीं है

BLUME_AUDIT_SITE_NOT_SET · warning · बिल्ट HTML से

समाधान: blume.config.ts में deployment.site को साइट के सार्वजनिक URL पर सेट करें।

deployment.site डिप्लॉय के समय अपने-आप तय होता है

BLUME_AUDIT_SITE_INFERRED_AT_DEPLOY · info · बिल्ट HTML से

समाधान: प्रोडक्शन जैसे बिल्ड का ऑडिट करें (जैसे VERCEL=1 VERCEL_PROJECT_PRODUCTION_URL=<host> blume build), या --url <origin> के साथ सीधे डिप्लॉयमेंट का ऑडिट करें। deployment.site को हार्डकोड न करें, क्योंकि प्लेटफ़ॉर्म इसे हर डिप्लॉय पर सेट करता है।

पेज noindex है, लेकिन उसमें कैनोनिकल भी दिया गया है

BLUME_AUDIT_CANONICAL_ON_NOINDEX · warning · बिल्ट HTML से

समाधान: noindex पेजों से कैनोनिकल हटा दें। Google इन दोनों को एक-दूसरे का विरोधी मानता है और इनमें से किसी एक को अनदेखा कर सकता है।

ड्राफ़्ट पेज बिल्ड में शामिल है

BLUME_AUDIT_DRAFT_PAGE_PUBLISHED · warning · बिल्ट HTML से

समाधान: डिप्लॉय करने से पहले --preview के बिना दोबारा बिल्ड करें। अगर पेज प्रकाशित करने के लिए तैयार है, तो draft: true हटा दें।

कैनोनिकल URL गायब है

BLUME_AUDIT_CANONICAL_MISSING · warning · बिल्ट HTML से

समाधान: deployment.site सेट करें, ताकि Blume एब्सोल्यूट कैनोनिकल URL जोड़ सके।

नॉन-कैनोनिकल पेज

BLUME_AUDIT_CANONICAL_NOT_SELF · info · बिल्ट HTML से

समाधान: seo.canonical में इसी पेज का URL दें, या इसे हटा दें ताकि डिफ़ॉल्ट सेल्फ़-कैनोनिकल लागू हो।

कैनोनिकल किसी टूटे हुए या रीडायरेक्ट होने वाले पेज पर जाता है

BLUME_AUDIT_CANONICAL_BAD_TARGET · error · बिल्ट HTML से

समाधान: seo.canonical में ऐसे पेज का URL दें जो मौजूद हो और रीडायरेक्ट न होता हो।

कैनोनिकल का प्रोटोकॉल साइट से मेल नहीं खाता

BLUME_AUDIT_CANONICAL_PROTOCOL_MISMATCH · error · बिल्ट HTML से

समाधान: seo.canonical में वही प्रोटोकॉल इस्तेमाल करें जो deployment.site में है।

पेज इंडेक्स नहीं हो सकता

BLUME_AUDIT_ROBOTS_META_UNEXPECTED · info · बिल्ट HTML से

समाधान: अगर पेज इंडेक्स होना चाहिए, तो उसके फ़्रंटमैटर से noindex हटा दें।

पेज Googlebot की 2 MB की क्रॉल सीमा से बड़ा है

BLUME_AUDIT_HTML_TOO_LARGE · error · बिल्ट HTML से

समाधान: पेज को कई पेजों में बाँटें, क्योंकि Googlebot किसी HTML दस्तावेज़ के पहले 2 MB के बाद उसे पढ़ना बंद कर देता है।

X-Robots-Tag हेडर पेज के robots मेटा से मेल नहीं खाता

BLUME_AUDIT_ROBOTS_HEADER_CONFLICT · error · --url आवश्यक

समाधान: X-Robots-Tag हेडर हटा दें, या उसे पेज के robots मेटा के अनुरूप करें।

BLUME_AUDIT_LINK_TO_BROKEN · error · बिल्ट HTML से

समाधान: लिंक का गंतव्य ठीक करें, या वह पेज बनाएँ जिस पर लिंक जाता है।

deployment.base सेट होने पर, base के बिना वाला रूट-रिलेटिव लिंक यहाँ रिपोर्ट किया जाता है, क्योंकि होस्ट उस पाथ पर इस बिल्ड का कुछ भी सर्व नहीं करता। उसी होस्ट पर base से बाहर का पूरा URL रिपोर्ट नहीं किया जाता, क्योंकि कोई पेज इसी तरह उस दूसरे ऐप से लिंक करता है जिसे होस्ट डॉक्स के साथ सर्व करता है।

BLUME_AUDIT_LINK_TO_REDIRECT · warning · बिल्ट HTML से

समाधान: रीडायरेक्ट से होकर जाने के बजाय सीधे अंतिम गंतव्य का लिंक दें।

अनाथ पेज (केवल नेविगेशन से पहुँचा जा सकता है)

BLUME_AUDIT_ORPHAN_PAGE · warning · बिल्ट HTML से

समाधान: किसी संबंधित पेज की मुख्य सामग्री से इस पेज का लिंक दें।

BLUME_AUDIT_INTERNAL_LINK_ABSOLUTE · warning · बिल्ट HTML से

समाधान: रूट-रिलेटिव पाथ (/docs/x) का उपयोग करें, ताकि लिंक प्रीव्यू में और basePath बदलने पर भी काम करे।

BLUME_AUDIT_INTERNAL_LINK_NOFOLLOW · info · बिल्ट HTML से

समाधान: rel="nofollow" हटा दें, क्योंकि यह इस पेज की अथॉरिटी को साइट के दूसरे पेजों तक पहुँचने से रोकता है।

URL में डबल स्लैश है

BLUME_AUDIT_DOUBLE_SLASH_URL · error · बिल्ट HTML से

समाधान: basePath / deployment.base जाँचें, क्योंकि इनके अंत में स्लैश होने से // बनता है।

लिंक का फ़्रैगमेंट लक्ष्य पेज की किसी id से मेल नहीं खाता

BLUME_AUDIT_ANCHOR_BROKEN · warning · बिल्ट HTML से

समाधान: फ़्रैगमेंट में लक्ष्य पेज पर मौजूद किसी हेडिंग की id दें, या उस हेडिंग को ठीक करें जिस पर लिंक को जाना था।

URL में अपरकेस अक्षर, अंडरस्कोर या स्पेस हैं

BLUME_AUDIT_URL_STYLE · info · बिल्ट HTML से

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

रीडायरेक्ट

टूटा हुआ रीडायरेक्ट

BLUME_AUDIT_REDIRECT_BROKEN · error · बिल्ट HTML से

समाधान: रीडायरेक्ट को ऐसे पेज पर भेजें जो मौजूद हो।

रीडायरेक्ट लूप

BLUME_AUDIT_REDIRECT_LOOP · error · बिल्ट HTML से

समाधान: redirects में बने चक्र को तोड़ें, क्योंकि ऐसा रीडायरेक्ट कभी किसी पेज तक नहीं पहुँचता।

रीडायरेक्ट चेन

BLUME_AUDIT_REDIRECT_CHAIN · warning · बिल्ट HTML से

समाधान: चेन के हर रीडायरेक्ट को सीधे अंतिम गंतव्य पर भेजें।

मेटा रिफ़्रेश रीडायरेक्ट

BLUME_AUDIT_META_REFRESH · warning · बिल्ट HTML से

समाधान: मेटा रिफ़्रेश के बजाय blume.config.ts में असली रीडायरेक्ट का उपयोग करें।

रीडायरेक्ट का सोर्स एक असली पेज भी है

BLUME_AUDIT_REDIRECT_SOURCE_IS_PAGE · error · बिल्ट HTML से

समाधान: रीडायरेक्ट हटा दें, या उसी URL वाला पेज हटा दें। कोई पाथ दोनों नहीं हो सकता, और पाठकों को इनमें से कौन-सा मिलेगा, यह होस्ट पर निर्भर करता है।

HTTPS से HTTP पर रीडायरेक्ट

BLUME_AUDIT_REDIRECT_TO_HTTP · error · --url आवश्यक

समाधान: HTTPS URL पर रीडायरेक्ट करें।

लाइव साइट कॉन्फ़िगरेशन के अनुसार रीडायरेक्ट नहीं करती

BLUME_AUDIT_REDIRECT_NOT_SERVED · error · --url आवश्यक

समाधान: वह रीडायरेक्ट फ़ाइल डिप्लॉय करें जिसे आपका होस्ट पढ़ता है (डिप्लॉयमेंट दस्तावेज़ में रीडायरेक्ट देखें), या deployment में होस्ट का नाम दें।

अगर पुराना URL 200 के साथ जवाब देता है (मेटा-रिफ़्रेश पेज), या कॉन्फ़िगर किए गए गंतव्य के बजाय कहीं और रीडायरेक्ट होता है, तो इसकी जगह चेतावनी दी जाती है।

सोशल कार्ड

Open Graph टैग गायब या अधूरे हैं

BLUME_AUDIT_OG_INCOMPLETE · warning · बिल्ट HTML से

समाधान: एक description जोड़ें। बाकी Open Graph टैग Blume अपने-आप भर देता है।

Open Graph इमेज गायब है

BLUME_AUDIT_OG_IMAGE_MISSING · warning · बिल्ट HTML से

समाधान: अपने-आप बनने वाली OG इमेज चालू करने के लिए deployment.site सेट करें, या पेज पर seo.image सेट करें।

Open Graph इमेज बिल्ड में नहीं है

BLUME_AUDIT_OG_IMAGE_BROKEN · warning · बिल्ट HTML से

समाधान: seo.image में ऐसी फ़ाइल दें जो मौजूद हो, या दोबारा बिल्ड करें। og:image टूटी हुई हो, तो पेज जहाँ भी शेयर होता है वहाँ खाली कार्ड दिखता है।

Open Graph इमेज बड़े कार्ड के लिए बहुत छोटी है

BLUME_AUDIT_OG_IMAGE_SMALL · warning · बिल्ट HTML से

समाधान: कम से कम 1200×630 की इमेज इस्तेमाल करें। इससे छोटी इमेज धुंधली दिखती हैं या छोटे कार्ड वाले लेआउट के लिए क्रॉप हो जाती हैं।

Open Graph URL कैनोनिकल से मेल नहीं खाता

BLUME_AUDIT_OG_URL_MISMATCH · warning · बिल्ट HTML से

समाधान: og:url को पेज के कैनोनिकल URL के समान करें।

X (Twitter) कार्ड गायब या अधूरा है

BLUME_AUDIT_TWITTER_CARD_INCOMPLETE · warning · बिल्ट HTML से

समाधान: blume.config.ts में seo.x.handle सेट करें, ताकि X कार्ड के साथ सही अकाउंट दिखा सके।

अंतर्राष्ट्रीयकरण

HTML lang एट्रिब्यूट गायब है

BLUME_AUDIT_HTML_LANG_MISSING · error · बिल्ट HTML से

समाधान: अपने इजेक्ट किए गए लेआउट में <html> पर lang एट्रिब्यूट वापस जोड़ें।

HTML lang एट्रिब्यूट अमान्य है

BLUME_AUDIT_HTML_LANG_INVALID · error · बिल्ट HTML से

समाधान: लोकेल के लिए मान्य BCP 47 टैग (जैसे en, en-GB) का उपयोग करें।

hreflang और HTML lang मेल नहीं खाते

BLUME_AUDIT_HREFLANG_LANG_MISMATCH · error · बिल्ट HTML से

समाधान: पेज का <html lang> उसी पेज के अपने hreflang एनोटेशन से मेल खाना चाहिए।

hreflang एनोटेशन अमान्य है

BLUME_AUDIT_HREFLANG_INVALID · error · बिल्ट HTML से

समाधान: hreflang एनोटेशन में मान्य BCP 47 टैग का उपयोग करें।

पेज का अपना hreflang एनोटेशन गायब है

BLUME_AUDIT_HREFLANG_SELF_MISSING · warning · बिल्ट HTML से

समाधान: पेज के hreflang सेट में उसी पेज की एंट्री भी होनी चाहिए।

x-default hreflang एनोटेशन गायब है

BLUME_AUDIT_HREFLANG_XDEFAULT_MISSING · info · बिल्ट HTML से

समाधान: डिफ़ॉल्ट लोकेल वाले पेज के लिए एक x-default alternate जोड़ें।

पारस्परिक hreflang गायब है (रिटर्न टैग नहीं है)

BLUME_AUDIT_HREFLANG_NO_RETURN_TAG · error · बिल्ट HTML से

समाधान: hreflang समूह के हर पेज में समूह के बाकी सभी पेजों के hreflang लिंक होने चाहिए।

hreflang किसी टूटे हुए, रीडायरेक्ट होने वाले या नॉन-कैनोनिकल पेज पर जाता है

BLUME_AUDIT_HREFLANG_BAD_TARGET · error · बिल्ट HTML से

समाधान: hreflang alternate में ऐसे पेज का URL दें जो मौजूद हो और कैनोनिकल हो।

hreflang समूह में एक ही भाषा के लिए अलग-अलग पेज हैं

BLUME_AUDIT_HREFLANG_CONFLICT · error · बिल्ट HTML से

समाधान: hreflang समूह में हर भाषा के लिए ठीक एक पेज होना चाहिए।

सुलभता

ये चेक हर पेज पर नहीं, बल्कि आपके थीम कॉन्फ़िग पर चलते हैं, क्योंकि थीम का रंग पूरी साइट के लिए एक ही विकल्प होता है। यह चेक रंगों को उसी तरह तय करता है जैसे बिल्ड करता है (हर मोड के लिए प्रीसेट का शेड, और फ़िल पर सफ़ेद या गहरे रंग के लेबल)। फिर यह थीम में इस्तेमाल होने वाले हर टेक्स्ट रंग को लाइट और डार्क मोड में बॉडी टेक्स्ट के लिए तय WCAG AA अनुपात, 4.5:1, से मापता है।

थीम के रंग WCAG AA कंट्रास्ट को पूरा नहीं करते

BLUME_AUDIT_THEME_CONTRAST_LOW · warning · थीम कॉन्फ़िग से

समाधान: लाइट मोड के लिए गहरा शेड या डार्क मोड के लिए हल्का शेड चुनें। theme.accent: { light, dark } की मदद से हर मोड के लिए अलग रंग सेट करें।

यह पेज पर एक्सेंट टेक्स्ट, एक्सेंट और action फ़िल पर लेबल, और कस्टम background पर बॉडी तथा सेकेंडरी टेक्स्ट की जाँच करता है। हर फ़ाइंडिंग रंगों की जोड़ी, मोड और उसका अनुपात बताती है।

थीम के रंग के कंट्रास्ट की जाँच नहीं हो सकती

BLUME_AUDIT_THEME_COLOR_UNCHECKED · info · थीम कॉन्फ़िग से

समाधान: रंग को hex, rgb(), hsl(), hwb(), lab(), lch(), oklab(), oklch() या किसी नामित रंग के रूप में लिखें, ताकि उसके कंट्रास्ट की जाँच की जा सके।

एसेट

alt टेक्स्ट गायब है

BLUME_AUDIT_IMAGE_ALT_MISSING · warning · बिल्ट HTML से

समाधान: इमेज का वर्णन करने वाला alt टेक्स्ट जोड़ें। अगर इमेज केवल सजावट के लिए है, तो alt="" जोड़ें।

इमेज टूटी हुई है

BLUME_AUDIT_IMAGE_BROKEN · error · बिल्ट HTML से

समाधान: इमेज का पाथ ठीक करें, या फ़ाइल को public/ में जोड़ें।

एसेट फ़ाइल बहुत बड़ी है

BLUME_AUDIT_ASSET_TOO_LARGE · warning · बिल्ट HTML से

समाधान: एसेट को कंप्रेस करें, या उसे किसी आधुनिक फ़ॉर्मेट (WebP/AVIF) में सर्व करें।

इमेज में width/height नहीं है

BLUME_AUDIT_IMAGE_MISSING_DIMENSIONS · warning · बिल्ट HTML से

समाधान: width और height सेट करें, ताकि ब्राउज़र पहले से जगह तय कर सके और लेआउट शिफ़्ट न हो।

संदर्भित स्क्रिप्ट, स्टाइल या एसेट बिल्ड में नहीं है

BLUME_AUDIT_SUBRESOURCE_MISSING · error · बिल्ट HTML से

समाधान: संदर्भ ठीक करें, या गायब फ़ाइल वापस जोड़ें।

HTTPS/HTTP मिश्रित सामग्री

BLUME_AUDIT_MIXED_CONTENT · error · बिल्ट HTML से

समाधान: सबरिसोर्स को HTTPS से लोड करें, क्योंकि ब्राउज़र मिश्रित सामग्री को ब्लॉक कर देते हैं।

साइटमैप

इंडेक्स होने योग्य पेज साइटमैप में नहीं है

BLUME_AUDIT_INDEXABLE_PAGE_NOT_IN_SITEMAP · warning · बिल्ट HTML से

समाधान: अगर पेज इंडेक्स होना चाहिए, तो उसके फ़्रंटमैटर से draft/hidden/noindex हटा दें। public/sitemap.xml मौजूद होने पर वह अपने-आप बनने वाले साइटमैप की जगह ले लेता है, इसलिए पेज को उसमें जोड़ें या वह फ़ाइल हटा दें।

साइटमैप में noindex पेज है

BLUME_AUDIT_NOINDEX_IN_SITEMAP · error · बिल्ट HTML से

समाधान: noindex पेज को साइटमैप में शामिल नहीं किया जाना चाहिए।

साइटमैप में नॉन-कैनोनिकल पेज है

BLUME_AUDIT_NON_CANONICAL_IN_SITEMAP · error · बिल्ट HTML से

समाधान: साइटमैप में केवल कैनोनिकल URL शामिल करें।

साइटमैप में ऐसा पेज है जो मौजूद नहीं है या रीडायरेक्ट होता है

BLUME_AUDIT_SITEMAP_BAD_URL · error · बिल्ट HTML से

समाधान: साइटमैप से वह URL हटा दें, या उस URL वाला पेज बिल्ड करें।

साइटमैप में सिंटैक्स त्रुटि है या उसका फ़ॉर्मेट गलत है

BLUME_AUDIT_SITEMAP_INVALID · error · बिल्ट HTML से

समाधान: साइटमैप sitemaps.org के urlset या साइटमैप इंडेक्स फ़ॉर्मेट में मान्य XML होना चाहिए।

साइटमैप 50 MB या 50,000 URL से बड़ा है

BLUME_AUDIT_SITEMAP_TOO_LARGE · error · बिल्ट HTML से

समाधान: साइटमैप को कई फ़ाइलों में बाँटें। एक साइटमैप की सीमा 50 MB और 50,000 URL है।

साइटमैप का lastmod अमान्य है या भविष्य की तारीख का है

BLUME_AUDIT_SITEMAP_LASTMOD_INVALID · warning · बिल्ट HTML से

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

साइटमैप में उसके दायरे से बाहर के URL हैं

BLUME_AUDIT_SITEMAP_OUT_OF_SCOPE · warning · बिल्ट HTML से

समाधान: साइटमैप में केवल उसी ओरिजिन के URL हो सकते हैं जिस पर साइटमैप है।

साइटमैप तक पहुँचा नहीं जा सकता

BLUME_AUDIT_SITEMAP_NOT_ACCESSIBLE · error · --url आवश्यक

समाधान: sitemap.xml को साइट के रूट पर उपलब्ध कराएँ।

robots.txt

robots.txt गायब है

BLUME_AUDIT_ROBOTS_MISSING · warning · बिल्ट HTML से

समाधान: robots.txt बनाने के लिए seo.robots: true सेट करें।

robots.txt में सिंटैक्स त्रुटि है

BLUME_AUDIT_ROBOTS_INVALID · error · बिल्ट HTML से

समाधान: robots.txt की हर लाइन या तो Field: value डायरेक्टिव होनी चाहिए या टिप्पणी।

robots.txt साइटमैप में शामिल किसी पेज को ब्लॉक करता है

BLUME_AUDIT_ROBOTS_DISALLOWS_INDEXABLE · error · बिल्ट HTML से

समाधान: कोई पेज robots.txt में ब्लॉक भी हो और साइटमैप में शामिल भी हो, ऐसा नहीं हो सकता।

robots.txt किसी एक क्रॉलर को साइटमैप में शामिल पेजों से ब्लॉक करता है

BLUME_AUDIT_ROBOTS_BLOCKS_CRAWLER · warning · बिल्ट HTML से

समाधान: अगर उस क्रॉलर को ये पेज पढ़ने चाहिए, तो उसके User-agent समूह में दिए नियम का दायरा कम करें या उसे हटा दें। किसी AI क्रॉलर को जानबूझकर ब्लॉक करना ठीक है; ऐसे में यह चेक स्किप करें।

जिस क्रॉलर का नाम उसके अपने User-agent समूह में दिया गया है, वह केवल उसी समूह के नियमों का पालन करता है। इसलिए वहाँ दिया गया नियम (User-agent: GPTBot के बाद Disallow: /) उस क्रॉलर को बाहर रखता है, जबकि बाकी सभी क्रॉलर पेज पढ़ते हैं। ऑडिट हर क्रॉलर की रिपोर्ट केवल एक बार करता है, उस नियम पर जो उसके लिए पहला पेज ब्लॉक करता है।

robots.txt में साइटमैप का संदर्भ नहीं है

BLUME_AUDIT_ROBOTS_SITEMAP_MISSING · info · बिल्ट HTML से

समाधान: deployment.site सेट करें, ताकि robots.txt में साइटमैप का संदर्भ जोड़ा जा सके।

robots.txt तक पहुँचा नहीं जा सकता

BLUME_AUDIT_ROBOTS_NOT_ACCESSIBLE · error · --url आवश्यक

समाधान: robots.txt को साइट के रूट पर उपलब्ध कराएँ।

AI द्वारा खोज

llms.txt बिल्ड में नहीं है

BLUME_AUDIT_LLMS_TXT_MISSING · warning · बिल्ट HTML से

समाधान: दोबारा बिल्ड करें। agents.llmsTxt चालू है, लेकिन बिल्ड में llms.txt नहीं है। अगर आप इसे जानबूझकर नहीं बनाना चाहते, तो agents.llmsTxt: false सेट करें।

llms.txt में ऐसा पेज है जो बिल्ड में उपलब्ध नहीं है

BLUME_AUDIT_LLMS_TXT_STALE_ENTRY · warning · बिल्ट HTML से

समाधान: दोबारा बिल्ड करें, ताकि llms.txt साइट से मेल खाए। पुरानी एंट्री किसी AI एजेंट को ऐसे पेज पर भेजती है जो मौजूद ही नहीं है।

इंडेक्स होने योग्य पेज llms.txt में नहीं है

BLUME_AUDIT_LLMS_TXT_PAGE_MISSING · warning · बिल्ट HTML से

समाधान: दोबारा बिल्ड करें, ताकि llms.txt साइट से मेल खाए। अगर पेज को जानबूझकर बाहर रखा गया है, तो उसके फ़्रंटमैटर में ai.exclude: true सेट करें।

एजेंट द्वारा खोज के लिए कोई DNS-AID रिकॉर्ड नहीं है

BLUME_AUDIT_DNS_AID_MISSING · info · --url आवश्यक

समाधान: अपने DNS प्रदाता पर _index._agents.<host> के लिए एक ServiceMode SVCB या HTTPS रिकॉर्ड प्रकाशित करें, ताकि एजेंट DNS (DNS-AID) से साइट खोज सकें।

DNS-AID रिकॉर्ड DNSSEC से प्रमाणित नहीं हैं

BLUME_AUDIT_DNS_AID_UNSIGNED · info · --url आवश्यक

समाधान: ज़ोन के लिए DNSSEC चालू करें, ताकि DNSSEC की जाँच करने वाले रिज़ॉल्वर प्रमाणित DNS-AID उत्तर लौटाएँ। अगर आपका DNS प्रदाता DNSSEC का समर्थन नहीं करता, तो भी बिना हस्ताक्षर वाले रिकॉर्ड काम करते हैं।

स्ट्रक्चर्ड डेटा

स्ट्रक्चर्ड डेटा मान्य JSON नहीं है

BLUME_AUDIT_JSONLD_INVALID · error · बिल्ट HTML से

समाधान: JSON-LD ब्लॉक मान्य JSON होना चाहिए।

स्ट्रक्चर्ड डेटा में आवश्यक प्रॉपर्टी गायब हैं

BLUME_AUDIT_JSONLD_INCOMPLETE · warning · बिल्ट HTML से

समाधान: हर JSON-LD नोड में @context और @type होने चाहिए।

लाइव डिप्लॉयमेंट

4XX पेज

BLUME_AUDIT_HTTP_4XX · error · --url आवश्यक

समाधान: पेज किसी लिंक या साइटमैप में है, लेकिन डिप्लॉयमेंट पर यह 404 देता है।

5XX पेज

BLUME_AUDIT_HTTP_5XX · error · --url आवश्यक

समाधान: डिप्लॉयमेंट इस पेज पर त्रुटि दे रहा है।

टाइम आउट

BLUME_AUDIT_HTTP_TIMEOUT · error · --url आवश्यक

समाधान: पेज ने समय पर जवाब नहीं दिया।

कंप्रेस्ड नहीं है

BLUME_AUDIT_NOT_COMPRESSED · warning · --url आवश्यक

समाधान: होस्ट पर gzip या brotli चालू करें।

धीमा पेज

BLUME_AUDIT_SLOW_RESPONSE · warning · --url आवश्यक

समाधान: पेज ने जवाब देने में बहुत समय लिया।

BLUME_AUDIT_EXTERNAL_LINK_BROKEN · error · --external आवश्यक

समाधान: बाहरी लिंक ठीक करें या हटा दें।

BLUME_AUDIT_EXTERNAL_LINK_REDIRECT · info · --external आवश्यक

समाधान: सीधे अंतिम गंतव्य का लिंक दें।

अंतिम अपडेट

क्या यह पेज सहायक था?