
به اشتراک بگذارید

به اشتراک بگذارید
سئو | بلاگ وبداده
لینکهای شکسته و خطای 404 وردپرس؛ شناسایی و رفع کامل


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressApache# ریدایرکت دائمی یک صفحه حذفشده به نزدیکترین صفحه مرتبط
Redirect 301 /old-post/ https://example.com/new-post/
# ریدایرکت یک دسته یا مسیر کامل
Redirect 301 /blog/2019/ https://example.com/blog/
# نکته: این خطوط را بعد از بلاک "# END WordPress" قرار ندهید؛
# آنها را بالای بخش "# BEGIN WordPress" بنویسید.Apache| علت خطا | نشانه | راهحل درست | ابزار پیشنهادی |
|---|---|---|---|
| بههمریختن پیوند یکتا | همهی نوشتهها 404، صفحه اصلی سالم | ذخیره دوباره پیوندهای یکتا / بازسازی .htaccess | پیشخوان وردپرس |
| حذف یا تغییر آدرس نوشته | یک صفحهی خاص 404 میدهد | ریدایرکت 301 به نزدیکترین صفحه مرتبط | Redirection / AIOSEO |
| لینک خارجی از کار افتاده | کلیک روی لینک به سایت دیگر، خطا | جایگزینی منبع معتبر یا حذف لینک | Broken Link Checker |
| حذف فایل رسانه | تصویر نمایش داده نمیشود | بارگذاری دوباره فایل یا اصلاح آدرس تصویر | کتابخانه رسانه |
| غیرفعال بودن mod_rewrite | پیوند یکتا اصلاً کار نمیکند | فعالسازی ماژول در سطح سرور | پشتیبانی هاست |
«خطاهای 404 بر عملکرد جستجوی سایت اثر نمیگذارند و اگر مطمئنید که آن آدرسها نباید وجود داشته باشند، میتوانید با خیال راحت نادیدهشان بگیرید.» — راهنمای رسمی Google Search Console
این کلاسیکترین حالت خرابی پیوند یکتاست. کافی است به «تنظیمات ← پیوندهای یکتا» بروید و بدون تغییر، روی «ذخیره تغییرات» بزنید تا قوانین بازنویسی آدرس بازسازی شود. اگر رفع نشد، فایل .htaccess را با محتوای پیشفرض وردپرس جایگزین کنید و مطمئن شوید ماژول mod_rewrite روی سرور فعال است.
خودِ یک 404 طبیعی، مستقیماً رتبهی شما را پایین نمیآورد؛ گوگل آن را بخش عادی وب میداند. آنچه آسیب میزند از دست رفتن ترافیک و اعتبار لینکِ صفحاتی است که قبلاً رتبه یا بکلینک داشتند و حالا 404 میدهند، بهعلاوهی تجربهی بد کاربری. پس 404هایی که از لینکهای واقعی میآیند را با ریدایرکت 301 رفع کنید.
ریدایرکت 301 یعنی «انتقال دائمی» و بیشترِ اعتبار لینک را به آدرس جدید منتقل میکند؛ این همان چیزی است که برای صفحات حذف یا جابهجاشده میخواهید. ریدایرکت 302 یعنی «انتقال موقت» و برای زمانی است که قرار است آدرس قدیمی دوباره برگردد. برای رفع همیشگی لینک شکسته، تقریباً همیشه 301 انتخاب درست است.
معمولاً نه. گوگل ریدایرکتِ انبوهِ صفحات نامرتبط به صفحهی اصلی را «soft 404» تلقی میکند و این کار سردرگمی میسازد. اگر صفحهی جایگزینِ مرتبط دارید، 301 به همان بزنید؛ اگر ندارید، بگذارید صفحه کد 404 واقعی برگرداند و یک صفحهی 404 مفید با جستجو و لینکهای پیشنهادی نمایش دهید.
افزونهی Broken Link Checker (نسخههای AIOSEO و WPMU DEV) محبوبترین گزینه است چون رایگان است و کار را از داخل پیشخوان انجام میدهد. اگر میخواهید فشار اسکن روی سرور کم باشد، نسخههایی که اسکن را روی سرورِ خودشان (ابری) انجام میدهند بهترند. برای سایتهای بزرگ، ابزار خارجی مثل Screaming Frog دقیقتر است.
تغییر ساختار پیوند یکتا روی سایتِ جاافتاده ریسک بالایی دارد چون همهی آدرسهای قبلی عوض میشوند. اگر مجبورید، حتماً قاعدهی ریدایرکت 301 از الگوی آدرس قدیمی به جدید را بنویسید (افزونهی Redirection برای این کار «نظارت بر تغییر اسلاگ» دارد) تا آدرسهای ایندکسشده به 404 نخورند.
اگر در ریشهی سایت فایل .htaccess دارید و ویرایشش روی پیوند یکتا اثر میگذارد، روی آپاچی هستید. سادهترین راه قطعی، پرسیدن از پشتیبانی هاست است. این موضوع مهم است چون روی Nginx فایل .htaccess نادیده گرفته میشود و قوانین ریدایرکت باید در کانفیگ سرور یا از طریق افزونه اعمال شوند.
هر دو مهماند اما به دلایل متفاوت. لینک داخلیِ شکسته مستقیماً تجربهی کاربر و خزش سایت شما را خراب میکند و در اولویت است. لینک خارجیِ شکسته بیشتر روی اعتبار و تجربهی محتوای شما اثر میگذارد؛ بازدیدکنندهای که به یک منبعِ از کار افتاده میرسد، اعتمادش کم میشود. هر دو را در بازبینی ماهانه اصلاح کنید.