این مقاله درباره

خطای 404 چیست

خطای 404 چیست و چه اثری بر سئو دارد؟ تفاوت 404 و 410 و Soft 404، طراحی صفحه خطای حرفه‌ای، تشخیص URLهای خراب با سرچ کنسول، وردپرس و Next.js و چک‌لیست رفع خطا.

خطای 404 چیست؟ آموزش تشخیص و رفع ارور 404 در سئو

نوشته شده توسط محمد اصل زنجانی

4.9از ۵(15 امتیاز)

اگر می‌پرسید خطای 404 چیست، پاسخ این است: کد وضعیت HTTP که می‌گوید سرور صفحه یا منبع درخواستی را پیدا نکرده است. کاربر ممکن است به آدرسی برسد که هرگز وجود نداشته، حذف شده، تغییر کرده یا به‌دلیل لینک اشتباه ساخته شده است. وجود چند 404 برای سایت طبیعی است؛ مشکل زمانی ایجاد می‌شود که صفحات مهم، لینک‌دار یا پربازدید بدون تصمیم مناسب رها شوند و کاربر و خزنده را به بن‌بست برسانند.

در این راهنمای جامع، تفاوت 404 با 410 و soft 404، علت‌های رایج، اثر آن بر تجربه کاربری و سئو، طراحی صفحه 404 مفید، تصمیم بین 301 و 410، پیدا کردن URLهای خراب با سرچ کنسول و crawl، و روش مدیریت خطا در وردپرس و Next.js را بررسی می‌کنیم. اگر URL واقعاً جابه‌جا شده، راهنمای ریدایرکت 301 مکمل این مقاله است؛ اگر چند نسخه تکراری دارید، کنونیکال راه‌حل متفاوتی خواهد بود.

«کدهای وضعیت HTTP در محدوده ۴۰۰ نشان می‌دهند که به نظر می‌رسد خطایی از طرف کاربر رخ داده است؛ ۴۰۴ یعنی سرور منبع درخواستی را پیدا نکرده است.»

منبع: MDN Web Docs — 404 Not Found
صفحه خطای ۴۰۴ سفارشی با جست‌وجو و لینک‌های بازگشت به صفحات اصلی سایت — روبینش | Rubinesh
صفحه 404 خوب کاربر را رها نمی‌کند؛ مسیر جست‌وجو، بازگشت به خانه و لینک‌های مرتبط را در اختیار او می‌گذارد.

خطای 404 چیست و چرا رخ می‌دهد؟

وقتی مرورگر یا خزنده URLای را درخواست می‌کند و سرور هیچ منبعی برای آن آدرس پیدا نمی‌کند، پاسخ 404 Not Found برمی‌گردد. این پاسخ الزاماً به معنی خراب‌بودن سرور نیست؛ سرور سالم است اما صفحه موردنظر در مسیر اعلام‌شده وجود ندارد. یک typo در لینک، حذف محصول، تغییر slug مقاله، انتقال دامنه، انقضای محتوای کمپین یا لینک قدیمی در سایت دیگر می‌تواند باعث 404 شود.

همه 404ها ارزش یکسان ندارند. URLی که یک‌بار اشتباه تایپ شده و هیچ لینک یا بازدیدی ندارد، معمولاً نیاز به redirect ندارد. اما URL قدیمی مقاله‌ای که بک‌لینک، ترافیک، نمایش گوگل یا جایگاه تجاری دارد، باید بررسی شود: اگر نسخه جدید مرتبط وجود دارد 301، اگر محتوا عمداً حذف شده 410 یا 404 معتبر، و اگر مشکل از لینک داخلی است اصلاح همان لینک. هدف، صفرکردن عدد 404 به هر قیمت نیست؛ هدف حفظ مسیرهای باارزش و تجربه روشن است.

تفاوت 404 و 410 چیست؟

