تخطٍّ إلى المحتوى
الجمعة، 5 يونيو 2026 · لندنENع
ريان الأزهري.الاستدامة · الطاقة · الكربون · البيئة المبنية

لقد توقفت عن الدفع مقابل استضافة ووردبريس

استضافة ووردبريس المُدارة ضريبة تدفعها مالاً وأداءً وقلقاً أمنياً. إليك كيف احتفظت بمحرّر ووردبريس الذي أحبّه، وشغّلته محلياً مجاناً، ونشرت الموقع كملفات HTML ساكنة على شبكة الحافة: زاحف بلغة Node بلا اعتمادات خارجية جعلته مفتوح المصدر.

ريان الأزهريأخصائي بيئي معتمد · 7 دقيقة قراءة

خط النشر المجاني، السريع، والآمن الذي بنيته بدلاً من ذلك، ثم جعلته مفتوح المصدر.

إذا كنت تدير مدونة ووردبريس (WordPress)، أو موقعاً شخصياً لأعمالك (Portfolio)، أو موقعاً لشركتك، فمن المحتمل جداً أنك تدفع ما أسميه «ضريبة ووردبريس».

تبدأ تكلفة استضافة ووردبريس المُدارة من حوالي 10 إلى 25 دولاراً شهرياً، أي ما يعادل 150 إلى 300+ دولاراً سنوياً بكل سهولة، والمشكلة أن هذه الفاتورة لا تضمن لك راحة البال أبداً، بسبب:

  • عقبات وبطء الأداء. مع كل زيارة لأي صفحة، يشغّل الخادم لغة PHP ويستعلم من قاعدة البيانات، حتى لو كان هذا المحتوى لم يتغير منذ أشهر.
  • قلق الأمان المستمر. ثغرات الإضافات (Plugins)، وجلسات تسجيل الدخول النشطة، وهجمات التخمين (brute-force)، ومخاطر حقن قواعد البيانات (SQL-injection)؛ كلها ضغوط يومية مرافقة للموقع.
  • إرهاق التحديثات المستمرة. تحديثات النظام الأساسي، والقوالب، والإضافات التي تضطر للقيام بها مراراً وتكراراً لمجرد إبقاء الموقع يعمل دون مشاكل.

إذن لماذا نستمر في استخدام ووردبريس؟ لأن بدائل الهروب المعتادة متعبة ومكلفة من حيث الوقت؛ فمولّدات المواقع الساكنة (Static Site Generators) مثل Gatsby وHugo وAstro ممتازة بالفعل، ولكنها تطلب منك كتابة المحتوى بلغة Markdown داخل محرر أكواد. وهذا يعني التخلي عن أفضل لوحة تحكم لتعديل المحتوى في العالم، وعن أدوات بناء الصفحات المرئية مثل Elementor وDivi، وعن منظومة الإضافات التي تعتمد عليها بشكل أساسي.

كنت أبحث عن المعادلة المثالية التي تمنحني الطرفين معاً:

  1. الاحتفاظ بتجربة تحرير وكتابة ووردبريس الكاملة، بتشغيلها محلياً على جهازي مجاناً.
  2. نشر الموقع للجمهور كملفات HTML ساكنة ومسطحة على شبكة عالمية سريعة على الحافة، ومجاناً أيضاً.

لذلك بنيت WP Local-to-Static: وهو قالب مفتوح المصدر خالٍ من أي اعتمادات خارجية (Zero-dependency) يفعل ذلك تماماً. وأشارككم هذا المقال اليوم لأقدّم هذا المشروع للمجتمع البرمجي.

لماذا لم تكن إضافات «ووردبريس الساكن» الحالية كافية؟

إذا كنت قد بحثت عن هذا الحل من قبل، فغالباً واجهت إضافات مثل Simply Static. وهي تؤدي الغرض بالفعل، إلى أن تقوم بتوجيهها نحو نسخة ووردبريس مثبتة محلياً على جهازك (باستخدام Local WP مثلاً). عندها ستصطدم بالواقع:

  • تعمل داخل خادم PHP الخاص بك. في المواقع الكبيرة، يتسبب هذا في حدوث تجميد كامل للخادم (Deadlocks)، وضغط كبير على الذاكرة، وانهيار التشغيل بسبب انتهاء المهلة المحددة (Timeout)؛ فالإضافة هنا تحارب بيئة التشغيل ذاتها التي تعتمد عليها لتعمل.
  • تتسبب في تعطيل الصور المتجاوبة (Responsive Images). يولّد ووردبريس أحجاماً متعددة لكل صورة ويعرضها عبر خاصية srcset. أما أدوات السحب البسيطة فتجلب فقط الصورة الأساسية في خاصية src. وبالتالي، عندما يفتح زائر موقعك من هاتفه المحمول، يبحث المتصفح عن حجم مخصص لم يتم تحميله مطلقاً، فيظهر مكان الصورة فارغاً أو معطلاً.
  • تسرّب نطاقك المحلي. تحتفظ ملفات HTML المصدَّرة بهدوء بروابط محلية مثل http://mysite.local/ مدفونة داخل مسارات التنقل (breadcrumbs)، وملفات oEmbed JSON، وروابط أزرار المشاركة، وخرائط الموقع (Sitemaps). وفي بيئة التشغيل الفعلية، يشير إليها متصفح Chrome كتحذيرات أمنية من نوع «الوصول إلى الشبكة الخاصة» (Private Network Access, PNA).

