# ركّبت SSL والموقع لسه بيقول «غير آمن» أو القفل مش ظاهر، ليه؟

> غالبًا ده «محتوى مختلط» (Mixed content): الصفحة نفسها https، بس فيها صور أو ملفات CSS أو سكريبت لسه بتتحمّل من http. المتصفح بيشيل القفل أو يمنع الملفات دي. الحل إنك تغيّر كل الروابط القديمة لـ https في قاعدة البيانات والقالب، وتخلّي الموقع يحوّل http لـ https بـ 301.

- المصدر: https://seoquestionsbank.com/technical/mixed-content/
- القسم: السيو التقني · المستوى: مبتدئ
- الكاتب: مهندس محمد عيد · آخر تحديث: 2026-11-03

## الأعراض

- جنب الرابط مكتوب «غير آمن» أو مفيش قفل مع إن الشهادة متركبة
- Console في المتصفح فيه تحذير Mixed Content
- بعض الصور أو الخطوط اختفت بعد التحويل لـ https
- الموقع بيفتح بـ http و https الاتنين

## السبب

روابط مكتوبة بـ http:// جوه المقالات أو إعدادات القالب أو الإضافات، فضلت زي ما هي بعد تركيب الشهادة. أو عنوان الموقع في إعدادات ووردبريس لسه http، أو مفيش تحويل 301 من http لـ https.

## الأدوات

- [Why No Padlock](https://www.whynopadlock.com/) (مجانية): بيطلّعلك كل ملف بيتحمّل بـ http في الصفحة
- [Chrome DevTools](https://developer.chrome.com/docs/devtools) (مجانية): تبويب Console بيكتب Mixed Content ورابط الملف
- [أداة فحص التحويلات](https://seoquestionsbank.com/free-tools/redirect-checker/) (مجانية): تتأكد إن http بيحوّل لـ https بـ 301 في خطوة واحدة

## خطوات الحل

1. **اعرف الملفات اللي عاملة المشكلة**: افتح الصفحة في Chrome واضغط F12 وادخل Console. هتلاقي سطور Mixed Content وفيها رابط كل ملف بيتحمّل بـ http. أو حط رابط الصفحة في Why No Padlock.
   - Chrome DevTools: Console
   - Mixed Content: http://example.com/wp-content/uploads/logo.png: صورة بـ http
   - https://example.com/wp-content/uploads/logo.png: نفس الصورة بعد التصليح
2. **صلّح عنوان الموقع نفسه**: في ووردبريس خلّي «عنوان ووردبريس» و«عنوان الموقع» الاتنين يبدأوا بـ https://. لو عدّلتهم والموقع وقع، رجّعهم من ملف wp-config.php.

```php
// في wp-config.php فوق سطر: That's all, stop editing
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
```
3. **غيّر الروابط القديمة في قاعدة البيانات**: الصور اللي في المقالات القديمة مكتوبة بـ http جوه قاعدة البيانات. استبدل http://example.com بـ https://example.com في كل الجداول مرة واحدة. خد نسخة احتياطية الأول.
   - Better Search Replace: الأدوات ← Better Search Replace
   - Search for: http://example.com
   - Replace with: https://example.com
   - Run as dry run: جرّب الأول وشوف عدد التغييرات
4. **حوّل http لـ https بـ 301**: لازم أي حد يفتح http يتحوّل تلقائي لـ https في خطوة واحدة. لو الاستضافة فيها خيار Force HTTPS فعّله، أو حط القاعدة دي.

```apache
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]
```
5. **حل مؤقت للملفات اللي مش لاقيها**: لو فاضل ملفات من إضافة أو قالب ومش عارف مكانها، الهيدر ده بيخلي المتصفح يطلب أي http على إنه https. ده حل مساعد مش بديل عن تصليح الروابط.

```http
Content-Security-Policy: upgrade-insecure-requests
```
6. **اتأكد إن كله اتصلح**: افتح الصفحات المهمة تاني وشوف القفل ظاهر والـ Console نضيف. وفي Search Console اتأكد إن الموقع مسجّل بـ https أو كـ Domain property، والـ Sitemap روابطه كلها https.

## لو موقعك WordPress

- [Really Simple SSL](https://wordpress.org/plugins/really-simple-ssl/) (مجانية): يحوّل لـ https ويصلّح المحتوى المختلط تلقائيًا
- [Better Search Replace](https://wordpress.org/plugins/better-search-replace/) (مجانية): يستبدل http بـ https في قاعدة البيانات كلها

1. **فعّل SSL بضغطة** (الإعدادات ← SSL): بعد تفعيل الإضافة اضغط «Activate SSL». هي بتغيّر عنوان الموقع وتعمل تحويل 301 وتصلّح الروابط وهي بتتحمّل.
2. **استبدل الروابط القديمة** (الأدوات ← Better Search Replace): Search for: http://دومينك، Replace with: https://دومينك، اختار كل الجداول، وشغّل Dry run الأول.
3. **امسح الكاش** (إضافة الكاش ← Purge All): بعد أي تغيير امسح كاش إضافة السرعة وكاش Cloudflare، عشان الصفحات القديمة متفضلش تتعرض بـ http.

متشغّلش الاستبدال على http:// لوحده من غير الدومين، عشان متبوظش روابط مواقع تانية مش بتدعم https.

## المصادر

- [web.dev: إزاي تصلّح المحتوى المختلط](https://web.dev/articles/fixing-mixed-content)
- [MDN: Mixed content](https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content)
- [WordPress: شاشة الإعدادات العامة](https://wordpress.org/documentation/article/settings-general-screen/)