هر دو کد می‌گویند منبع درخواستی در دسترس نیست، اما 410 Gone صریح‌تر اعلام می‌کند که منبع عمداً و برای همیشه حذف شده است. 404 می‌تواند موقت یا ناشی از خطای مسیر باشد و سرور یا گوگل ممکن است دوباره آن را بررسی کند. 410 برای محتوایی که دیگر برنمی‌گردد و جایگزین مرتبطی ندارد، پیام دقیق‌تری است؛ 404 برای URLهای ناشناخته، اشتباه یا حذف‌شده‌ای که هنوز نمی‌دانید موقت‌اند یا دائمی، انتخاب رایجی است.

انتخاب بین 301، 404 و 410
وضعیت کد مناسب رفتار کاربر سناریوی درست
صفحه به URL جدید منتقل شده 301 به مقصد مرتبط منتقل می‌شود تغییر slug، ادغام مقاله یا مهاجرت دامنه
منبع عمداً حذف شده و بازنمی‌گردد 410 پیام حذف دائمی دریافت می‌کند کمپین منقضی یا محصولی که جایگزین ندارد
URL اشتباه یا ناشناخته است 404 صفحه خطای مفید نمایش داده می‌شود تایپ اشتباه، لینک خارجی خراب یا مسیر ناموجود
صفحه باید وجود داشته باشد اما سرور مشکل دارد 500 یا 503 خطای موقت سرور اختلال برنامه، دیتابیس یا نگهداری موقت

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

Soft 404 چیست و چرا خطرناک‌تر است؟

Soft 404 زمانی رخ می‌دهد که صفحه‌ای از نظر ظاهری می‌گوید «صفحه پیدا نشد»، اما سرور کد 200 برمی‌گرداند؛ یا صفحه‌ای با محتوای بسیار کم و بی‌ربط برای URLهای ناموجود نمایش داده می‌شود. گوگل ممکن است چنین URLهایی را مانند صفحات معمولی crawl کند اما در نهایت آن‌ها را ایندکس نکند. این وضعیت منابع خزش را مصرف می‌کند و گزارش Pages را شلوغ می‌سازد.

راه اصلاح این است که اگر منبع واقعاً وجود ندارد، پاسخ 404 یا 410 معتبر و صفحه خطای مفید بدهید. اگر به‌طور موقت در دسترس نیست، 503 همراه با Retry-After مناسب‌تر است. اگر URL به نسخه جدید منتقل شده، 301 مستقیم به مقصد مرتبط بگذارید. تبدیل همه خطاها به homepage با کد 200 مشکل را پنهان می‌کند، نه اینکه حل کند.

اثر خطای 404 بر سئو سایت

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

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

صفحه 404 حرفه‌ای چه ویژگی‌هایی دارد؟

صفحه 404 باید در همان نگاه اول نشان دهد صفحه پیدا نشده، اما لحن آن نباید کاربر را سرزنش کند. لوگو و header اصلی، لینک خانه، جست‌وجوی داخلی، لینک دسته‌ها یا مقالات محبوب، و مسیر تماس را حفظ کنید. اگر URL شبیه یک صفحه موجود است، پیشنهاد نزدیک‌ترین مسیر را نشان دهید. در فروشگاه، دسته‌های اصلی و سبد خرید قابل دسترس باشند؛ در سایت خدماتی، راهنمای خدمت و CTA مشاوره کمک می‌کند کاربر از مسیر خارج نشود.

صفحه 404 را به یک صفحه محتوایی برای رتبه‌گرفتن تبدیل نکنید. هدف آن بازیابی کاربر است، نه جذب ترافیک ارگانیک. متن کوتاه، واضح و قابل ترجمه بنویسید، از کد 404 واقعی استفاده کنید و مطمئن شوید لینک‌های صفحه خطا به خودشان یا مسیرهای خراب اشاره نمی‌کنند. اگر Search داخلی دارید، ورودی URL را به‌شکل امن پردازش کنید و نتیجه خالی را با پیام قابل فهم نمایش دهید.

چطور خطاهای 404 را پیدا کنیم؟

