هاست و وردپرس | بلاگ وب‌داده

حالت تعمیر (Maintenance Mode) وردپرس و ساخت صفحه Coming Soon

وقتی می‌خواهید سایت را به‌روزرسانی یا بازطراحی کنید، بازدیدکننده نباید صفحه‌ی خراب و نیمه‌کاره ببیند. حالت تعمیر و صفحه Coming Soon دقیقاً برای همین است؛ در این راهنما هر دو روش افزونه و کد را گام‌به‌گام یاد می‌گیرید.
حالت تعمیر وردپرس حالتی است که در آن به‌جای صفحه‌ی اصلی، یک پیام موقت «سایت در حال تعمیر است» به بازدیدکننده نشان داده می‌شود تا در زمان به‌روزرسانی یا تغییر سایت، تجربه‌ی خرابی نبیند. صفحه‌ی Coming Soon هم نسخه‌ی «به‌زودی» همین ایده برای سایت‌های تازه‌ای است که هنوز رونمایی نشده‌اند. در ادامه فرق این دو، روش افزونه، روش دستی با کد و مهم‌ترین نکته‌ی سئویی یعنی کد وضعیت 503 را با هم می‌بینیم؛ همراه جدول مقایسه، معایب صادقانه و پرسش‌های پرتکرار.
  • موضوع چیست: نمایش پیام موقت به بازدیدکننده هنگام به‌روزرسانی یا بازطراحی سایت.
  • تفاوت با Coming Soon: حالت تعمیر برای سایت فعال، Coming Soon برای سایتِ هنوز منتشرنشده.
  • راه ساده و بدون کد: افزونه‌هایی مثل LightStart یا SeedProd با یک‌ صفحه‌ی آماده.
  • راه دستی: افزودن یک تابع به functions.php که کد وضعیت 503 برمی‌گرداند.
  • نکته‌ی سئو: کد 503 به گوگل می‌گوید توقف موقتی است تا رتبه‌ی سایت آسیب نبیند.

در یک نگاه

حالت تعمیر یعنی سایت را برای بازدیدکننده موقتاً «بسته» نشان دهید ولی خودتان پشت صحنه کار کنید. مهم‌ترین نکته این است که این توقف را با کد وضعیت 503 اعلام کنید تا گوگل بفهمد موقتی است. بستر میزبانی امن و پشتیبانی فنی این کار را می‌توانید از وب‌داده بگیرید.
حتماً این مقاله را باز کرده‌اید چون می‌خواهید سایتتان را برای مدتی به‌روزرسانی یا بازطراحی کنید و نمی‌خواهید کاربر در این فاصله صفحه‌ی به‌هم‌ریخته ببیند. خبر خوب این است که این کار اصلاً پیچیده نیست؛ هم راه بدون‌کدِ افزونه را نشان می‌دهیم و هم راه دستیِ حرفه‌ای‌ها را، طوری که حتی اگر تازه‌کارید خودتان از پسش بربیایید.

حالت تعمیر وردپرس چیست و چه تفاوتی با صفحه Coming Soon دارد؟

وقتی سایت را در حالت تعمیر می‌گذارید، وردپرس به‌جای محتوای اصلی، یک صفحه‌ی ساده با پیامی مثل «به‌زودی برمی‌گردیم» به بازدیدکننده نشان می‌دهد. در همین حال، شما و سایر مدیرها می‌توانید وارد پیشخوان شوید و کارهای به‌روزرسانی، نصب افزونه یا تغییر قالب را با خیال راحت انجام دهید. خودِ وردپرس هم یک حالت تعمیر داخلی دارد: هر بار که هسته، افزونه یا قالبی را به‌روزرسانی می‌کنید، برای چند لحظه فایلی به نام .maintenance در ریشه‌ی سایت می‌سازد و همان پیام معروف «برای مدت کوتاهی برای تعمیر و نگهداری در دسترس نیست» را نشان می‌دهد.

یک تشبیه ساده

حالت تعمیر مثل آویزان کردن تابلوی «به‌زودی بازمی‌گردیم» پشت شیشه‌ی مغازه است: مشتری بیرون می‌ماند، اما شما داخل مغازه در حال چیدمان و تغییر دکور هستید. صفحه‌ی Coming Soon هم مثل تابلوی «به‌زودی افتتاح می‌شود» برای مغازه‌ای است که هنوز اصلاً باز نشده. هر دو یک هدف دارند: کنترل آنچه بازدیدکننده در دوره‌ی گذار می‌بیند.
تفاوت اصلی در «هدف» و «سئو» است. حالت تعمیر برای سایتی است که قبلاً منتشر شده و در گوگل رتبه دارد؛ برای همین باید کد وضعیت 503 برگرداند تا گوگل بداند توقف موقتی است و رتبه را حفظ کند. اما صفحه Coming Soon معمولاً برای سایت تازه‌ای است که می‌خواهید همان صفحه در گوگل ایندکس شود و ایمیل بازدیدکننده‌ها را جمع کند؛ پس با کد 200 و قابل‌ایندکس بهتر است.

