2009-07-08 11 views
32

क्या एक अत्यधिक गतिशील वेबसाइट जो लगातार नए पेज उत्पन्न कर रही है sitemap का उपयोग करें? यदि हां, तो stackoverflow.com जैसी साइट साइटमैप को पुन: उत्पन्न करने के बारे में कैसे जाती है? ऐसा लगता है कि यह बहुमूल्य सर्वर संसाधनों पर एक नाली होगी यदि हर बार जब कोई प्रश्न पूछता है तो यह लगातार साइटमैप को पुन: उत्पन्न कर रहा था। क्या यह सेट अंतराल पर एक नया साइटमैप उत्पन्न करता है (उदाहरण के लिए हर चार घंटे)? मैं बहुत उत्सुक हूं कि कितनी बड़ी, गतिशील वेबसाइटें इस काम को बनाती हैं।एक अत्यधिक गतिशील वेबसाइट पर साइटमैप

+0

क्या आपके पास साइटमैप की विशिष्ट आवश्यकता है? वे थोड़ा पुराने हैं; कुछ साइटें उन्हें बिल्कुल उपलब्ध नहीं कराती हैं। –

+0

क्या आप उस साइटमैप के प्रकार को निर्दिष्ट कर सकते हैं जिसके बारे में आप बात कर रहे हैं। साइटमैप के कई कार्यान्वयन हैं जो विभिन्न उद्देश्यों के लिए हैं। उदाहरण के लिए एक्सएमएल आधारित साइटमैप खोज इंजन के लिए उपयोग किए जाते हैं और फिर साइटमैप जो उपयोगकर्ताओं के लिए साइट पर विशेष पृष्ठ ढूंढने के लिए होते हैं। – MitMaro

+8

निश्चित रूप से वे एक sitemap.xml फ़ाइल के बारे में बात कर रहे हैं - एक उपयोगकर्ता-सुलभ साइटमैप जो 100,000+ आइटम वाले साइट पर प्रत्येक आइटम सूचीबद्ध करता है वह पूरी तरह से और स्पष्ट रूप से बेकार होगा। – ceejayoz

उत्तर

35

Stackoverflow (और सभी स्टैक एक्सचेंज साइटों) पर, एक sitemap.xml फ़ाइल बनाई गई है जिसमें हर सवाल प्रणाली पर पोस्ट के लिए एक लिंक। जब कोई नया प्रश्न पोस्ट किया जाता है, तो वे साइटमैप फ़ाइल के अंत में एक और प्रविष्टि जोड़ते हैं। यह नहीं है कि फ़ाइल के अंत में जोड़ने के लिए संसाधन गहन है लेकिन फ़ाइल काफी बड़ी है।

यही एकमात्र तरीका है जैसे Google जैसे खोज इंजन प्रभावी रूप से साइट को क्रॉल कर सकते हैं। एक ब्लॉग पोस्ट में इसके बारे में

जेफ Atwood वार्ता: The Importance of Sitemaps

यह Google's webmaster help page on sitemaps से है:

  • आपकी साइट गतिशील सामग्री है:

    साइटमैप विशेष रूप से उपयोगी है, तो कर रहे हैं।

  • आपकी साइट में ऐसे पृष्ठ हैं जिन्हें Googlebot द्वारा क्रॉल प्रक्रिया के दौरान आसानी से खोजा नहीं जाता है - उदाहरण के लिए, पृष्ठ समृद्ध AJAX या Flash की विशेषता है।
  • आपकी साइट नई है और इसमें इसके कुछ लिंक हैं। (Googlebot एक पृष्ठ से के लिए एक और अनुगमन करते हुए वेब क्रॉल करता है, इसलिए यदि आपकी साइट अच्छी तरह से जुड़ा हुआ नहीं है, यह यह खोज करने के लिए हमारे लिए मुश्किल हो सकता है।)
  • आपकी साइट की सामग्री का एक बड़ा संग्रह है वे पृष्ठ जो एक दूसरे से अच्छी तरह से जुड़े नहीं हैं, या पर सभी लिंक नहीं हैं।
+4

जब कोई उपयोगकर्ता कोई प्रश्न हटा देता है तो क्या होता है? क्या कभी ऐसा समय है कि वे पूरे साइटमैप को पुन: उत्पन्न करेंगे? –