برای کشف 404ها از چند منبع استفاده کنید، چون هیچ ابزار واحدی همه مسیرها را نمی‌بیند. سرچ کنسول گزارش Page indexing و نمونه URLهایی را که گوگل دیده نمایش می‌دهد. ابزار crawl داخلی لینک‌های موجود در سایت را دنبال می‌کند و لینک‌های شکسته را پیدا می‌کند. لاگ سرور نشان می‌دهد کاربران و ربات‌ها واقعاً چه URLهایی را درخواست کرده‌اند. Analytics، گزارش جست‌وجوی داخلی و ابزارهای بک‌لینک نیز URLهایی را آشکار می‌کنند که ممکن است برای کاربر ارزش داشته باشند.

  • Search Console: گزارش Pages و URL Inspection را برای URLهای مهم بررسی کنید.
  • Site crawler: لینک‌های داخلی، تصاویر، CSS و canonicalهای خراب را crawl کنید.
  • Server logs: درخواست‌های پرتکرار به 404 و user-agent درخواست‌دهنده را تحلیل کنید.
  • Analytics: landing pageهای خطادار و مسیر خروج کاربران را بررسی کنید.
  • Backlink tools: بک‌لینک‌هایی را پیدا کنید که به URL حذف‌شده اشاره می‌کنند.
  • بازخورد پشتیبانی: کاربران گاهی زودتر از ابزارها لینک یا محصول گم‌شده را گزارش می‌کنند.

برای هر URL خراب چه تصمیمی بگیریم؟

برای هر URL یک جدول تصمیم بسازید و حداقل این موارد را ثبت کنید: کد فعلی، تعداد بازدید، کلیک ارگانیک، بک‌لینک، لینک داخلی، درآمد یا اهمیت کسب‌وکاری، وضعیت محتوا و نزدیک‌ترین مقصد. اگر صفحه به URL دیگری منتقل شده، 301 بزنید. اگر محصول موقتاً تمام شده، صفحه را بی‌دلیل حذف نکنید؛ موجودی، زمان بازگشت و محصولات جایگزین را نمایش دهید. اگر محتوای قدیمی با جایگزین مرتبط ادغام شده، redirect را به همان نسخه ادغام‌شده بفرستید.

اگر صفحه هیچ ارزش، لینک و جایگزین منطقی ندارد، 404 یا 410 را حفظ کنید و آن را از sitemap و لینک داخلی حذف کنید. اگر URL به‌دلیل typo کاربران ایجاد می‌شود، شاید صفحه 404 با جست‌وجوی پیشنهادی کافی باشد. این رویکرد بهتر از ساخت صدها redirect به homepage است که intent کاربر را پاسخ نمی‌دهند و ممکن است soft 404 تولید کنند.

چه زمانی خطای 404 را با 301 رفع کنیم؟

301 زمانی درست است که مقصد جدید، ادامه واقعی مبدأ باشد. تغییر slug یک مقاله، انتقال یک محصول به دسته جدید، ادغام دو راهنمای مشابه یا تغییر دامنه مثال‌های واضح هستند. مقصد باید محتوای هم‌موضوع و قابل دسترسی داشته باشد و ترجیحاً پاسخ 200 مستقیم بدهد. اگر فقط بخشی از محتوای صفحه قدیمی باقی مانده و مقصد با نیت کاربر تفاوت دارد، 301 ممکن است گمراه‌کننده باشد.

بعد از redirect، خود لینک‌های داخلی را اصلاح کنید؛ باقی‌ماندن لینک قدیمی یعنی هر بار کاربر و خزنده یک hop اضافه طی می‌کند. sitemap را از URL قدیمی پاک کنید و canonical صفحه مقصد را کنترل کنید. در مهاجرت بزرگ، redirect map را نسخه‌بندی و پس از انتشار به‌صورت نمونه‌ای و crawl کامل بررسی کنید. مقاله آموزش کامل ریدایرکت 301 قواعد سرور، WordPress و Next.js را با مثال توضیح می‌دهد.

مدیریت خطای 404 در وردپرس

وردپرس معمولاً با فایل 404.php قالب، صفحه خطای سفارشی را تولید می‌کند. اگر قالب شما این فایل را ندارد، می‌توانید از template hierarchy یا افزونه‌های مدیریت redirect کمک بگیرید. برای redirectهای مشخص، افزونه‌ای مانند Redirection گزارش 404 و ساخت rule را آسان می‌کند؛ اما نصب چند افزونه هم‌زمان برای یک وظیفه، احتمال loop و تداخل را بالا می‌برد.