نکته‌ی کلیدی سئو

طبق مستندات رسمی وردپرس، تابع داخلی wp_maintenance() هنگام فعال بودن حالت تعمیر، هدر Retry-After و کد وضعیت 503 Service Unavailable را برمی‌گرداند. این دقیقاً همان چیزی است که برای یک توقف کوتاه به آن نیاز دارید؛ اگر به‌جای 503، صفحه‌ی معمولی یا خطای 404 نشان دهید، ممکن است گوگل آن را جدی بگیرد و به رتبه آسیب بزند.
صفحه پیام حالت تعمیر وردپرس که به بازدیدکننده نمایش داده می‌شود

افزونه بهتر است یا روش دستی با کد؟

برای فعال کردن حالت تعمیر دو مسیر کلی دارید و انتخاب بین آن‌ها به سطح فنی و نیاز شما بستگی دارد. مسیر اول، استفاده از یک افزونه است؛ ساده، بدون کد و با صفحه‌ای آماده و زیبا. مسیر دوم، روش دستی با کد است؛ سبک‌تر و بدون افزونه‌ی اضافه، اما نیازمند کمی دانش فنی. بیایید اول این دو را کنار هم بگذاریم تا تصمیم بگیرید کدام به شما نزدیک‌تر است:
  • روش افزونه: افزونه‌های رایگانی مثل LightStart (با بیش از ۹۰۰٬۰۰۰ نصب فعال، سازندهٔ همین‌ها) یا SeedProd (بیش از ۸۰۰٬۰۰۰ نصب فعال) صفحه‌ای آماده با طراحی، شمارش معکوس و فرم خبرنامه در اختیارتان می‌گذارند.
  • روش دستی: یک تابع کوتاه در functions.php یا یک فایل drop-in که پیام تعمیر را با کد 503 نمایش می‌دهد؛ بدون نصب هیچ افزونه‌ای.

جدول مقایسه: روش افزونه در برابر روش دستی

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

جمع‌بندی انتخاب

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

آموزش گام‌به‌گام فعال‌سازی حالت تعمیر و صفحه Coming Soon

قبل از شروع: یک بکاپ بگیرید

روش دستی شامل ویرایش فایل‌های حیاتی مثل functions.php است و یک اشتباه کوچک می‌تواند سایت را با «صفحه‌ی سفید مرگ» از کار بیندازد. پس قبل از هر تغییری از کل سایت و به‌ویژه فایل‌های قالب بکاپ کامل بگیرید تا اگر چیزی طبق انتظار پیش نرفت، سریع به عقب برگردید.

روش اول: استفاده از افزونه (بدون کد)

این ساده‌ترین راه است و برای اکثر کاربران توصیه می‌شود. مراحل با افزونه‌ی رایگان LightStart (نام قبلی: WP Maintenance Mode) این‌طور است:
  • از پیشخوان به مسیر افزونه‌ها ← افزودن افزونه بروید و عبارت «LightStart» یا «WP Maintenance Mode» را جستجو، نصب و فعال کنید.
  • به تنظیمات افزونه (معمولاً زیر منوی تنظیمات) بروید و در تب «General» گزینه‌ی وضعیت (Status) را روی Activated بگذارید.
  • در تب «Design» متن عنوان، توضیح و رنگ پس‌زمینه‌ی صفحه‌ی تعمیر را دلخواه تنظیم کنید؛ برای سایت جدید همین صفحه نقش Coming Soon را بازی می‌کند.
  • در صورت نیاز، ماژول‌های شمارش معکوس و فرم خبرنامه را فعال کنید تا در دوره‌ی Coming Soon ایمیل بازدیدکننده‌ها را جمع کنید.
  • تغییرات را ذخیره کنید. حالا کاربران خارج از حساب، صفحه‌ی تعمیر را می‌بینند و شما به‌عنوان مدیر همچنان سایت را عادی مشاهده می‌کنید.

چطور از فعال‌بودن مطمئن شوم؟

سایت را در یک مرورگر دیگر یا حالت ناشناس (Incognito) که وارد حساب مدیر نشده‌اید باز کنید؛ اگر صفحه‌ی تعمیر را دیدید یعنی درست فعال شده است. در حالت عادیِ ورود به پیشخوان، خودتان صفحه‌ی تعمیر را نمی‌بینید و این طبیعی است.

روش دوم: افزودن کد به functions.php (روش دستی)

