چرا باید لینکهای محتوای وردپرس را تغییر داد؟
هنگامی که سایت وردپرسی به دامنه جدید انتقال مییابد یا پروتکل از HTTP به HTTPS تغییر میکند، تمام لینکهای داخلی موجود در محتوای پستها و صفحات همچنان به آدرس قدیمی اشاره میکنند. این باعث لینکهای شکسته، مشکل mixed content و افت سئو میشود. تغییر این لینکها با کوئری SQL سریعترین روش موجود است.
پیشنیازها
- قبل از هر تغییری، از دیتابیس وردپرس بکاپ بگیرید.
- دسترسی به phpMyAdmin از طریق کنترل پنل هاست
- دانستن آدرس قدیمی و جدید سایت
تغییر لینکهای محتوا با SQL
در phpMyAdmin، دیتابیس وردپرس را انتخاب کنید، سپس به تب SQL بروید و کوئریهای زیر را اجرا کنید:
-- تغییر لینک در محتوای پستها و صفحات
UPDATE wp_posts
SET post_content = REPLACE(
post_content,
'https://old-domain.com',
'https://new-domain.com'
);
-- تغییر لینک در excerpt پستها
UPDATE wp_posts
SET post_excerpt = REPLACE(
post_excerpt,
'https://old-domain.com',
'https://new-domain.com'
);
-- تغییر لینک در متادیتا
UPDATE wp_postmeta
SET meta_value = REPLACE(
meta_value,
'https://old-domain.com',
'https://new-domain.com'
);
-- تغییر آدرس سایت در تنظیمات
UPDATE wp_options
SET option_value = REPLACE(
option_value,
'https://old-domain.com',
'https://new-domain.com'
)
WHERE option_name IN ('siteurl', 'home', 'upload_path');
تغییر GUID همزمان
معمولاً همراه با لینکهای محتوا، باید GUID پستها را هم بهروز کنید:
UPDATE wp_posts
SET guid = REPLACE(guid, 'https://old-domain.com', 'https://new-domain.com');
نکته مهم: دادههای Serialized
وردپرس برخی دادهها را به صورت Serialized در دیتابیس ذخیره میکند. دستور REPLACE در SQL نمیتواند این دادهها را درست تغییر دهد زیرا طول رشته تغییر میکند. برای این دادهها از ابزار Search Replace DB یا افزونه Better Search Replace استفاده کنید که این مشکل را بهطور خودکار مدیریت میکند.
بررسی نتیجه
پس از اجرای کوئریها:
- کش وردپرس و افزونه کش را پاک کنید.
- چند پست را باز کرده و لینکهای داخلی را بررسی کنید.
- با ابزار Mixed Content Checker مطمئن شوید هیچ لینک HTTP ای باقی نمانده.
- Sitemap را در Yoast SEO بازسازی کنید.
🔄 انتقال سایت به هاست وردپرس میهن هاستینگ
تیم میهن هاستینگ انتقال سایت وردپرس شما را رایگان انجام میدهد. بدون قطعی، بدون از دست رفتن داده.