بعد از تغییر permalink، فهرست URLهای قدیمی را از sitemap، Analytics و بک‌لینک‌ها استخراج کنید و برای صفحات مرتبط redirect مستقیم بسازید. گزینه‌ای که همه 404ها را به homepage می‌فرستد فعال نکنید، مگر با آگاهی کامل از پیامد آن؛ در بیشتر سایت‌ها این کار داده تشخیص خطا را پنهان می‌کند. Search Console و لاگ سرور را بعد از انتشار تغییرات دوباره پایش کنید.

مدیریت خطای 404 در Next.js App Router

در Next.js App Router برای صفحه ناموجود می‌توانید از فایل app/not-found.tsx استفاده کنید. وقتی در Server Component تابع notFound() را صدا می‌زنید، Next.js این UI را رندر می‌کند و پاسخ 404 می‌دهد. صفحه باید سبک، قابل دسترس و دارای لینک‌های واقعی باشد. اگر URL به محتوای جدید منتقل شده، قبل از رسیدن به not-found باید redirect دائمی را در لایه مناسب اعمال کنید.

// app/not-found.tsx
import Link from 'next/link';

export default function NotFound() {
  return (
    <main>
      <h1>صفحه پیدا نشد</h1>
      <p>آدرس تغییر کرده یا صفحه دیگر در دسترس نیست.</p>
      بازگشت به صفحه اصلی
      مشاهده مقالات
    </main>
  );
}

در routeهای داینامیک، پس از پیدا نشدن رکورد دیتابیس، notFound() را اجرا کنید و از برگرداندن صفحه 200 با متن «پیدا نشد» خودداری کنید. اگر یک slug قدیمی باید به slug جدید برود، قبل از query نهایی یک redirect map یا lookup بسازید. پس از deploy، پاسخ واقعی URL را با ابزارهای HTTP و URL Inspection بررسی کنید؛ مشاهده صفحه در مرورگر به‌تنهایی کد status را تضمین نمی‌کند.

اندازه‌گیری صفحه 404 و بازیابی کاربر

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

در گزارش، URL قبلی یا referrer را نگه دارید تا بفهمید کاربر از کجا به خطا رسیده است. اگر بیشتر خطاها از یک صفحه داخلی می‌آیند، اصلاح لینک منبع از ساخت redirect مهم‌تر است. اگر یک URL قدیمی از صدها سایت خارجی بازدید می‌گیرد، ساخت 301 مرتبط ارزش بیشتری دارد. هر ماه تعداد 404های مهم، redirectهای ایجادشده، جست‌وجوی ناموفق و نرخ بازگشت کاربر را مقایسه کنید.

چک‌لیست ممیزی خطای ۴۰۴ از پیدا کردن URL خراب تا انتخاب 301، 410 یا soft 404 و پایش سرچ کنسول — روبینش | Rubinesh
ممیزی 404 با پیدا کردن خطا تمام نمی‌شود؛ باید نوع URL، مقصد مناسب و اصلاح لینک‌های منبع را هم مشخص کنید.

اشتباهات رایج در مدیریت خطای 404

  1. تبدیل همه 404ها به homepage به‌جای تصمیم‌گیری بر اساس ارتباط محتوا
  2. برگرداندن کد 200 برای صفحه‌ای که واقعاً وجود ندارد و ساخت soft 404
  3. استفاده از 301 برای صفحه‌ای که هیچ مقصد مرتبطی ندارد
  4. حذف محصول بدون نمایش وضعیت موجودی، جایگزین یا مسیر دسته مرتبط
  5. فراموش‌کردن اصلاح لینک‌های داخلی پس از ساخت redirect
  6. قرار دادن URLهای 404، 410 یا redirectشده در sitemap
  7. ساخت چند صفحه 404 یا افزونه redirect با قواعد متناقض
  8. بی‌توجهی به حروف فارسی، اسلش انتهایی و تغییر protocol در URLها
  9. بررسی‌نکردن URLهای دارای بک‌لینک و ترافیک واقعی
  10. درمان خطای موقت سرور با 404 به‌جای 503

