خطای 404 در وردپرس زمانی نمایش داده میشود که مرورگر یا موتور جستجو یک آدرس را درخواست میکند، اما وردپرس یا سرور نمیتواند محتوای مربوط به آن آدرس را پیدا کند. این خطا ممکن است فقط برای یک نوشته، برای همه نوشتهها، برای برگهها، محصولات، دستهها یا حتی پس از انتقال سایت رخ دهد.
در این راهنما، مراحل اصلی رفع خطای 404 در وردپرس را بهصورت کاربردی بررسی میکنیم تا بتوانید بدون حدسزدن، علت مشکل را پیدا و برطرف کنید.
قبل از تغییر فایلها، تنظیمات پیوند یکتا، افزونهها یا قالب، بهتر است از سایت و دیتابیس نسخه پشتیبان تهیه کنید؛ بهخصوص اگر سایت فروشگاهی یا پرترافیک دارید.
خطای 404 در وردپرس چیست؟
خطای 404 به این معنی است که آدرس درخواستشده در سایت پیدا نشده است. در وردپرس این خطا همیشه به معنی حذف شدن محتوا نیست؛ گاهی نوشته یا برگه وجود دارد، اما ساختار لینکها، فایلهای بازنویسی آدرس، کش، افزونهها یا تنظیمات سرور باعث میشوند مسیر درست تشخیص داده نشود.
دلایل رایج خطای 404 در وردپرس
- بههمخوردن تنظیمات پیوندهای یکتا
- خرابی یا بازنویسی نادرست فایل .htaccess در سرور Apache
- تنظیم نبودن rewrite rules در Nginx
- تغییر نامک نوشته، برگه، محصول یا دستهبندی
- حذف شدن محتوا یا انتقال آن بدون ریدایرکت
- تداخل افزونهها، مخصوصا افزونههای سئو، کش، امنیت یا ریدایرکت
- مشکل قالب یا کدهای مربوط به Custom Post Type و Taxonomy
- انتقال سایت، تغییر دامنه یا تغییر ساختار URL
- کش مرورگر، افزونه کش، CDN یا کش سرور
چکلیست سریع رفع خطای 404 در وردپرس
| وضعیت خطا | اقدام پیشنهادی |
|---|---|
| فقط نوشتهها 404 میشوند | ذخیره دوباره پیوندهای یکتا و بررسی .htaccess |
| فقط یک URL خطا میدهد | بررسی وجود محتوا، نامک و ریدایرکت |
| بعد از نصب افزونه رخ داده | غیرفعالسازی افزونههای مشکوک و تست مجدد |
| بعد از انتقال سایت رخ داده | بررسی دامنه، مسیر نصب، دیتابیس و تنظیمات سرور |
| در محصولات یا نوع نوشته خاص دیده میشود | بررسی بازنویسی آدرس Custom Post Type و ذخیره مجدد پیوند یکتا |
1. تنظیمات پیوندهای یکتا را دوباره ذخیره کنید
اولین و سادهترین راه برای رفع بسیاری از خطاهای 404 در وردپرس، بازسازی تنظیمات پیوند یکتا است. برای این کار وارد پیشخوان وردپرس شوید و مسیر زیر را دنبال کنید:
تنظیمات > پیوندهای یکتا
بدون اینکه الزاما تغییری ایجاد کنید، روی دکمه ذخیره تغییرات کلیک کنید. این کار باعث میشود وردپرس قوانین بازنویسی آدرسها را دوباره تولید کند. سپس یک نوشته، برگه یا محصولی را که خطای 404 میداد، در پنجره ناشناس مرورگر تست کنید.
2. فایل .htaccess را در هاست بررسی کنید
اگر سایت شما روی سرور Apache یا LiteSpeed اجرا میشود، فایل .htaccess نقش مهمی در مدیریت URLهای وردپرس دارد. خرابی، حذف شدن یا تغییر اشتباه این فایل میتواند باعث شود نوشتهها و برگهها با خطای 404 باز شوند.
برای بررسی، از File Manager هاست یا FTP وارد پوشه اصلی نصب وردپرس شوید. معمولا این پوشه public_html یا مسیر مشابهی است. سپس فایل .htaccess را پیدا کنید. اگر فایل را نمیبینید، نمایش فایلهای مخفی را فعال کنید.
ساختار رایج قوانین وردپرس در .htaccess معمولا به این شکل است:
# BEGIN WordPress
RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
اگر مطمئن نیستید محتوای فایل درست است، ابتدا یک کپی از آن بگیرید، سپس از بخش پیوندهای یکتا در وردپرس، تنظیمات را دوباره ذخیره کنید تا وردپرس فایل را بازسازی کند. در بعضی هاستها ممکن است به دلیل سطح دسترسی، وردپرس نتواند فایل را ویرایش کند و لازم باشد قوانین را دستی وارد کنید.
3. اگر از Nginx استفاده میکنید، تنظیمات rewrite را بررسی کنید
در سرورهای Nginx فایل .htaccess استفاده نمیشود. بنابراین اگر سایت شما روی Nginx قرار دارد، مشکل 404 ممکن است به قوانین rewrite در کانفیگ سرور مربوط باشد. در این حالت باید از مدیر سرور یا پشتیبانی هاست بخواهید تنظیمات مربوط به وردپرس را بررسی کند.
یک نمونه رایج از منطق موردنیاز این است که درخواستها اگر فایل یا پوشه واقعی نبودند، به index.php وردپرس هدایت شوند. تغییر این بخش بدون آشنایی با تنظیمات سرور توصیه نمیشود.
4. وجود نوشته، برگه یا محصول را بررسی کنید
اگر خطای 404 فقط برای یک آدرس خاص نمایش داده میشود، ابتدا مطمئن شوید آن محتوا هنوز در سایت وجود دارد. وارد بخش نوشتهها، برگهها یا محصولات شوید و موارد زیر را بررسی کنید:
- آیا محتوا حذف شده یا در زبالهدان قرار دارد؟
- آیا وضعیت آن منتشر شده است یا پیشنویس و خصوصی است؟
- آیا نامک یا URL آن تغییر کرده است؟
- آیا دستهبندی یا ساختار آدرس آن تغییر کرده است؟
- آیا افزونه چندزبانه یا فروشگاهی مسیر URL را تغییر داده است؟
اگر URL قدیمی در گوگل، شبکههای اجتماعی یا سایتهای دیگر ثبت شده، بهتر است آدرس قدیمی را به آدرس جدید ریدایرکت 301 کنید.
5. ریدایرکتهای اشتباه را اصلاح کنید
گاهی مشکل 404 به دلیل نبود محتوا نیست، بلکه یک ریدایرکت اشتباه کاربر را به آدرسی هدایت میکند که وجود ندارد. افزونههای ریدایرکت، تنظیمات سئو، کدهای .htaccess، تنظیمات CDN و حتی قوانین سرور میتوانند چنین مشکلی ایجاد کنند.
برای عیبیابی، آدرس مشکلدار را با ابزارهای بررسی ریدایرکت یا مرورگر تست کنید و ببینید قبل از رسیدن به 404، چند بار تغییر مسیر انجام میشود. اگر اخیرا ساختار URL را تغییر دادهاید، لازم است ریدایرکتهای قدیمی را دقیقتر بازبینی کنید.
6. افزونههای مشکوک را موقتاً غیرفعال کنید
افزونهها میتوانند روی مسیرهای وردپرس، نوع نوشتهها، امنیت، کش، ریدایرکت و حتی دسترسی کاربران اثر بگذارند. اگر خطای 404 بعد از نصب یا بهروزرسانی یک افزونه ایجاد شده، آن افزونه را موقتاً غیرفعال و سایت را تست کنید.
اگر به پیشخوان دسترسی ندارید، میتوانید از طریق File Manager یا FTP نام پوشه افزونهها را در مسیر wp-content/plugins تغییر دهید. سپس سایت را بررسی کنید. بعد از پیدا شدن افزونه مشکلساز، افزونهها را یکییکی فعال کنید تا علت دقیق مشخص شود.
7. قالب سایت را بررسی کنید
در برخی سایتها، مخصوصا سایتهایی که قالب اختصاصی دارند یا از Custom Post Type استفاده میکنند، خطای 404 ممکن است به کدنویسی قالب مربوط باشد. برای تست، قالب را موقتاً به یکی از قالبهای پیشفرض وردپرس تغییر دهید و دوباره URLهای مشکلدار را بررسی کنید.
اگر با تغییر قالب مشکل رفع شد، باید فایلهای قالب، تعریف نوع نوشتهها، taxonomyها و قوانین rewrite بررسی شوند. این موضوع در سایتهای شرکتی، آموزشی، آگهی، املاک و فروشگاهی بیشتر دیده میشود.
8. کش سایت، مرورگر و CDN را پاک کنید
گاهی شما مشکل را برطرف کردهاید، اما نسخه کششده همچنان خطای 404 را نمایش میدهد. بعد از تغییر تنظیمات پیوند یکتا، .htaccess، افزونهها یا ریدایرکتها، این موارد را پاک کنید:
- کش افزونههای کش وردپرس
- کش سرور یا هاست، در صورت وجود
- کش CDN مانند سرویسهای توزیع محتوا
- کش مرورگر یا تست در حالت ناشناس
برای اطمینان، URL را با اینترنت دیگر یا ابزارهای آنلاین هم بررسی کنید تا مشخص شود مشکل فقط برای شماست یا برای همه کاربران رخ میدهد.
9. خطای 404 بعد از انتقال سایت یا تغییر دامنه
اگر پس از انتقال سایت به هاست جدید، تغییر دامنه، فعالسازی SSL یا تغییر مسیر نصب وردپرس با 404 مواجه شدهاید، فقط پیوندهای یکتا را بررسی نکنید. در این حالت موارد زیر هم مهم هستند:
- درست بودن آدرس سایت در تنظیمات وردپرس
- درست بودن آدرسهای ذخیرهشده در دیتابیس
- قرار داشتن فایلهای وردپرس در مسیر صحیح هاست
- تنظیم بودن DNS و اتصال دامنه به هاست جدید
- عدم تداخل ریدایرکت HTTP و HTTPS
- درست بودن قوانین سرور در Apache، LiteSpeed یا Nginx
اگر همزمان با خطای 404، سایت با HTTPS هم درست باز نمیشود، باید تنظیمات SSL، ریدایرکتها و آدرسهای داخلی سایت را نیز بررسی کنید.
10. خطای 404 در نوشتههای سفارشی و محصولات ووکامرس
اگر فقط محصولات، نمونهکارها، دورهها یا نوع نوشتههای سفارشی خطای 404 میدهند، احتمالاً مشکل به قوانین rewrite مربوط است. در این حالت ابتدا پیوندهای یکتا را ذخیره کنید. سپس اگر افزونه یا کدی برای تعریف Custom Post Type دارید، موارد زیر را بررسی کنید:
- نامک نوع نوشته با برگه یا دستهبندی دیگری تداخل نداشته باشد.
- بعد از تغییر نامک، قوانین بازنویسی دوباره ساخته شده باشد.
- افزونه مربوطه فعال باشد و خطای PHP نداشته باشد.
- در ووکامرس، تنظیمات پیوند یکتای محصولات درست ذخیره شده باشد.
11. صفحات 404 را در سرچ کنسول بررسی کنید
اگر سایت شما در Google Search Console ثبت شده است، بخش Pages یا گزارشهای مربوط به ایندکس میتواند URLهایی را نشان دهد که گوگل هنگام بررسی آنها به 404 رسیده است. همه 404ها لزوماً مشکل جدی نیستند؛ مثلا اگر صفحهای عمداً حذف شده و جایگزین ندارد، نمایش 404 طبیعی است.
اما اگر صفحه ارزشمند حذف شده، لینک خارجی دارد، در نتایج جستجو ورودی میگیرد یا نسخه جدیدی از همان محتوا در سایت موجود است، بهتر است با ریدایرکت 301 به مقصد مناسب هدایت شود.
چه زمانی باید خطای 404 را ریدایرکت کنیم؟
ریدایرکت کردن همه خطاهای 404 به صفحه اصلی راهکار مناسبی نیست، چون هم تجربه کاربری را ضعیف میکند و هم ممکن است برای موتورهای جستجو سیگنال مبهم ایجاد کند. بهتر است فقط زمانی ریدایرکت انجام دهید که مقصد مرتبط و منطقی وجود دارد.
- اگر نوشته قدیمی نسخه جدید دارد، به نسخه جدید ریدایرکت کنید.
- اگر محصول حذف شده اما محصول مشابه دارد، به نزدیکترین محصول یا دسته مرتبط ریدایرکت کنید.
- اگر یک دستهبندی حذف شده اما دسته جایگزین دارد، به همان دسته مرتبط ریدایرکت کنید.
- اگر صفحه هیچ جایگزین مرتبطی ندارد، نمایش 404 یا 410 میتواند طبیعی باشد.
اشتباهات رایج هنگام رفع خطای 404 وردپرس
- تغییر مداوم ساختار پیوند یکتا بدون برنامهریزی
- ریدایرکت همه خطاها به صفحه اصلی
- ویرایش .htaccess بدون تهیه نسخه پشتیبان
- نادیده گرفتن کش و CDN بعد از اعمال تغییرات
- حذف افزونههای مهم بدون بررسی وابستگی سایت
- بیتوجهی به خطاهای سرور و لاگها
اگر هنوز خطای 404 رفع نشد چه کنیم؟
اگر با مراحل بالا مشکل حل نشد، بهتر است لاگ خطاهای هاست، تنظیمات سرور، افزونههای امنیتی و قوانین دسترسی بررسی شوند. در برخی موارد، مشکل از محدودیتهای هاست، کانفیگ اشتباه وبسرور، فایلهای ناقص وردپرس یا تداخل چند افزونه همزمان است.
برای عیبیابی دقیقتر، بهتر است مشخص کنید خطا در چه بخشی رخ میدهد: همه صفحات، فقط نوشتهها، فقط محصولات، فقط یک URL، بعد از ورود کاربر، بعد از فعالسازی HTTPS یا بعد از انتقال سایت. این اطلاعات مسیر رفع مشکل را بسیار کوتاهتر میکند.
جمعبندی
برای رفع خطای 404 در وردپرس ابتدا از سادهترین راه یعنی ذخیره دوباره پیوندهای یکتا شروع کنید. سپس فایل .htaccess یا تنظیمات Nginx، وجود محتوا، ریدایرکتها، افزونهها، قالب، کش و وضعیت انتقال سایت را بررسی کنید. اگر خطا مربوط به URLهای مهم و دارای ورودی است، از ریدایرکت 301 به مقصد مرتبط استفاده کنید؛ اما برای آدرسهای بیاهمیت و بدون جایگزین، نمایش 404 همیشه نشانه خرابی سایت نیست.
