Systems, Automation & Search Engine Engineering Experiments

Naser Shahsavar

دسته: دسته‌بندی نشده

  • رفع مشکل ریدایرکت www و انتقال HTTP به HTTPS در وردپرس

    اگر سایتی دارید که روی وردپرس بالاست و SSL هم فعال شده، ولی هنوز نسخه‌های مختلفی از سایتت در دسترسه (مثل http، https، www و بدون www)، یعنی یک مشکل جدی در ساختار ریدایرکت دارید.

    برای چک کردن از سایت زیر استفاده کنید

    این موضوع فقط یک خطای فنی ساده نیست؛ مستقیم روی سئو، ایندکس شدن و اعتبار دامنه تاثیر می‌ذاره. وقتی گوگل چند نسخه از یک سایت ببینه، اعتبار صفحه‌ها تقسیم میشه و در نهایت رتبه‌ات افت می‌کنه.

    در این مقاله دقیق و عملی یاد می‌گیری چطور همه نسخه‌ها رو به یک آدرس استاندارد و واحد منتقل کنی.

    مشکل دقیقاً از کجاست؟

    سایت شما معمولاً از 4 حالت قابل دسترسیه:

    http://domain.com
    https://domain.com
    http://www.domain.com
    https://www.domain.com

    355 واژه

    اگر این‌ها به یک نسخه واحد هدایت نشن، گوگل هرکدوم رو یک سایت جدا در نظر می‌گیره.

    بهترین ساختار استاندارد چیست؟

    ساختار پیشنهادی برای سئو:

    👉 فقط یک نسخه اصلی داشته باش:


    https://domain.com (بدون www)

    این انتخاب هم ساده‌تره، هم از نظر سئو تمیزتر مدیریت میشه.

    روش اصولی رفع مشکل با htaccess (پیشنهادی)

    اگر سایت روی Apache هست، فایل .htaccess بهترین نقطه برای کنترل ریدایرکت‌هاست.

    کد زیر رو دقیق در ابتدای فایل قرار بده:

    RewriteEngine On
    
    # Force HTTPS + Remove WWW
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^ https://domain.com%{REQUEST_URI} [L,R=301]
    RewriteEngine On # Force HTTPS + Remove WWW RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^ https://domain.com%{REQUEST_URI} [L,R=301]

    🔴 فقط دقت کنید domain.com رو با دامنه واقعی سایت جایگزین کنید.

    روش PHP (در صورتی که htaccess در دسترس نیست)

    اگر به هر دلیل به htaccess دسترسی نداری، می‌تونی از PHP استفاده کنی:

    if ((!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') || strpos($_SERVER['HTTP_HOST'], 'www.') === 0) {
    
        $url = "https://domain.com" . $_SERVER['REQUEST_URI'];
        header("Location: $url", true, 301);
        exit();
    }
    

    اشتباهات رایج که سایت‌ها رو نابود می‌کنه

    این‌ها چیزهایی هست که خیلی‌ها انجام میدن و باعث افت سئو میشه:

    • فعال بودن همزمان چند افزونه ریدایرکت
    • تنظیم نکردن نسخه اصلی در وردپرس
    • ناهماهنگی بین SSL و URL سایت
    • ثبت جداگانه www و non-www در سرچ کنسول

    اگر بخوای سایتت در گوگل جدی گرفته بشه، باید فقط یک نسخه واحد، امن و استاندارد داشته باشی.

    بهترین ترکیب:

    • HTTPS فعال
    • بدون www
    • ریدایرکت 301 دائمی

    این تغییر ساده، یکی از مهم‌ترین قدم‌ها برای تمیز کردن ساختار سئو سایتته.

  • حل مشکل عدم ایندکس صفحات در وردپرس

    یکی از رایج‌ترین مشکلاتی که توی سایت‌های وردپرسی دیده میشه اینه که بعضی صفحات اصلاً وارد گوگل نمی‌شن، حتی با اینکه منتشر شدن.

    این مشکل معمولاً ربطی به “قدرت سایت” نداره؛ بیشتر وقت‌ها یک ایراد فنی توی ساختار ایندکس رخ داده.

    مشکل عدم ایندکس از کجاست؟

    در اکثر سایت‌های وردپرسی، عدم ایندکس شدن صفحه‌ها معمولاً به یکی از این موارد برمی‌گرده:

    • تنظیم اشتباه noindex در صفحات یا قالب
    • بلاک شدن صفحات در robots.txt
    • نبودن در sitemap یا ساختار اشتباه sitemap
    • ضعف در internal linking (صفحه orphan شده)
    • کندی یا مشکل در crawl کردن سایت
    • duplicate بودن یا canonical اشتباه

    چطور بررسی کنیم؟

    برای پیدا کردن دلیل دقیق، این مسیرها رو بررسی کن:

    • بررسی meta robots در سورس صفحه
    • تست URL در Google Search Console
    • بررسی sitemap و وجود URL داخل آن
    • بررسی robots.txt برای بلاک نبودن مسیر
    • بررسی اینکه صفحه از داخل سایت لینک گرفته یا نه

    راه‌حل‌های اصلی

    1. بررسی noindex

    اول مطمئن شو صفحه یا قالب به صورت اشتباهی noindex نداده باشه.

    2.اصلاح sitemap

    صفحه باید داخل sitemap باشه و sitemap هم بدون خطا در Search Console ثبت شده باشه.

    3.تقویت internal linking

    اگر صفحه لینک داخلی نداشته باشه، عملاً برای گوگل “بی‌ارزش” محسوب میشه.

    4. بررسی robots.txt

    بعضی وقت‌ها مسیرهای مهم به اشتباه بلاک میشن.

    درخواست ایندکس دستی

    بعد از اصلاح موارد بالا، URL رو در Search Console inspect کن و request indexing بزن.

    نکته مهم

    ایندکس نشدن معمولاً یک مشکل واحد نیست؛ ترکیبی از چند ضعف ساختاریه.

    پس در نتیجه

    اگر صفحه‌ای ایندکس نمی‌شه، مشکل معمولاً یکی از این سه لایه است:

    • دسترسی (crawl)
    • فهم (indexing signals)
    • ارزش (internal linking / content strength)

    تا وقتی این سه تا درست نشه، ایندکس اتفاق نمی‌افته.

  • رفع مشکل ارتباط HTTP در وردپرس

    ارور
    یک خطای غیرمنتظره رخ داد. ممکن است مشکل از WordPress.org یا تنظیمات سرویس‌دهنده شما باشد. اگر کماکان این مشکلات ادامه داشت، لطفا سری به انجمن‌های پشتیبانی بزنید.

    در بعضی شرایط (مثل اختلال شبکه، محدودیت دسترسی سرور به بیرون یا بلاک شدن درخواست‌های خارجی)، وردپرس موقع نصب یا آپدیت افزونه‌ها با خطای ارتباط HTTP مواجه می‌شود.

    در این حالت، یکی از راه‌حل‌های موقت این است که درخواست‌های HTTP خروجی وردپرس را غیرفعال کنید تا فرآیند نصب و آپدیت بدون خطا انجام شود.


    .

    <?php
    add_filter('pre_http_request', function($pre, $args, $url) {
        return false;
    }, 9999, 3);

    روش اجرا:

    برای اعمال این تغییر:

    • یک فایل PHP داخل مسیر قالب یا یک افزونه اختصاصی بسازید
    • کد بالا را داخل فایل قرار دهید
    • فایل را ذخیره کنید
    • وارد پیشخوان وردپرس شوید
    • عملیات نصب یا آپدیت افزونه‌ها را انجام دهید

    نکته مهم:

    این روش فقط باید به‌صورت موقت استفاده شود.
    چون تمام درخواست‌های HTTP خروجی وردپرس را غیرفعال می‌کند و ممکن است روی عملکرد بعضی افزونه‌ها اثر بگذارد.

    بعد از اتمام کار، حتماً کد را حذف یا غیرفعال کنید.

  • سلام دنیا!

    به وردپرس خوش آمدید. این اولین نوشتهٔ شماست. این را ویرایش یا حذف کنید، سپس نوشتن را شروع نمایید!