چک‌لیست عملی رفع خطاهای 404

  1. گزارش Pages سرچ کنسول، crawl سایت، لاگ سرور و Analytics را کنار هم جمع کنید.
  2. URLهای 404 را بر اساس بازدید، بک‌لینک، لینک داخلی و ارزش کسب‌وکار مرتب کنید.
  3. برای هر URL مشخص کنید صفحه جابه‌جا شده، حذف دائمی است، موقتاً مشکل دارد یا اصلاً وجود نداشته.
  4. مقصد مرتبط را با 301 انتخاب کنید؛ برای حذف واقعی 410 یا 404 معتبر برگردانید.
  5. صفحه 404 را با خانه، جست‌وجو، دسته‌ها و لینک‌های واقعی مفید طراحی کنید.
  6. لینک‌های داخلی خراب و URLهای redirectشده را به مقصد نهایی اصلاح کنید.
  7. sitemap، canonical و hreflang را از URLهای ناموجود و قدیمی پاک کنید.
  8. پاسخ HTTP، header، تعداد hop و کد مقصد را روی production تست کنید.
  9. برای صفحات مهم، URL Inspection و گزارش Pages را بعد از بازخزش بررسی کنید.
  10. هر ماه روند 404، soft 404، redirect chain و خطاهای سرور را پایش کنید.

جمع‌بندی: همه 404ها دشمن سئو نیستند

خطای 404 یعنی سرور منبع درخواستی را پیدا نکرده است و در وب واقعی وجود چند مورد از آن طبیعی است. مسئله اصلی، 404شدن صفحات مهم، لینک‌های داخلی خراب، soft 404های گسترده و نبود تصمیم روشن برای URLهای منتقل‌شده یا حذف‌شده است. برای صفحه جابه‌جا‌شده 301، برای حذف دائمی 410 یا 404 معتبر، و برای اختلال موقت 503 را در نظر بگیرید. مقصد را فقط وقتی بسازید که از نظر موضوعی و تجربه کاربر مرتبط باشد.

یک صفحه 404 حرفه‌ای کاربر را به خانه، جست‌وجو و محتوای مرتبط برمی‌گرداند، اما جای اصلاح معماری و لینک‌های خراب را نمی‌گیرد. با ترکیب سرچ کنسول، crawl، لاگ سرور و داده کسب‌وکار، خطاهای مهم را از URLهای بی‌ارزش جدا کنید. اگر سایت شما بعد از بازطراحی یا تغییر URL با 404های گسترده روبه‌رو شده، از ممیزی سئو تکنیکال یا خدمات سئو و محتوای روبینش کمک بگیرید و برای بررسی وضعیت فعلی از صفحه تماس روبینش درخواست مشاوره بفرستید.

سؤالات متداول

خطای 404 چیست؟

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

تفاوت 404 و 410 چیست؟

404 می‌گوید منبع در دسترس نیست و ممکن است وضعیت موقت یا نامشخص باشد؛ 410 صریح‌تر اعلام می‌کند منبع عمداً و برای همیشه حذف شده است. برای URL بدون جایگزین مرتبط، هر دو می‌توانند مناسب باشند.

آیا خطای 404 به سئو آسیب می‌زند؟

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

چه زمانی خطای 404 را به 301 تبدیل کنیم؟

وقتی URL به صفحه جدیدی با همان نیت یا موضوع مرتبط منتقل شده است؛ مثل تغییر slug مقاله، انتقال محصول یا ادغام دو صفحه. برای URL بدون مقصد مرتبط، redirect به homepage انتخاب مناسبی نیست.

چطور خطاهای 404 سایت را پیدا کنیم؟

گزارش Pages در سرچ کنسول، ابزارهای crawl، لاگ سرور، Analytics و ابزارهای تحلیل بک‌لینک را کنار هم بررسی کنید. هر URL را بر اساس ترافیک، لینک، ارزش کسب‌وکار و وجود مقصد مرتبط اولویت‌بندی کنید.