در دنیای سئو، زمانی میتوان از بهینهسازی صحبت کرد که موتورهای جستجو بتوانند بدون مانع به تمام بخشهای سایت دسترسی داشته باشند. در این میان، کدهای وضعیت HTTP یا HTTP Status Codes نقش بسیار مهمی دارند. این کدها بهصورت مستقیم به خزندههای گوگل و سایر موتورهای جستجو میگویند که وضعیت صفحات سایت چگونه است. آیا صفحه بهدرستی بارگذاری شده؟ به آدرس جدیدی منتقل شده؟ یا اصلاً وجود ندارد؟
برای آنکه سایتتان جزئی از نتایج جستجو باشد باید مطمئن شوید تمام صفحاتی که میخواهید در نتایج جستجو دیده شوند، دارای کد وضعیت 200 OK هستند. تا زمانی که این مرحله بهدرستی انجام نشود، حتی بهترین محتوای دنیا هم ممکن است از دید گوگل پنهان بماند. شناخت و مدیریت دقیق Status Codes، نقطه شروع هر استراتژی موفق سئو است.
در نتیجه برای آنکه بتوانید تمام مراحل استراتژی سئو خود را با موفقیت سپری کنید، تا انتهای این مقاله همراه ما باشید.
در این مقاله با مطالب زیر آشنا میشوید:
Toggleکدهای وضعیت HTTP یا HTTP Status Codes چیست؟
کد وضعیت HTTP یا Status Codes یک عدد سهرقمی است که از سمت سرور وب در پاسخ به یک درخواست از طرف کلاینت (مانند مرورگر یا خزنده موتور جستجویی مثل Googlebot) ارسال میشود. این کدها بخشی از پروتکل انتقال ابرمتن (HTTP) هستند و نشان میدهند که آیا درخواست با موفقیت انجام شده، به آدرس دیگری هدایت شده یا با خطا مواجه شده است.
هر بار که شما وارد یک سایت میشوید، مرورگر شما یک درخواست HTTP به سروری که سایت روی آن قرار دارد ارسال میکند. سرور پس از پردازش این درخواست، یک کد وضعیت برمیگرداند که تعیین میکند مرحله بعدی چه خواهد بود.
برای مثال، کد 200 OK یعنی صفحه بدون مشکل بارگذاری شده؛ اما کد 404 Not Found به این معناست که منبع مورد نظر وجود ندارد یا در دسترس نیست.
کدهای وضعیت HTTP نقش بسیار مهمی در سئو، توسعه وب و مدیریت سرور دارند. موتورهای جستجو مانند گوگل و بینگ از این کدها استفاده میکنند تا تصمیم بگیرند آیا یک صفحه باید ایندکس شود یا نه. همچنین ابزارهای سئو مانند Google Search Console، cURL و DevTools در مرورگرها به توسعهدهندگان کمک میکنند تا مشکلات سایت را شناسایی و برطرف کنند.
اهمیت کدهای وضعیت HTTP در سئو
هدف اصلی سئو، جذب ترافیک ارگانیک است که واقعاً به محتوای شما علاقهمند باشد؛ اما برای اینکه این ترافیک به سمت سایت شما هدایت شود، ابتدا باید مطمئن شوید که محتوای شما برای خزندههای موتور جستجو قابل دسترسی است.
زمانی که خزندهها (مانند Googlebot) محتوای سایت را درخواست میکنند، باید پاسخ HTTP 200 OK دریافت کنند. در صورت دریافت کدهای 4xx و 5xx به سایت یا صفحهای از آن دسترسی نخواهند داشت. حتی کدهای 3xx (ریدایرکت) هم باید تا حد ممکن کنترلشده و محدود باشند.
نداشتن درک کافی از کدهای وضعیت HTTP، مثل مدیریت یک رستوران در کشوریست که زبان آن را بلد نیستید. اتفاقات زیادی میافتد، ولی دقیق نمیدانید چرا این اتفاقات رخ میدهند و چطور میتوانید اوضاع را بهتر کنید.
«اگر از سیستم مدیریت محتوا مثل وردپرس استفاده میکنید و افزونههایی مانند Yoast برای مدیریت ریدایرکتها دارید، ایجاد یک ریدایرکت 301 کار سادهای است.
اما بهعنوان یک بازاریاب دیجیتال، درک این موضوع که چطور میشود بدون افزونه این تنظیمات را انجام داد و چرا گاهی کدهای وضعیت پیشبینینشدهای ظاهر میشوند، واقعاً مفید است.
چرا؟ چون به شما کمک میکند مشکلات را سریعتر عیبیابی کنید و گفتوگوهای دقیقتری با توسعهدهندگان داشته باشید.»
— Kim Dewe، مدیر سئو در Lingo Biowearables
انواع کدهای وضعیت HTTP
کدهای وضعیت HTTP بر اساس رقم اولشان به پنج دسته کلی تقسیم میشوند. هر دسته نشاندهنده نوع خاصی از پاسخ سرور است و به کاربران و موتورهای جستجو کمک میکند تا متوجه شوند یک درخواست چگونه پردازش شده است.
درک این دستهبندیها برای صاحبان سایت، توسعهدهندگان و بازاریابان دیجیتال ضروری است؛ چرا که در شناسایی و رفع مشکلات سایت، سئو و تجربه کاربری تأثیر میگذارند، نقش مهمی دارند.
در ادامه، فهرستی از مهمترین کدها، کاربرد آنها و نکاتی برای درک بهتر عملکرد هر کد آورده شده است.
کدهای وضعیت http سری 1xx؛ پاسخهای اطلاعرسانی (Informational Responses)
این کدها نشان میدهند که سرور درخواست را دریافت کرده و در حال پردازش آن است، اما هنوز پاسخ نهایی ارسال نشده.
- 100 Continue: سرور هدرهای درخواست را دریافت کرده و منتظر ادامه ارسال بدنه درخواست از سمت کلاینت است.
- 101 Switching Protocols: این کد وضعیت نشان میدهد که سروری که درخواست به آن ارسال شده، متوجه درخواست کلاینت شده و توانایی این را دارد که درخواست را پاسخ دهد.
- 102 Processing: این کد وضعیت بین سرور و کلاینت استفاده میشود تا به کلاینت اطلاع دهد که درخواستش توسط سرور پذیرفته شده، ولی هنوز پردازش آن کامل نشده است.
- 103 Early Hints: این کد وضعیت برای بهبود عملکرد بارگذاری صفحات وب طراحی شده است. سرور میتواند اطلاعات اولیه را قبل از اینکه پاسخ نهایی آماده شود، برای مرورگر ارسال کند. این کار باعث میشود مرورگر زودتر شروع به بارگذاری و پردازش منابع (مثل CSS، JS، فونتها و …) کند، که در نتیجه زمان بارگذاری کلی صفحه کاهش مییابد.
استفادههای رایج:
- انتقال داده بهصورت قطعهقطعه (chunked transfer) با کد 100
- پیشبارگذاری منابع برای افزایش سرعت سایت با کد 103
- تأثیر بر سئو: بهینهسازی معیارهای Core Web Vitals
کدهای وضعیت http سری 2xx؛ پاسخهای موفقیتآمیز (Success Responses)
این کدها تأیید میکنند که درخواست با موفقیت دریافت، درک و پردازش شده است.
- 200 OK: درخواست موفقیتآمیز بوده و سرور منبع درخواستی را بازگردانده است.
- 201 Created: منبع جدیدی با موفقیت ایجاد شده؛ معمولاً در پاسخ به درخواستهای API استفاده میشود.
- 204 No Content: درخواست موفقیتآمیز بوده؛ اما هیچ محتوایی برای ارسال وجود ندارد (مثلاً برای پاسخ به درخواستهای رهگیری یا آپدیت بدون پاسخ).
استفادههای رایج:
- بارگذاری صفحات وب با کد 200 OK
- پاسخ به عملیات ایجاد محتوا در APIها با کد 201 Created
- اسکریپتهای رهگیری (Tracking) یا تعاملات بیپاسخ با کد 204 No Content
کدهای وضعیت http سری 3xx؛ پاسخهای تغییر مسیر (Redirection Responses)
کدهای وضعیت سری 3xx به کلاینت (مرورگر یا خزنده موتور جستجو) اطلاع میدهند که برای تکمیل درخواست باید اقدام دیگری انجام دهد و معمولاً به معنای هدایت به یک آدرس جدید است.
- 301 Moved Permanently: منبع مورد نظر بهطور دائم به یک آدرس جدید منتقل شده است. موتورهای جستجو معمولاً سیگنالهای سئو و اعتبار را به آدرس جدید منتقل میکنند.
- 302 Found: منبع بهصورت موقت در یک آدرس جدید قرار دارد و ممکن است بعداً تغییر کند.
- 303 See Other: پاسخ درخواست در یک URI متفاوت قرار دارد و باید با روش GET از آن URI فراخوانی شود. معمولاً برای هدایت بعد از یک درخواست POST استفاده میشود.
- 304 Not Modified: منبع درخواستی از زمان آخرین دسترسی تغییری نکرده، بنابراین مرورگر میتواند آن را از کش (cache) بارگذاری کند.
- 305 Use Proxy: دسترسی به منبع فقط از طریق پروکسی مشخصشده در فیلد Location مجاز است. به دلیل نگرانیهای امنیتی، بهندرت استفاده میشود.
- 306 (Unused): در نسخههای قدیمی استفاده میشد؛ اما اکنون رزرو شده و کاربردی ندارد.
- 307 Temporary Redirect: منبع مورد نظر بهطور موقت در URI دیگری قرار دارد. در این روش، متد و بدنه درخواست اولیه برای آدرس جدید تکرار میشود.
- 308 Permanent Redirect: مشابه 301 است؛ اما با این تفاوت که در 308، متد و بدنه درخواست اصلی نیز در درخواست جدید حفظ میشود.
استفادههای رایج:
- انتقال دائمی صفحات یا دامنهها با 301
- تست A/B یا تغییرات موقت با 302
- استفاده از کش مرورگر برای کاهش بار سرور با 304
کدهای وضعیت http سری 4xx؛ خطاهای سمت کاربر (Client Errors)
کدهای وضعیت سری 4xx نشان میدهند که درخواست از سمت کاربر (کلاینت) نامعتبر است یا به دلایلی قابل انجام نیست. این خطاها معمولاً به دلیل اشکال در اطلاعات ارسالی، مجوزها یا ساختار نادرست درخواست رخ میدهند.
- 400 Bad Request: درخواست به دلیل ساختار نادرست یا پارامترهای ناقص، قابل پردازش نیست.
- 401 Unauthorized: دسترسی به منبع نیاز به احراز هویت دارد؛ اما اطلاعات ورود اشتباه یا ناقص است.
- 402 Payment Required: رزرو شده برای استفادههای آینده؛ در حال حاضر استفاده نمیشود.
- 403 Forbidden: سرور درخواست را درک کرده؛ اما اجازه دسترسی به آن را نمیدهد.
- 404 Not Found: منبع مورد نظر روی سرور پیدا نشد.
- 405 Method Not Allowed: روش ارسالشده در درخواست (مثلاً POST) برای این منبع مجاز نیست.
- 406 Not Acceptable: سرور نمیتواند محتوایی مطابق با مشخصات ارسالشده در هدر درخواست (Accept headers) ارائه دهد.
- 407 Proxy Authentication Required: مشابه کد 401؛ اما برای اتصال از طریق پروکسی نیاز به احراز هویت است.
- 408 Request Timeout: کاربر در بازه زمانی مشخصشده از سوی سرور، درخواست را کامل نکرده است.
- 409 Conflict: به دلیل تعارض با وضعیت فعلی منبع، درخواست قابل انجام نیست. معمولاً در ویرایش منابع مشترک کاربرد دارد.
- 410 Gone: منبع بهطور دائم حذف شده و آدرس جایگزینی برای آن وجود ندارد.
- 411 Length Required: درخواست فاقد هدر Content-Length است و سرور آن را نمیپذیرد.
- 412 Precondition Failed: یکی از شرایط تعریفشده در هدر درخواست، در سرور برقرار نیست.
- 413 Request Entity Too Large: حجم بدنه درخواست بیشتر از مقداری است که سرور میتواند پردازش کند.
- 414 Request-URI Too Long: آدرس ارسالشده بیشازحد طولانی است و سرور نمیتواند آن را پردازش کند.
- 415 Unsupported Media Type: فرمت دادههای ارسالشده در درخواست، توسط منبع مورد نظر پشتیبانی نمیشود.
- 416 Requested Range Not Satisfiable: محدودهای که کاربر برای دریافت بخشی از منبع مشخص کرده، با اندازه واقعی آن منبع همخوانی ندارد.
- 417 Expectation Failed: انتظاری که در هدر Expect بیان شده، توسط سرور یا پروکسی قابل برآورده شدن نیست.
استفادههای رایج:
- شکست درخواستهای API با کد 400
- محدودیت دسترسی به محتوا با کدهای 401 و 403
- صفحات گمشده یا حذفشده با کد 404
کدهای وضعیت http سری 5xx؛ خطاهای سمت سرور (Server Errors)
کدهای وضعیت سری 5xx نشان میدهند که درخواست از سمت کاربر معتبر بوده؛ اما سرور هنگام پردازش آن با مشکلی مواجه شده و نتوانسته پاسخ مناسب ارائه دهد.
- 500 Internal Server Error: یک خطای کلی که نشان میدهد مشکلی در سرور رخ داده؛ اما جزئیات مشخص نیست.
- 501 Not Implemented: سرور قابلیت لازم برای انجام درخواست را ندارد یا روش استفادهشده در درخواست را نمیشناسد.
- 502 Bad Gateway: سروری که بهعنوان درگاه (gateway) عمل میکند، پاسخ نامعتبری از سرور بالادستی دریافت کرده است.
- 503 Service Unavailable: سرور موقتاً قادر به پاسخگویی نیست؛ معمولاً به دلیل نگهداری (Maintenance) یا ترافیک بالا.
- 504 Gateway Timeout: سرور در نقش درگاه، پاسخی از سرور دیگر در زمان مناسب دریافت نکرده است.
- 505 HTTP Version Not Supported: سرور از نسخه HTTP استفادهشده در درخواست پشتیبانی نمیکند یا آن را نمیپذیرد.
- 506 Variant Also Negotiates: یک خطای پیکربندی داخلی در سرور که نشان میدهد منبع انتخابشده خود نیز در فرآیند مذاکره (content negotiation) شرکت میکند.
- 507 Insufficient Storage: سرور فضای لازم برای ذخیرهسازی دادهها جهت تکمیل درخواست را ندارد.
- 508 Loop Detected: سرور هنگام پردازش درخواست، یک حلقه بینهایت شناسایی کرده و عملیات را متوقف کرده است.
- 510 Not Extended: برای پردازش این درخواست، نیاز به افزونهها یا اطلاعات تکمیلی بیشتری وجود دارد.
- 511 Network Authentication Required: برای دسترسی به شبکه، احراز هویت از سمت کاربر لازم است. معمولاً در شبکههای عمومی یا محافظتشده دیده میشود.
استفادههای رایج:
- خطاهای کلی یا غیرمنتظره سرور با 500
- اختلال در ارتباط سرور با دیگر سرورها با 502 و 504
- توقف موقت خدمات به دلیل ترافیک بالا یا تعمیرات با 503
- نیاز به ورود به شبکه یا احراز هویت در شبکههای محافظتشده با 511
سخن پایانی
کدهای وضعیت HTTP چیزی فراتر از یک پاسخ فنی سادهاند. آنها زبان مشترک بین سایت شما و موتورهای جستجو هستند. زبانی که اگر آن را درک نکنید، نمیتوانید مسیر ایندکسشدن، رتبهگرفتن و حتی رفع مشکلات سایت را بهدرستی مدیریت کنید. نکتهای که بسیاری از مدیران سایت و حتی برخی از متخصصان سئو از آن غافل میمانند این است که همه خطاها الزاماً نباید دیده شوند تا روی سئو تأثیر بگذارند. حتی یک ریدایرکت اشتباه یا یک کد 404 پنهان، میتواند مسیر و بودجه خزش را مختل کند.
بنابراین، اگر به دنبال سئویی پایدار هستید، پایش منظم Status Codes و تحلیل رفتار سرور، باید بخشی جدانشدنی از برنامههای بهینهسازی شما باشد. این دقیقاً همانجایی است که سئو از حد محتوا فراتر میرود و به درک ساختار فنی سایت گره میخورد.