خطای ۴۰۴ وردپرس یعنی مرورگر یا ربات موتور جستوجو آدرسی را درخواست کرده که سرور نتوانسته محتوای متناظر آن را پیدا کند. این خطا همیشه به معنای حذفشدن صفحه نیست؛ گاهی نوشته در پیشخوان وجود دارد اما پیوندهای یکتا، فایل .htaccess، کش، اسلاگ یا تنظیمات سرور مسیر درخواست را اشتباه تفسیر میکنند. در این راهنما، علت را بهصورت مرحلهای پیدا میکنیم تا بهجای ریدایرکتکردن همه آدرسها یا نصب چند افزونه، مشکل واقعی را با کمترین ریسک برطرف کنید.
خطای ۴۰۴ وردپرس دقیقاً چیست؟
کد وضعیت HTTP 404 به کاربر و گوگل میگوید منبع درخواستی در این نشانی موجود نیست. اگر فقط یک نوشته قدیمی حذف شده باشد، نمایش ۴۰۴ طبیعی است؛ اما اگر همه نوشتهها، محصولات یا دستهها ناگهان ۴۰۴ شوند، معمولاً با یک اختلال ساختاری روبهرو هستیم. تفاوت این دو سناریو مهم است، زیرا راهحل حذف یک URL با خرابی پیوندهای یکتا یکسان نیست.
قبل از هر تغییری، آدرس مشکلدار را در حالت ناشناس مرورگر باز کنید، کش مرورگر را پاک کنید و همان URL را با یک دستگاه یا اینترنت دیگر آزمایش کنید. اگر فقط شما خطا میبینید، احتمالاً کش محلی یا DNS عامل مسئله است. اگر پاسخ برای همه ۴۰۴ است، بررسی وردپرس و سرور را ادامه دهید.
تشخیص سریع علت با الگوی خطا
| الگوی مشاهدهشده | علت محتمل | اولین اقدام |
|---|---|---|
| خانه باز میشود اما همه نوشتهها ۴۰۴ هستند | بازنویسی پیوندهای یکتا یا .htaccess | ذخیره مجدد Permalinks |
| فقط یک صفحه یا محصول ۴۰۴ است | حذف محتوا، تغییر اسلاگ یا URL اشتباه | بررسی وضعیت و نامک همان محتوا |
| دسته محصولات یا آرشیوها ۴۰۴ هستند | تداخل Base، taxonomy یا افزونه | بررسی نامکها و Flush Rewrite |
| بعد از انتقال دامنه خطا ایجاد شده | جایگزینی ناقص URL یا تنظیمات وبسرور | بررسی Home/Site URL و ریدایرکتها |
| در پیشخوان نیز بعضی مسیرها ۴۰۴ هستند | قوانین امنیتی، WAF یا تنظیمات سرور | بررسی لاگ و قوانین امنیتی |
| فقط URLهای قدیمی در سرچ کنسول ۴۰۴ هستند | حذف یا تغییر آدرس قبلی | تصمیم میان ۳۰۱، ۴۱۰ یا حفظ ۴۰۴ |
پیش از عیبیابی: نسخه پشتیبان و ثبت وضعیت
از فایلها و دیتابیس نسخه پشتیبان قابلبازیابی تهیه کنید، بهخصوص اگر قرار است .htaccess، افزونهها یا تنظیمات دامنه را تغییر دهید. راهنمای بکاپگیری اصولی از وردپرس توضیح میدهد چرا داشتن فایل پشتیبان بدون تست بازیابی کافی نیست. همچنین URLهای خراب، زمان شروع مشکل و آخرین تغییرات سایت را یادداشت کنید؛ این اطلاعات مسیر تشخیص را بسیار کوتاه میکند.
روش اول: بازسازی پیوندهای یکتا
رایجترین راهحل زمانی که صفحه اصلی باز میشود ولی نوشتهها ۴۰۴ هستند، بازسازی قوانین Rewrite است. در پیشخوان به «تنظیمات ← پیوندهای یکتا» بروید و بدون تغییر ساختار، یکبار روی «ذخیره تغییرات» بزنید. وردپرس قوانین بازنویسی را دوباره تولید میکند.
اگر مشکل پس از تغییر ساختار پیوندها ایجاد شده، فوراً ساختار قبلی را حذف نکنید. تغییر گسترده URLها میتواند لینکهای داخلی، ورودی گوگل و بکلینکها را مختل کند. ابتدا فهرست آدرسهای قدیمی را استخراج کنید و برای موارد معادل، ریدایرکت دقیق بسازید؛ راهنمای ریدایرکت ۳۰۱ در وردپرس روش صحیح انتقال بدون زنجیره و حلقه را شرح میدهد.
اگر ذخیره پیوندهای یکتا جواب نداد
احتمال دارد وردپرس اجازه نوشتن روی .htaccess را نداشته باشد یا وبسرور از Nginx استفاده کند. در هاستهای Apache و LiteSpeed، سطح دسترسی فایل و قواعد پایه وردپرس را بررسی کنید. در Nginx، ذخیره تنظیمات وردپرس فایل پیکربندی سرور را تغییر نمیدهد و باید قانون try_files توسط مدیر سرور کنترل شود. هیچ فایل نمونهای را بدون تطبیق با ساختار هاست جایگزین نکنید.
روش دوم: بررسی وجود محتوا، وضعیت انتشار و نامک
صفحه یا محصول را در پیشخوان جستوجو کنید. ممکن است محتوا به زبالهدان رفته، پیشنویس شده، خصوصی باشد یا نامک آن تغییر کرده باشد. آدرس نمایشدادهشده زیر عنوان را با URL خراب مقایسه کنید. تفاوت یک نویسه فارسی، خط تیره، Base دسته یا پسوند میتواند دو نشانی مستقل ایجاد کند.
- اگر محتوا اشتباهاً حذف شده، آن را بازیابی و URL صحیح را آزمایش کنید.
- اگر نامک عمداً تغییر کرده، آدرس قبلی را فقط به نزدیکترین محتوای معادل ۳۰۱ کنید.
- اگر جایگزین واقعی وجود ندارد، ۴۰۴ یا ۴۱۰ از انتقال همه صفحات به خانه بهتر است.
- اگر دو محتوا موضوع یکسان دارند، پیش از ادغام، Canonical و لینکهای داخلی را بررسی کنید.
روش سوم: رفع تداخل افزونه یا قالب
افزونههای کش، امنیت، چندزبانه، تغییر URL ورود، عضویت، فروشگاه و ریدایرکت میتوانند قواعد مسیر را تغییر دهند. برای تشخیص، در محیط آزمایشی یا بازه کمترافیک، افزونههایی را که درست پیش از شروع خطا نصب یا بهروزرسانی شدهاند موقتاً غیرفعال کنید. بعد از هر تغییر، کش را پاک و فقط یک URL ثابت را آزمایش کنید تا نتیجه قابل اتکا باشد.
اگر با غیرفعالکردن همه افزونهها خطا رفع شد، آنها را یکییکی فعال کنید. اگر مشکل باقی ماند، قالب پیشفرض وردپرس را موقتاً در Staging آزمایش کنید. انجام این تست مستقیم روی فروشگاه فعال ممکن است پرداخت یا ظاهر سایت را مختل کند؛ برای سایت تجاری بهتر است از خدمات پشتیبانی و نگهداری وردپرس استفاده شود.
روش چهارم: بررسی کش، CDN و قوانین امنیتی
گاهی صفحه در وردپرس سالم است اما نسخه ۴۰۴ در کش افزونه، LiteSpeed، Nginx، CDN یا Cloudflare ذخیره شده است. کش را از نزدیکترین لایه به وردپرس تا دورترین لایه پاک کنید: کش صفحه، Object Cache، کش سرور و سپس CDN. پاکسازی همهچیز در اولین قدم مناسب نیست؛ چون تشخیص لایه مشکلدار را سخت میکند.
WAF نیز ممکن است URLهایی با پارامتر خاص، نام فایل حساس یا الگوی مشکوک را مسدود کند و بهجای 403 پاسخ 404 نشان دهد. لاگ فایروال و ModSecurity را بررسی کنید. اگر خطا فقط برای یک نقش کاربری، کشور یا شبکه رخ میدهد، این احتمال جدیتر است.
خطای ۴۰۴ محصولات و دستههای ووکامرس
در ووکامرس، یکسانبودن نامک برگه، دسته محصول و Product Base میتواند تعارض ایجاد کند. به «تنظیمات پیوندهای یکتا» بروید و ساختار پیوند محصول را بررسی کنید. نامک برگه فروشگاه نباید با یک دسته یا Base سفارشی به شکل ناسازگار تکرار شود.
پس از تغییر، پیوندهای یکتا را ذخیره و کش را پاک کنید. اگر فقط صفحات پرداخت، حساب کاربری یا سبد خرید مشکل دارند، برگههای سیستمی ووکامرس را در تنظیمات پیشرفته کنترل کنید. این خطا با خطای درگاه پرداخت ووکامرس متفاوت است؛ ۴۰۴ یعنی مسیر پیدا نشده، درحالیکه پرداخت ناموفق معمولاً به Callback، SSL، واحد پول یا پاسخ درگاه مربوط است.
پس از مهاجرت یا تغییر دامنه چه چیزهایی را کنترل کنیم؟
در انتقال سایت، مقادیر WordPress Address و Site Address، دامنه داخل دیتابیس، پیکربندی SSL و ریدایرکت دامنه قدیمی باید هماهنگ باشند. Search & Replace ساده روی دیتابیس میتواند دادههای Serialized را خراب کند؛ از ابزار سازگار یا WP-CLI استفاده کنید و قبل از اجرا نسخه پشتیبان بگیرید.
همچنین مطمئن شوید درخواستهای HTTP به HTTPS، www به بدون www یا برعکس، فقط یک انتقال مشخص دارند. چند قانون متضاد ممکن است حلقه، آدرس اشتباه یا ۴۰۴ بسازد. Canonical صفحات نیز باید به نسخه نهایی و قابل دسترس اشاره کند.
مدیریت ۴۰۴ از دید سئو
وجود تعدادی ۴۰۴ طبیعی است و لازم نیست هر URL ناشناخته را ریدایرکت کنید. رباتها، لینکهای تایپی و اسکنرها دائماً آدرسهای نامعتبر میسازند. تمرکز باید روی URLهایی باشد که قبلاً ترافیک، بکلینک، جایگاه یا لینک داخلی داشتهاند.
چه زمانی ۳۰۱ مناسب است؟
وقتی محتوای قدیمی جایگزین واقعی و همموضوع دارد. مثلاً یک مقاله قدیمی درباره یک خدمت با نسخه جامعتر ادغام شده است. مقصد باید نیاز کاربر را برآورده کند؛ انتقال همه ۴۰۴ها به صفحه اصلی میتواند Soft 404 تلقی شود.
چه زمانی ۴۰۴ یا ۴۱۰ باقی بماند؟
وقتی صفحه برای همیشه حذف شده و جایگزین مرتبطی ندارد. ۴۱۰ حذف عمدی را صریحتر اعلام میکند، اما ۴۰۴ استاندارد نیز در طول زمان از ایندکس خارج میشود. لینکهای داخلی به این URL را حذف کنید و آن را از Sitemap بیرون نگه دارید.
پس از اصلاح، Sitemap و Canonical را بررسی و URL مهم را در سرچ کنسول آزمایش کنید. اگر مسئله فقط دیدهنشدن صفحه در نتایج است، راهنمای رفع مشکل ایندکسنشدن صفحات وردپرس مسیر جداگانهای برای بررسی noindex، robots.txt و پوشش ایندکس ارائه میکند.
مثال عملی: همه نوشتهها ناگهان ۴۰۴ شدهاند
فرض کنید صفحه اصلی و پیشخوان باز میشوند، اما هر نوشته خطای ۴۰۴ دارد. آخرین تغییر، انتقال سایت به LiteSpeed و فعالکردن افزونه کش بوده است. مسیر منطقی چنین است:
- یک URL خراب را در حالت ناشناس ثبت و پاسخ آن را تأیید کنید.
- از تنظیمات پیوندهای یکتا بدون تغییر، ذخیره را بزنید.
- کش وردپرس و سپس کش LiteSpeed را پاک و همان URL را تست کنید.
- وجود قواعد پایه وردپرس در
.htaccessو سطح دسترسی فایل را بررسی کنید. - افزونه تازهفعالشده را موقتاً غیرفعال و دوباره تست کنید.
- پس از رفع، چند نوشته، دسته، صفحه و محصول را جداگانه کنترل کنید.
اگر در مرحله دوم مشکل رفع شود، علت اصلی Flush نشدن Rewrite بوده است؛ بنابراین نیازی به ساخت صدها ریدایرکت ندارید. اگر فقط بعضی صفحات باقی ماندند، نامک و وضعیت همان محتواها را جداگانه بررسی کنید.
چکلیست نهایی رفع خطای ۴۰۴ وردپرس
- از فایل و دیتابیس بکاپ قابلبازیابی گرفتهام.
- خطا را در حالت ناشناس و شبکه دیگر تأیید کردهام.
- الگوی خطا را مشخص کردهام: یک URL، یک نوع محتوا یا کل سایت.
- پیوندهای یکتا را یکبار ذخیره و Rewrite Rules را بازسازی کردهام.
- محتوا، وضعیت انتشار، نامک و زبالهدان را بررسی کردهام.
- کش افزونه، سرور و CDN را مرحلهای کنترل کردهام.
- تداخل افزونه، قالب و قوانین امنیتی را در محیط امن آزمایش کردهام.
- برای URL قدیمی میان ۳۰۱، ۴۰۴ و ۴۱۰ تصمیم منطقی گرفتهام.
- لینکهای داخلی، Sitemap، Canonical و سرچ کنسول را بازبینی کردهام.
چه زمانی به متخصص نیاز داریم؟
اگر ۴۰۴ پس از مهاجرت، تغییر وبسرور، آلودگی امنیتی یا دستکاری قواعد Rewrite ایجاد شده، آزمونوخطا میتواند دامنه مشکل را بزرگتر کند. تیم تکوبیت میتواند با بررسی لاگ سرور، ساختار URL، افزونهها، کش و وضعیت ایندکس، علت اصلی را پیدا کند و اصلاحات را بدون ریدایرکتهای بیهدف انجام دهد. برای ارزیابی سایت و دریافت راهکار متناسب، از طریق تکوبیت درخواست بررسی ثبت کنید.
سؤالات متداول
چرا صفحه اصلی باز میشود ولی نوشتهها خطای ۴۰۴ دارند؟
معمولاً قوانین پیوند یکتا یا فایل .htaccess بازسازی نشدهاند. ابتدا تنظیمات پیوندهای یکتا را بدون تغییر ذخیره کنید و سپس کش را پاک کنید.
آیا باید همه صفحات ۴۰۴ را به صفحه اصلی ریدایرکت کنیم؟
خیر. فقط URLهایی را ۳۰۱ کنید که مقصدی واقعاً معادل دارند. انتقال نامرتبط به خانه تجربه کاربر را خراب میکند و ممکن است Soft 404 تلقی شود.
آیا خطای ۴۰۴ به سئوی کل سایت آسیب میزند؟
چند URL نامعتبر طبیعی است؛ اما ۴۰۴ شدن صفحات مهم، لینکهای داخلی شکسته یا تعداد زیاد URLهای حذفشده میتواند خزش، تجربه کاربر و ارزش لینکها را مختل کند.
تفاوت خطای ۴۰۴ و ۵۰۰ چیست؟
۴۰۴ یعنی منبع در آدرس خواستهشده پیدا نشده، اما ۵۰۰ نشانه خطای داخلی سرور یا اجرای PHP است. برای خطای سرور، راهنمای رفع خطای ۵۰۰ وردپرس را ببینید.
چرا بعد از تغییر نامک محصول، URL قبلی ۴۰۴ میشود؟
زیرا آدرس قبلی دیگر به محصول متصل نیست. اگر محصول همان است، برای URL قدیمی به نشانی جدید یک ریدایرکت ۳۰۱ مستقیم ایجاد کنید.