كنت بحاجة إلى حل مستقل تماماً عن بيئة تشغيل PHP، وذكي بما يكفي لفهم واجهات المواقع الحديثة، المتجاوبة، ومتعددة اللغات.

تعرّف على WP Local-to-Static

WP Local-to-Static هو برنامج زحف (Crawler) مكتوب بلغة Node.js ومستقل بذاته تماماً، يعمل بالكامل خارج خادم ووردبريس الخاص بك. يتواصل مع موقعك المحلي بنفس الطريقة التي يتواصل بها المتصفح، كعميل HTTP خارجي، وبالتالي لا يسبب أي مشكلة تجميد لـ PHP على الإطلاق.

يتميز بـ صفر اعتمادات خارجية من npm. الأداة بالكامل مبنية على مكتبة fetch المدمجة في Node (الإصدار 18 فما فوق)، لذا فإن أمر npm install لن يحمّل أي حزم خارجية، مما يضمن سلامة موقعك من مخاطر ثغرات سلاسل التوريد البرمجية (Supply-chain attacks).

تسير آلية العمل في خط مستقيم وبسيط:

اكتب في Local WP  ->  npm run publish  ->  التزام ورفع تلقائي  ->  مباشر على Vercel
 (على جهازك)          (زاحف Node)          (مستودع GitHub)         (شبكة CDN عالمية)

ما الذي يجعل هذا الزاحف ذكياً حقاً؟

1. يجد كل صفحة، وليس فقط تلك التي تتذكرها. يبدأ الزاحف رحلته من خرائط مواقع ووردبريس (post-sitemap.xml وpage-sitemap.xml وcategory-sitemap.xml والنسخ اللغوية الأخرى مثل /ar/)، ثم يكتشف ويجدول تلقائياً وبشكل تكراري كل رابط داخلي يصادفه. ويصفّي تلقائياً روابط النظام الداخلي مثل /wp-admin/ و/wp-json/ والتغذيات (feeds) وأرشيفات الكتّاب وملف xmlrpc.php.

2. سحب عميق واحترافي للصور المتجاوبة (srcset). لا يكتفي بقراءة خاصية src الأساسية فقط، بل يحلّل خاصيتي srcset وdata-srcset في كل وسم <img> و<source>، ويستخرج كل حجم مخصص للهواتف والأجهزة اللوحية والشاشات عالية الدقة، وينزّلها جميعاً. كما أنه يقوم بـ إلغاء التحميل الكسول (un-lazyload) للصور، من خلال تحويل خصائص data-src وdata-srcset وdata-sizes إلى خصائص حقيقية وجاهزة، لتظهر الصور فوراً في الموقع الساكن دون الحاجة لانتظار تشغيل جافا سكريبت.

3. يتتبّع الملفات والخطوط داخل أكواد CSS أيضاً. يحلّل الزاحف روابط url(...) في ملفات التنسيق (Stylesheets) وينزّل الخطوط وصور الخلفية المخفية هناك، وهي الملفات التي تتجاهلها وتسقطها معظم أدوات السحب الأخرى.

4. لا وجود لتسريب النطاق المحلي (آمن من تحذيرات PNA). هذا الجزء هو أكثر ما أفخر به. يعيد الزاحف كتابة نطاقك المحلي ليصبح نطاقك الفعلي بثلاث ترميزات مختلفة: الروابط العادية، والشرطات المائلة المهرّبة داخل ملفات JSON (https:\/\/...)، وروابط المشاركة المرمّزة للشبكات الاجتماعية (https%3A%2F%2F...)، وذلك عبر ملفات HTML وCSS وJS وJSON وخرائط المواقع XML. لا تسريب لروابط localhost بعد اليوم، ولا تحذيرات PNA، ولا مفاجآت غير سارة في أدوات المطورين (DevTools).

5. تفاصيل جاهزة للاستخدام الفعلي، مهيّأة بالكامل لك. تُعاد كتابة روابط ترقيم الصفحات (?query-3-page=2) إلى مسارات ساكنة ونظيفة (/page/2/). وتُفكّ شفرة روابط اليونيكود والروابط العربية بشكل صحيح لتُخزَّن الملفات على القرص بأسمائها العربية الصحيحة. وتُعاد كتابة خرائط المواقع لتشير إلى نطاقك الفعلي ليظل تحسين محركات البحث (SEO) يعمل بكفاءة عالية. ويضيف ملف vercel.json المرفق ترويسات أمان (Security Headers) قوية ومجهزة مسبقاً، مثل X-Frame-Options وX-Content-Type-Options: nosniff وسياسة الإحالة الصارمة Referrer-Policy وسياسة الصلاحيات المحكمة Permissions-Policy، بالإضافة إلى روابط نظيفة وشرطات مائلة تلقائية في نهاية الروابط.