اگر نمی‌خواهید افزونه نصب کنید، می‌توانید با یک تابع کوتاه در فایل functions.php قالب، حالت تعمیر را دستی فعال کنید. برای اینکه این کد با به‌روزرسانی قالب پاک نشود، حتماً از قالب فرزند (Child Theme) استفاده کنید. این کد را در انتهای فایل functions.php قالب فرزند قرار دهید:
<?php
// فعال‌سازی دستی حالت تعمیر وردپرس از طریق functions.php قالب فرزند
// این کد را در انتهای فایل functions.php قالب فرزند قرار دهید
function webdade_maintenance_mode() {
    // مدیرها و کاربران واردشده سایت را عادی می‌بینند؛ بقیه پیام تعمیر
    if ( ! current_user_can( 'edit_themes' ) || ! is_user_logged_in() ) {
        wp_die(
            '<h1>سایت در حال تعمیر و به‌روزرسانی است</h1>' .
            '<p>به‌زودی برمی‌گردیم؛ لطفاً چند دقیقه دیگر دوباره سر بزنید.</p>',
            'در حال تعمیر',
            array( 'response' => 503 ) // کد ۵۰۳ به گوگل می‌گوید توقف موقتی است
        );
    }
}
add_action( 'get_header', 'webdade_maintenance_mode' );
این تابع به رویداد get_header وصل می‌شود و برای هر بازدیدکننده‌ای که وارد حساب سایت نشده یا دسترسی ویرایش قالب ندارد، پیام تعمیر را با کد وضعیت 503 نمایش می‌دهد. مدیرها و کاربران واردشده سایت را عادی می‌بینند و می‌توانند به کارشان ادامه دهند. برای خاموش کردن حالت تعمیر کافی است همین چند خط را از فایل حذف کنید و ذخیره نمایید.

چرا قالب فرزند مهم است؟

اگر این کد را مستقیم در فایل functions.php قالب اصلی بگذارید، با اولین به‌روزرسانی قالب پاک می‌شود. قالب فرزند این تغییرات را جدا و پایدار نگه می‌دارد. اگر با قالب فرزند آشنا نیستید، روش افزونه برای شما امن‌تر است.

روش سوم: سفارشی‌سازی پیام آپدیت با فایل maintenance.php

همان‌طور که گفتیم، وردپرس هنگام به‌روزرسانی خودکار یک پیام پیش‌فرض و ساده نشان می‌دهد. طبق مستندات رسمی، شما می‌توانید این پیام را با ساختن یک فایل drop-in به نام maintenance.php در پوشه‌ی wp-content زیباتر و فارسی کنید. این فایل هم کد 503 و هم هدر Retry-After را به‌درستی می‌فرستد:
<?php
// فایل سفارشی wp-content/maintenance.php برای زیباتر کردن پیامِ زمانِ به‌روزرسانی
// وردپرس در حین آپدیت هسته/افزونه/قالب اگر این فایل باشد، آن را نمایش می‌دهد
$protocol = isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
if ( 'HTTP/1.1' !== $protocol && 'HTTP/1.0' !== $protocol ) {
    $protocol = 'HTTP/1.0';
}
header( "$protocol 503 Service Unavailable", true, 503 );
header( 'Content-Type: text/html; charset=utf-8' );
header( 'Retry-After: 3600' ); // بعد از یک ساعت دوباره تلاش کن
?>
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head><meta charset="utf-8"><title>در حال به‌روزرسانی</title></head>
<body style="font-family:Tahoma,sans-serif;text-align:center;padding-top:12%">
    <h1>سایت برای مدت کوتاهی در حال به‌روزرسانی است</h1>
    <p>ممنون از صبر شما؛ چند دقیقه دیگر دوباره سر بزنید.</p>
</body>
</html>
این فایل را با مدیر فایل هاست یا یک برنامه‌ی SFTP در مسیر wp-content/maintenance.php بسازید. از این پس هر وقت وردپرس در حال به‌روزرسانی باشد، به‌جای پیام انگلیسی پیش‌فرض، همین صفحه‌ی سفارشی نمایش داده می‌شود.

عیب‌یابی: سایت در حالت تعمیر گیر کرده است

گاهی پیش می‌آید که یک به‌روزرسانی نیمه‌کاره می‌ماند و سایت روی پیام «برای مدت کوتاهی در دسترس نیست» قفل می‌شود. علت، باقی‌ماندن فایل .maintenance در ریشه‌ی سایت است. راه‌حل ساده است: با مدیر فایل هاست یا SFTP وارد پوشه‌ی ریشه (همان‌جا که wp-admin و wp-content هستند) شوید و فایل .maintenance را حذف کنید. بلافاصله سایت به حالت عادی برمی‌گردد. اگر روش دستیِ functions.php را استفاده کرده‌اید و به پیشخوان دسترسی ندارید، همان چند خط کد را از فایل حذف کنید.
مسیر حذف فایل نقطه maintenance در مدیر فایل هاست برای خروج از حالت تعمیر