+4

किसी विलोपन के लिए अपडेट करने की आवश्यकता नहीं है, जब तक कि आपकी साइट उस प्रश्न पर 404 लौटाती है। Google 404 को अनदेखा करेगा और इसे इंडेक्स से हटा देगा, इसलिए कोई नुकसान नहीं हुआ। – ceejayoz

+2

क्या इसका मतलब यह है कि एसओ के साइटमैप आइटम को कभी भी अंतिम मॉडल फ़ील्ड अपडेट नहीं किया जाएगा? एक खोज पृष्ठ को पुनर्निर्मित करने के लिए खोज इंजन कैसे जानेंगे? –

-1

मैं साइट के अधिक स्थिर पृष्ठों के लिए केवल एक साइट मानचित्र बनाउंगा। उदाहरण के लिए स्टैक ओवरव्लो पर साइटमैप अक्सर पूछे जाने वाले प्रश्न, के बारे में, प्रश्न, टैग, उपयोगकर्ता इत्यादि के लिए दिखा सकता है ... पृष्ठ लेकिन वास्तविक प्रश्नों, या सभी टैग, और विभिन्न उपयोगकर्ताओं के लिंक नहीं दिखाते हैं।

+3

जो sitemap.xml फ़ाइल के उद्देश्य को याद करता है। – ceejayoz

+0

@ मितमारो: मैं आपके बिंदु से सहमत हूं (मेरी समान पोस्टिंग देखें)। यकीन नहीं है कि तुम क्यों उतर गए हो; काउंटर करने के लिए +1। –

+0

@ceejayoz: उन्होंने sitemap.xml फ़ाइल का उल्लेख नहीं किया। और यहां तक ​​कि अगर उसने एक्सएमएल साइटमैप का उद्देश्य किया है तो खोज इंजन को अत्यधिक गतिशील पृष्ठों या पृष्ठों को इंडेक्स करने की अनुमति देना है, जिनके साथ कोई बाहरी लिंक नहीं है। किसी साइट के मुख्य अनुभागों के लिए साइटमैप प्रदान करके (उदाहरण के लिए स्टैक ओवरफ़्लो पर प्रश्न पृष्ठ) खोज इंजन क्रॉलर उस पृष्ठ पर गतिशील सामग्री को इंडेक्स कर सकते हैं (प्रश्न) और इसलिए साइटमैप ने ऐसा किया है जो इसे करना था । – MitMaro

2

स्टैक ओवरव्लो जैसे कुछ पर भी, स्थिर संगठन की एक निश्चित राशि है; अक्सर पूछे जाने वाले प्रश्न, टैग पेज, प्रश्न पृष्ठ, उपयोगकर्ता पेज, बैज पेज आदि हैं; मैं एक बहुत गतिशील साइट में कहूंगा, साइटमैप तक पहुंचने का सबसे अच्छा तरीका वर्गीकरण का नक्शा होना होगा; साइटमैप में प्रत्येक नोड गतिशील रूप से जेनरेट किए गए डेटा (एक प्रश्न पृष्ठ के लिए नोड, उपयोगकर्ता पृष्ठ के लिए नोड इत्यादि) के एक पृष्ठ को इंगित कर सकता है।

बेशक, एक साइटमैप किसी दिए गए साइट के लिए भी उपयुक्त नहीं हो सकता है; वहाँ एक निश्चित मात्रा में निर्णय कॉल की आवश्यकता है।

+1

मैंने आपका डाउन वोट भी गिन लिया। मुझे लगता है कि कोई हमारे साथ असहमत है .. – MitMaro

+1

स्वीकार्य उत्तर के आधार पर, ओपी भी आपसे असहमत है। – ceejayoz

+1

@ सेजयोज़: यप, जाहिर है, मुझे लगता है कि मिटमारो और मैंने दोनों प्रश्नों का उत्तर दिया ओपी ने पूछा; जैसा कि यह निकला, वे विशिष्टता चाहते थे, लेकिन उन्होंने विशिष्टता को निर्दिष्ट नहीं किया था, इसलिए ... –

12

हर बार एक प्रश्न पोस्ट होने पर Google साइटमैप एक्सएमएल को पुन: उत्पन्न करने की आवश्यकता नहीं है। डेटाबेस से सीधे एक्सएमएल फ़ाइल उत्पन्न करने के लिए यह बहुत आसान है (और थोड़ा कैशिंग)।

लोड को कम करने के लिए, साइटमैप को कई साइटमैप में विभाजित किया जा सकता है। दिन/महीने तक इसे विभाजित करने से आप Google को आज के साइटमैप को पुनः प्राप्त करने के लिए कह सकते हैं, लेकिन कुछ समय पहले ही छह महीने पहले साइटमैप लाएगा।

+0

किसने google sitemap.xml फ़ाइल के बारे में कुछ कहा? –

+5

यह सवाल में निहित है। कोई "बड़ी, गतिशील वेबसाइट" कभी भी उपयोगकर्ता द्वारा सुलभ साइटमैप में पोस्ट किए गए प्रत्येक प्रश्न को जोड़ नहीं पाएगी। – ceejayoz

+10

यह एक अच्छा जवाब है। मैं इसे स्वीकार कर लेता, लेकिन रॉबर्ट को चमकदार हाइपरलिंक्स और एक उद्धरण बॉक्स के साथ अधिक अच्छी तरह से स्वरूपित किया गया है! –

4

मैं यहाँ सिर्फ मामले में मेरी समाधान साझा करना चाहते हैं यह रूप में अच्छी तरह किसी को मदद मिलती है। यह मुझे यह तय करने के लिए इस प्रश्न और कई अन्य लोगों को पढ़ने के लिए ले गया कि क्या करना है।

मेरी साइट संरचना।

स्टेटिक पृष्ठों

  • होम (अत्यधिक गतिशील। 30 मिनट के लिए कैश्ड)
  • कलाकार, एल्बम, गीत, प्लेलिस्ट और एल्बम (पृष्ठांकित सूची)
  • कानूनी (नियम आदि के साथ स्टेटिक पेज)

... आदि

गतिशील पेज

  • कलाकार, एल्बम, गीत, प्लेलिस्ट और एल्बम विवरण पृष्ठ

मेरे दृष्टिकोण।

sitemap.xml: इस यूआरएल पहला आइटम जा रहा है /sitemap-main.xml के साथ एक <sitemapindex /> उत्पन्न करता है। Artists की संख्या, Albums, Songs इत्यादि की गणना की जाती है और 1,000 द्वारा विभाजित की जाती है (प्रत्येक साइटमैप में मैं चाहता हूं कि यूआरएल की संख्या। सीमा 50,000 है)। मैं इस नंबर को गोल करता हूं।

तो उदाहरण के लिए, 1 9 00 गीत = 1.9 = 2. मैं उत्पन्न करता हूं। सूचकांक में यूआरएल /sitemap-songs-0.xml और /sitemap-songs-1.xml जोड़ें। मैं इसे अन्य सभी वस्तुओं के लिए दोहराता हूं। असल में, मैं पेजिंग कर रहा हूँ।

आउटपुट वापस बेचा जाता है। मैं हमेशा यह ताजा होना चाहता हूँ।


साइटमैप-main.xml: यह सभी स्थैतिक पृष्ठों सूचीबद्ध करता है। आप वास्तव में इसके लिए एक स्थिर फ़ाइल का उपयोग कर सकते हैं क्योंकि आपको थोड़ी देर में इसे अपडेट करने की आवश्यकता होगी।


साइटमैप-गीत-0.xml, साइटमैप-एलबम-0.xml, आदि: मैं SlimPhp में इस के लिए एक मार्ग का उपयोग 2.

$app->get('/sitemap-:type-:page.xml', function ($type, $page) use ($app) {... 

मैं एक साधारण स्विच का उपयोग करें प्रासंगिक फाइलें उत्पन्न करने के लिए कथन। यदि इस पृष्ठ के लिए, मुझे 1,000 आइटम मिल गए हैं, ऊपर निर्दिष्ट सीमा, मैं फ़ाइल को 2 सप्ताह तक कैश करता हूं। अन्यथा, मैं इसे केवल कुछ घंटों तक कैश करता हूं।

मुझे लगता है कि यह किसी और को अपने सिस्टम को लागू करने में मदद कर सकता है।

0

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

संबंधित मुद्दे