6. أمر واحد فقط للنشر. لن تضطر للتعامل مع Git مباشرة؛ فعندما تكون المقالة أو تغييرات التصميم جاهزة، كل ما عليك فعله هو تشغيل هذا الأمر:

npm run publish

يقوم هذا الأمر بالزحف إلى الموقع، وتطهيره من كل إشارة برابط محلي، وتجهيز الملفات، وإنشاء التزام (Commit) يحمل طابعاً زمنياً، ودفعه مباشرة إلى مستودع GitHub الخاص بك. ويشغّل GitHub منصة Vercel تلقائياً، لتصبح التحديثات متاحة للجمهور في أقل من دقيقة.

البدء في ثلاث خطوات بسيطة

يعمل هذا القالب على أنظمة تشغيل Windows وmacOS وLinux، والمتطلبات الوحيدة لتشغيله هي إصدار Node 18 فما فوق، ونظام Git، وبرنامج Local WP.

1. انسخ القالب (Clone)

انقر على «Use this template» في مستودع WP Local-to-Static، أو انسخه مباشرة عبر جهازك باستخدام الأمر التالي:

git clone https://github.com/rayan-azhari/WP-Local-to-Static.git
cd WP-Local-to-Static
npm install   # صفر اعتمادات خارجية، هذا الأمر يهيّئ بنية المشروع فقط

2. شغّل مساعد الإعداد التفاعلي

npm run setup

سيسألك المساعد التفاعلي عبر واجهة السطر البرمجي (CLI) أربعة أسئلة سريعة (رابط موقع ووردبريس المحلي الخاص بك، ونطاقك الفعلي الإنتاجي، ومجلد المخرجات الذي يكون افتراضياً public، وما إذا كنت ترغب في دمج أداة تحليل الزوار الخفيفة من Vercel) ثم ينشئ لك ملف الإعداد wp-static-config.json تلقائياً.

3. الاستيراد إلى منصة Vercel

أنشئ مشروعاً مجانياً على منصة Vercel، واستورد مستودع GitHub الذي أنشأته للتو، واجعل الخيار Framework Preset على Other، واترك حقل Build Command فارغاً، واجعل مجلد المخرجات Output Directory هو public. ثم انقر على Deploy.

هذا كل شيء. موقعك الآن مستضاف على واحدة من أسرع شبكات توصيل المحتوى (CDNs) العالمية بقيمة 0 دولار سنوياً، ويمكنك ربط نطاقك الخاص (Custom Domain) مجاناً وبمنتهى السهولة من إعدادات المشروع.

لماذا يجب عليك الانتقال؟

إذا كان موقعك تعريفياً في الغالب، مدونة أو معرض أعمال شخصي أو صفحة هبوط لمشروع، فإن تشغيل قاعدة بيانات نشطة ولغات برمجية ديناميكية على خادم الإنتاج هو عبء إضافي لا تحتاجه على الإطلاق. فصل الواجهة الخلفية للووردبريس وتوليدها كملفات ساكنة يجعل موقعك:

  • قابلاً للتوسع الفوري وبدون مجهود. تستوعب الملفات الساكنة على شبكات الـ CDN قفزات الزوار الكبيرة والهائلة دون أي بطء في الأداء ودون فواتير إضافية.
  • آمناً بطبيعته. لا وجود لقاعدة بيانات، ولا لـ PHP، ولا لصفحة تسجيل دخول نشطة على خادم الإنتاج؛ ببساطة لا يوجد أي مدخل يمكن للمخترقين استغلاله.
  • مجانياً بالكامل. الفئة المجانية من Vercel (Hobby tier) تغطي كافة هذه الاحتياجات وزيادة، مما يوفر عليك ما بين 150 إلى 300+ دولار سنوياً.

ستحتفظ بالمحرر وواجهة ووردبريس التي تحبها، وتتخلص نهائياً من الفواتير المرتفعة ومخاطر الاختراق المقلقة. هذه هي المعادلة الذكية التي أردتها، وهي الآن على بعد أمر git clone واحد منك.

إذا جرّبته، يسعدني حقاً أن أعرف كيف سار الأمر معك، بما في ذلك المواضع التي يتعثر فيها.

مستودع GitHub: github.com/rayan-azhari/WP-Local-to-Static

مقالات ذات صلة

سلّم المعرفة المتصاعد

كيف صار مراهق عادي يعرف أكثر من بطليموس، ولماذا يجعلنا التقدّم المعرفي نفسه أكثر جهلاً ممّن سبقونا؟ تأمل في تراكم المعرفة وتوزّعها.

· 14 min

النشرة البريدية

اشترك لتصلك المقالات الجديدة.

يمكنك إلغاء الاشتراك في أي وقت. يقرأها أكثر من ٤٢٠٠ متخصّص.