میزبانی وردپرس در وب‌داده

چه از افزونه استفاده کنید و چه از کد، بستر میزبانی سایت نقش مهمی در راحتی و امنیت این کار دارد: دسترسی ساده به فایل‌هایی مثل functions.php و .maintenance، امکان بکاپ و بازگردانی سریع، و پشتیبانی که در لحظه‌ی گیرکردن سایت کنارتان باشد. ما در وب‌داده تلاش کرده‌ایم این کارها را ساده‌تر کنیم:
✅ زیرساخت سرورهای نسل جدید HPE (Gen11 و Gen10) برای پایداری و سرعت بالا.
✅ دیتاسنترهای متنوع در ایران، هلند و آلمان برای انتخاب نزدیک‌ترین لوکیشن.
✅ کنترل‌پنل سی‌پنل با مدیر فایل برای ساخت و حذف امنِ فایل‌های .maintenance و maintenance.php.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک هنگام گیرکردن سایت در حالت تعمیر.

تجربه‌ی پشتیبانی وب‌داده

در تیم پشتیبانی وب‌داده بارها پیش آمده که کاربری وسط یک به‌روزرسانی، اتصالش قطع شده و سایت روی پیام تعمیر قفل مانده است. راه‌حل ما همیشه ساده بوده: از طریق مدیر فایل هاست، فایل .maintenance را حذف می‌کنیم و در کمتر از چند دقیقه سایت باز می‌شود. همین دسترسی سریع به فایل‌ها، تفاوت یک میزبانی خوب را در لحظه‌ی بحران نشان می‌دهد.
اگر به‌دنبال بستری مطمئن برای وردپرس هستید، می‌توانید سرور مجازی ایران وب‌داده را ببینید که برای نصب و مدیریت راحت وردپرس بهینه شده است. اگر هم تازه می‌خواهید وردپرس را راه بیندازید، آموزش نصب وردپرس روی هاست سی‌پنل و راهنمای بکاپ رایگان و اسنپ‌شات در هاست سی‌پنل کمکتان می‌کنند.

معایب و محدودیت‌هایی که باید بدانید

صادقانه بگوییم، هیچ‌کدام از این روش‌ها بی‌عیب نیستند. روش افزونه یک افزونه‌ی اضافه به سایت اضافه می‌کند که کمی بار می‌آورد و برخی امکانات حرفه‌ای‌اش (مثل قالب‌های آماده‌ی بیشتر) در نسخه‌ی پولی است؛ برای مثال افزونه‌ی LightStart برای بخش بلوکی‌اش به افزونه‌ی Otter Blocks وابسته است که خودکار نصب می‌شود. روش دستی هم ریسک خطای PHP و سفیدشدن سایت را دارد و اگر از قالب فرزند استفاده نکنید، با به‌روزرسانی قالب پاک می‌شود. نکته‌ی مشترک و مهم هر دو روش این است: فراموش نکنید که حالت تعمیر را خاموش کنید. باقی ماندن طولانی‌مدت سایت در حالت تعمیر (یا فراموش‌کردن گزینه‌ی noindex در صفحه‌ی Coming Soon) می‌تواند به‌مرور به سئو آسیب بزند. پس این ابزار را فقط برای همان دوره‌ی کوتاه به‌روزرسانی به کار ببرید.

پرسش‌های پرتکرار

جمع‌بندی

دیدیم که حالت تعمیر ابزاری ساده اما مهم برای دوره‌ی به‌روزرسانی و بازطراحی سایت است و صفحه Coming Soon نسخه‌ی «به‌زودی» همین ایده برای سایت‌های تازه است. برای فعال‌سازی دو مسیر دارید: روش افزونه که ساده، بدون کد و همراه با طراحی و امکانات اضافه است، و روش دستی با کد که سبک‌تر است و برای کاربران فنی مناسب. مهم‌ترین نکته را فراموش نکنید: توقف را با کد وضعیت 503 اعلام کنید تا سئو حفظ شود، و پس از پایان کار حتماً حالت تعمیر را خاموش کنید. با یک بستر میزبانی خوب، هم فعال‌کردن و هم خارج‌شدن از این حالت فقط چند دقیقه طول می‌کشد.
در صورتی که سوالی داشتید می‌توانید در بخش نظرات با ما در ارتباط باشید.
منابع: مستندات رسمی wp_maintenance() — WordPress.org Developer Resources و صفحه‌ی رسمی افزونه‌ی LightStart (WP Maintenance Mode) در WordPress.org.
وب داده
وب داده

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

مقاله‌ها: 50
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *