اختيار منصة استضافة المواقع الثابتة المناسبة قد يوفّر عليك مئات الدولارات سنويًا، مع الحفاظ على سرعة موقعك وأمانه وسهولة صيانته. في 2026، نضجت خيارات الباقات المجانية بشكل ملحوظ، وباتت منصات مثل GitHub Pages وCloudflare Pages توفر بنية تحتية جاهزة للإنتاج بتكلفة صفرية. لكن ثمة تحدٍّ واحد تتجاهله معظم الشروحات: كيف تتعامل مع نماذج التواصل في موقع ثابت حين لا يوجد خادم لمعالجتها؟ هذا الدليل يأخذك خطوة بخطوة عبر كامل عملية الإعداد، من اختيار المنصة وصولًا إلى تشغيل نموذج تواصل فعلي، مع أمثلة عملية وقيود حقيقية تحتاج معرفتها قبل اتخاذ قرارك.
جدول المحتويات
أبرز النقاط:
- كلٌّ من GitHub Pages وCloudflare Pages يوفران استضافة مجانية حقيقية للمواقع الثابتة مع دعم النطاقات المخصصة.
- Cloudflare Pages أسرع على المستوى العالمي بفضل شبكة CDN الموزعة؛ أما GitHub Pages فأبسط للمطورين الذين يستخدمون GitHub أصلًا.
- المواقع الثابتة لا تستطيع معالجة النماذج بشكل مباشر - تحتاج إلى خدمة نماذج خارجية لاستقبال الإرسالات وإيصالها إلى بريدك.
- استخدام خدمة متخصصة لمعالجة النماذج مثل Sendform يتيح لك إضافة نموذج تواصل متكامل دون كتابة أي كود على جانب الخادم.
لماذا تستحق الاستضافة المجانية للمواقع الثابتة اهتمامك
الموقع الثابت يخدم ملفات HTML وCSS وJavaScript المبنية مسبقًا مباشرةً للمتصفح. لا يوجد PHP، ولا runtime لـNode.js، ولا استعلامات قاعدة بيانات عند كل تحميل للصفحة. هذه البساطة بالذات هي ما يجعل استضافة الصفحات الثابتة المجانية موثوقة جدًا: لا شيء يمكن أن يتعطل أو يحتاج إلى تحديث أو توسع.
للشركات الصغيرة وصفحات المحافظ الشخصية وصفحات هبوط تطبيقات SaaS ومواقع التوثيق، تؤدي الاستضافة الثابتة الغرض تمامًا:
- السرعة: الملفات تُقدَّم من أقرب عقدة في شبكة CDN، وغالبًا في أقل من 100 ميلي ثانية حول العالم.
- الأمان: غياب الـruntime على جانب الخادم يعني سطح هجوم أصغر بكثير.
- التكلفة: كلٌّ من GitHub Pages وCloudflare Pages مجانيان للمشاريع العامة وكثير من المشاريع الخاصة.
- البساطة: ادفع الكود إلى المستودع، وسيُنشر الموقع تلقائيًا.
القيد الحقيقي الوحيد هو الوظائف الديناميكية. أي شيء يتطلب منطقًا على جانب الخادم، كمصادقة المستخدمين أو سلة التسوق أو معالجة النماذج، يحتاج إلى خدمة خارجية. ضع ذلك في الاعتبار ونحن نمر بخطوات الإعداد.
مقارنة المنصات: GitHub Pages مقابل Cloudflare Pages
| الميزة | GitHub Pages | Cloudflare Pages |
|---|---|---|
| الباقة المجانية | نعم (المستودعات العامة مجانية دائمًا) | نعم (مواقع غير محدودة) |
| نطاق مخصص | نعم | نعم |
| HTTPS | تلقائي عبر Let's Encrypt | تلقائي عبر Cloudflare SSL |
| خط أنابيب البناء | GitHub Actions (إعداد يدوي) | CI/CD مدمج |
| شبكة CDN العالمية | محدودة (تتمركز في الولايات المتحدة) | أكثر من 300 موقع على الحافة |
| حد النطاق الترددي | حد غير صارم ~100 جيجابايت/شهر | غير محدود |
| دعم المستودعات الخاصة | يتطلب GitHub Pro | نعم، مجانًا |
الخلاصة: إذا كان جمهورك عالميًا وتريد أسرع أوقات تحميل ممكنة، فـCloudflare Pages هو الخيار الأفضل. أما إذا كان فريقك يعمل أصلًا على GitHub وتريد الإعداد الأبسط، فـGitHub Pages كافٍ تمامًا.
خطوة بخطوة: النشر على GitHub Pages
يفترض هذا المثال أن لديك موقعًا بسيطًا بـHTML/CSS جاهزًا للنشر. إذا كنت تستخدم مولّد مواقع ثابتة مثل Hugo أو Jekyll، فالعملية شبه متطابقة.
-
أنشئ مستودعًا على GitHub. اذهب إلى github.com/new وأنشئ مستودعًا عامًا. سمّه
your-username.github.ioإذا أردته على النطاق الجذري، أو أي اسم آخر إذا أردته في مسار فرعي. -
ادفع ملفات موقعك. من مجلد مشروعك المحلي، نفّذ:
git init git remote add origin https://github.com/your-username/your-repo.git git add . git commit -m "Initial deploy" git push -u origin main -
فعّل GitHub Pages. في المستودع، اذهب إلى Settings > Pages. تحت "Source"، اختر الفرع
mainوالمجلد/root(أو/docsإذا كان مخرج البناء هناك). اضغط Save. -
انتظر اكتمال النشر. سيبني GitHub موقعك وينشره خلال 1-3 دقائق. ستظهر رابط الموقع المباشر (مثل
https://your-username.github.io) في لوحة إعدادات Pages. -
ربط نطاق مخصص (اختياري). أضف ملف
CNAMEإلى جذر مستودعك يحتوي على اسم نطاقك (مثلwww.yoursite.com). ثم حدّث مزود DNS الخاص بك ليشير سجل CNAME إلىyour-username.github.io. سيُصدر GitHub شهادة SSL تلقائيًا خلال دقائق.
خطوة بخطوة: النشر على Cloudflare Pages
- سجّل أو سجّل الدخول إلى Cloudflare. اذهب إلى pages.cloudflare.com واربط حساب GitHub أو GitLab الخاص بك.
- أنشئ مشروعًا جديدًا. اضغط على "Create a project"، ثم "Connect to Git". اختر مستودعك من القائمة.
-
اضبط إعدادات البناء. إذا كان موقعك HTML بسيطًا، اترك حقل أمر البناء فارغًا واضبط مجلد الإخراج على
/أو المكان الذي يوجد فيهindex.html. لـHugo، اضبط أمر البناء علىhugoوالإخراج علىpublic. لـJekyll، استخدمjekyll buildوالإخراج على_site. -
انشر. اضغط على "Save and Deploy". سيستنسخ Cloudflare مستودعك ويشغّل البناء وينشر على شبكته العالمية على الحافة. يحصل موقعك فورًا على نطاق فرعي
*.pages.dev. -
أضف نطاقًا مخصصًا. في لوحة تحكم مشروعك، اذهب إلى "Custom domains" وأدخل نطاقك. إذا كان نطاقك مُدارًا بالفعل عبر Cloudflare DNS، فالإعداد بنقرة واحدة. إذا لم يكن كذلك، ستحتاج إلى إضافة سجل CNAME عند مزود التسجيل يشير إلى عنوان
*.pages.dev.
كل git push لاحق إلى الفرع الرئيسي سيُشغّل إعادة نشر تلقائية. كما ينشئ Cloudflare نشرات معاينة لطلبات السحب، وهو مفيد لمراجعة التغييرات قبل إطلاقها.
إضافة نموذج تواصل إلى موقعك الثابت
هنا تتوقف معظم الشروحات، وهنا يتعثر معظم الناس. نموذج التواصل في موقع ثابت لا يستطيع إرسال البيانات إلى نفسه - لا يوجد خادم يستمع. لديك ثلاثة خيارات عملية:
- خدمة backend للنماذج (الموصى به): توجّه خاصية
actionفي نموذجك إلى endpoint خارجي يستقبل الإرسالية ويتحقق منها ويرسلها إلى بريدك. - دالة serverless: تكتب دالة صغيرة (Cloudflare Workers أو AWS Lambda) لمعالجة النموذج. هذا يعمل لكنه يتطلب كودًا وصيانة مستمرة.
- JavaScript fetch(): تستخدم fetch API في المتصفح لإرسال بيانات النموذج إلى endpoint في الـbackend. راجع دليلنا حول كيفية إرسال بيانات نموذج HTML باستخدام JavaScript fetch() للتفاصيل التقنية.
أسرع طريق لنموذج يعمل هو خدمة نماذج متخصصة. إليك مثالًا عمليًا باستخدام Sendform:
مثال عملي: نموذج تواصل يعمل في 5 دقائق
لنفترض أن لديك موقع محفظة شخصية منشورًا على GitHub Pages. تريد أن يتمكن الزوار من إرسال رسائل إليك، وتريد وصول هذه الرسائل إلى بريدك الوارد. إليك كود HTML الكامل:
<form action="https://sendform.io/f/YOUR_FORM_ID" method="POST">
<label for="name">Your Name</label>
<input type="text" id="name" name="name" required>
<label for="email">Your Email</label>
<input type="email" id="email" name="email" required>
<label for="message">Message</label>
<textarea id="message" name="message" rows="5" required></textarea>
<button type="submit">Send Message</button>
</form>هذا هو كامل التكامل. تستبدل YOUR_FORM_ID بالمعرّف من لوحة تحكم Sendform، وكل إرسالية ستصل إلى البريد الإلكتروني الذي سجّلت به. لا كود backend، لا خادم، لا فاتورة بنية تحتية شهرية. للأنماط المتقدمة في تجربة المستخدم، بما في ذلك صفحات إعادة التوجيه بعد الإرسال ورسائل التأكيد، اقرأ دليلنا حول أفضل ممارسات نماذج المواقع الثابتة.
إذا كنت تستخدم منشئ مواقع إلى جانب موقعك الثابت، فنحن نغطي عملية التكامل بالتفصيل في مقالنا حول كيفية دمج Sendform مع منشئ موقعك.
ملاحظة حول الحماية من السبام: أي نموذج متاح للعموم سيجذب إرساليات الروبوتات. Sendform يتضمن حقول honeypot مدمجة وتحديدًا لمعدل الطلبات. للاطلاع على طرق الحفاظ على صندوق بريدك نظيفًا، راجع مقالنا حول أفضل ممارسات الحماية من السبام في النماذج.
أخطاء شائعة يجب تجنبها
بعد مساعدة آلاف المستخدمين في إعداد استضافة مجانية للمواقع الثابتة، هذه هي الأخطاء التي تسبب أكبر قدر من الإحباط:
1. نسيان صفحة 404
كلٌّ من GitHub Pages وCloudflare Pages سيعرض صفحة خطأ عامة عند عدم العثور على مسار. أنشئ ملف 404.html مخصصًا في المجلد الجذري. هذا يبقي المستخدمين على موقعك ويحافظ على تجربة علامتك التجارية.
2. حفظ الأسرار في مستودع عام
مفاتيح API وأسرار endpoint النماذج وعناوين البريد الإلكتروني يجب ألا تكون أبدًا في مستودع GitHub عام. استخدم متغيرات البيئة في Cloudflare Pages، أو أشر إلى ملف إعداد خاص مُدرج في .gitignore.
3. بناء نموذج دون خطة لمعالجته
هذا هو الخطأ الأكثر شيوعًا. يبني المطورون نموذج تواصل جميلًا، يدفعونه إلى GitHub Pages، ويكتشفون يوم الإطلاق أن النموذج يفشل بصمت. حدّد خطة معالجة النموذج قبل أن تكتب أي وسم <input>. أدوات مثل Sendform تتيح لك إعداد نموذج تواصل يرسل مباشرة إلى البريد دون أي كود، مما يُزيل مشكلة الـbackend كليًا.
4. تجاهل مشكلات ذاكرة التخزين المؤقت للبناء
إذا لم يتحدث موقعك بعد الدفع، قد تكون شبكة CDN تخدم ملفات قديمة من ذاكرة التخزين المؤقت. Cloudflare Pages يُفرغ ذاكرة التخزين المؤقت تلقائيًا عند النشر. GitHub Pages أبطأ في نشر التغييرات؛ انتظر حتى 10 دقائق، أو أضف query string إلى روابط الأصول أثناء الاختبار.
5. استخدام المسارات النسبية بشكل خاطئ
إذا كان موقع GitHub Pages الخاص بك على username.github.io/project-name/ (مجلد فرعي)، يجب أن تأخذ جميع مسارات الأصول هذا البادئة بعين الاعتبار. رابط مثل /styles.css سيتعطل. استخدم مسارات نسبية (./styles.css) أو اضبط إعداد baseURL في مولّد موقعك الثابت ليتطابق مع المجلد الفرعي.
6. تجاهل أتمتة سير عمل النماذج
بمجرد أن يبدأ نموذجك في استقبال الإرساليات، يمكنك فعل أكثر بكثير من مجرد تلقي رسائل البريد الإلكتروني. Sendform يدعم webhooks وتكاملات تتيح لك توجيه الإرساليات إلى Slack أو نظام CRM أو جدول بيانات تلقائيًا. دليلنا حول أتمتة سير عمل النماذج باستخدام webhooks وAPIs يوضح لك كيفية الإعداد دون كتابة أي كود backend.
الخلاصة
لم تكن استضافة المواقع الثابتة المجانية بهذا المستوى من القدرة في أي وقت مضى. GitHub Pages مناسب للفرق المندمجة في منظومة GitHub، بينما يوفر Cloudflare Pages أداءً عالميًا أفضل وباقة مجانية أكثر سخاءً. التحدي الحقيقي ليس الاستضافة في حد ذاتها - بل الوظائف الديناميكية، وبخاصة نماذج التواصل، هي ما يُوقع الناس. بربط أي من المنصتين بخدمة نماذج متخصصة، تحصل على موقع احترافي متكامل بتكلفة بنية تحتية صفرية. ابدأ بأحد دليلَي المنصات أعلاه، أطلق موقعك، ثم أضف نموذج التواصل باستخدام Sendform ليتولى معالجة الإرساليات بشكل موثوق منذ اليوم الأول.

أضف نموذج تواصل إلى موقعك الثابت في دقائق
استخدم Sendform لاستقبال إرساليات النماذج من أي موقع ثابت منشور على GitHub Pages أو Cloudflare Pages. لا كود backend، لا إعداد خادم، لا تعقيدات. فقط وجّه خاصية action في نموذجك إلى endpoint الخاص بك وانتهيت.
ابدأ مجانًا على Sendform.net ←
الأسئلة الشائعة
نعم، لمعظم الاستخدامات التجارية. كلٌّ من GitHub Pages وCloudflare Pages يوفران وقت تشغيل يزيد عن 99.9% مدعومًا ببنية تحتية على مستوى المؤسسات. القيد الرئيسي هو غياب المعالجة على جانب الخادم، وليس الموثوقية. للمواقع ذات الحركة العالية أو متاجر التجارة الإلكترونية، قد تتجاوز الباقة المجانية في نهاية المطاف، لكن لصفحات الهبوط والمحافظ الشخصية، الاستضافة المجانية بمستوى الإنتاج.
نعم. كلٌّ من GitHub Pages وCloudflare Pages يدعمان النطاقات المخصصة في باقاتهما المجانية، بما في ذلك HTTPS التلقائي عبر شهادات SSL. تحتاج إلى امتلاك النطاق وتحديث سجلات DNS لديك للإشارة إلى منصة الاستضافة. العملية تستغرق أقل من 15 دقيقة ويتم إصدار شهادة SSL تلقائيًا خلال ساعات قليلة.
المواقع الثابتة لا تستطيع معالجة إرساليات النماذج بشكل مباشر لأنه لا يوجد خادم يعمل. الحل المعتمد هو توجيه خاصية action في نموذجك إلى خدمة backend خارجية للنماذج. تلك الخدمة تستقبل طلب POST، وتتحقق من البيانات، وتعيد توجيهها إلى بريدك الإلكتروني. Sendform هي إحدى هذه الخدمات التي لا تتطلب أي كود للإعداد.
GitHub Pages أبسط ويتكامل مباشرة مع مستودعات GitHub، مما يجعله مثاليًا للمطورين الذين يستخدمون GitHub أصلًا. Cloudflare Pages يوفر شبكة CDN عالمية أسرع بأكثر من 300 موقع على الحافة، ونطاق ترددي غير محدود في الباقة المجانية، وCI/CD مدمج مع نشرات معاينة. للمواقع الحساسة للأداء، Cloudflare Pages هو الخيار الأقوى.
المعرفة الأساسية بـHTML مفيدة، لكنك لست بحاجة إلى أن تكون مطورًا. أدوات مثل Hugo وJekyll أو حتى ملفات HTML بسيطة تعمل بشكل مثالي على كلتا المنصتين. لنماذج التواصل، خدمات مثل Sendform لا تتطلب سوى لصق مقطع HTML جاهز، لذا لا تحتاج إلى أي معرفة ببرمجة الـbackend في أي مرحلة من مراحل الإعداد.