Sửa lỗi 404 khi tạo sitemap với Wordpess SEO by Yoast

4.8/5 - (18 đánh giá)

Bạn đang dùng plugin Wordpess SEO by Yoast (còn gọi là Yoast SEO hoặc Wordpess SEO) để tối ưu SEO cho Wordpess và dùng để tạo sitemap cho website/blog? Và khi submit sitemap lên Google Webmasters Tool thì có thông báo về lỗi 404 Not Found. Và bạn thử kiểm tra sitemap của mình theo đường dẫn domain.com/sitemap.xml hoặc domain.com/sitemap_index.xml thì bị trả về lỗi 404 Not Found (lỗi không tìm thấy). Vậy đây là lỗi do plugin Yoast SEO hay lỗi do hosting/server hay lỗi do bạn cấu hình Yoast SEO chưa đúng? Cùng tìm hiểu nguyên nhân và cách sửa lỗi 404 khi tạo sitemap với WordPress SEO ở nội dung bên dưới nhé.

sua-loi-404-khi-tao-sitemap-voi-wordpess-seo-yoast

Hướng dẫn sửa lỗi 404 cho sitemap tạo bởi Yoast SEO

Trước hết, mình xin khẳng định là lỗi 404 của sitemap này không phải do plugin Yoast SEO. Nếu bạn có thời gian có thể đọc trên trang giải đáp bằng tiếng Anh, điều này cũng được khẳng định bởi tác giả của plugin. Vậy nguyên nhân do đâu mà bị lỗi?

Nguyên nhân và cách khắc phục lỗi 404 của sitemap Yoast SEO

Trước khi tìm hiểu nguyên nhân bạn phải chắc chắn là đã bật chức năng tạo sitemap trong plugin Wordpess SEO nhé. Nếu không bật thì lỗi 404 là đương nhiên. Còn nếu bật rồi mà vẫn bị lỗi thì đọc tiếp bên dưới nhé 🙂

1. Bị lỗi do cấu trúc đường dẫn tĩnh (Permalinks) thay đổi.

– Bạn sẽ không biết là có phải lỗi do đường dẫn tĩnh hay không nhưng bạn cứ thử làm như sau. Nếu sửa được thì là do đường dẫn tĩnh, còn không được thì cũng chẳng sao. Bạn truy cập vào trang quản trị Admin -> Cài đặt (Settings) -> Đường dẫn tĩnh (Permalinks) sau đó bấm vào Lưu (Save) mà không cần phải thay đổi bất cứ điều gì.

2. Lỗi do chuyên mục, thẻ tag, nội dung bị loại trừ khỏi sitemap.

Lỗi này bạn sẽ gặp phải khi truy cập vào 1 trong các đường dẫn như /category-sitemap.xml, /post-sitemap.xml, /post_tag-sitemap.xml,….thì bị báo lỗi 404 not found. Điều này có thể do khi thiết lập sitemap trong Yoast SEO bạn đã loại trừ nó ra khỏi sitemap nên nó sẽ bị lỗi.

Bạn có thể khắc phục bằng cách truy cập trang quản trị Admin -> SEO -> XML Sitemaps và xem các mục đó có bị loại trừ khỏi sitemap không.

3. Lỗi do rewrite chưa được thiết lập tương ứng với hosting/sever

Để giải quyết được vấn đề này bạn cần biết hosting/server bạn đang chạy web sử dụng Apache hay sử dụng Nginx. Cùng xem cách khắc phục tương ứng với từng trường hợp sau.

Sử dụng Apache

Nếu bạn đang sử dụng Apache thì chỉ cần thêm đoạn code sau vào file .htaccess trực tiếp trong Admin bằng cách truy cập SEO -> Tools -> File Editor và lưu lại. Nếu bạn không thấy mục sửa file .htaccess trong Admin thì bạn dùng trình quản lý file FTP và sửa file .htaccess trong thư mục public_html (nếu không thấy file .htaccess thì bạn có thể tạo).

Lưu ý: Trước khi làm bạn nên backup lại file .htaccess đề phòng xảy ra lỗi.

# Yoast SEO - XML Sitemap Rewrite Fix
RewriteEngine On
RewriteBase /
RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1 [L]
RewriteRule ^locations.kml$ /index.php?sitemap=wpseo_local_kml [L]
RewriteRule ^geo_sitemap.xml$ /index.php?sitemap=geo [L]
RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L]
RewriteRule ^([a-z]+)?-?sitemap.xsl$ /index.php?xsl=$1 [L]
# END Yoast SEO - XML Sitemap Rewrite Fix

Sử dụng Nginx

Nếu bạn đang dùng Nginx mà sitemap bị lỗi 404 thì mở file cấu hình domain trong Nginx theo đường dẫn /home/domain.com/public_html/nginx.conf  và thêm vào đoạn code sau:

#Yoast sitemap
location ~ ([^/]*)sitemap(.*)\.x(m|s)l$ {
        ## this redirects sitemap.xml to /sitemap_index.xml
	rewrite ^/sitemap\.xml$ /sitemap_index.xml permanent;
        ## this makes the XML sitemaps work
        rewrite ^/([a-z]+)?-?sitemap\.xsl$ /index.php?xsl=$1 last;
	rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
	rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
        ## The following lines are optional for the premium extensions
	## News SEO
        rewrite ^/news-sitemap\.xml$ /index.php?sitemap=wpseo_news last;
	## Local SEO
	rewrite ^/locations\.kml$ /index.php?sitemap=wpseo_local_kml last;
	rewrite ^/geo-sitemap\.xml$ /index.php?sitemap=wpseo_local last;
	## Video SEO
	rewrite ^/video-sitemap\.xsl$ /index.php?xsl=video last;
}

Sau khi thêm xong bạn vẫn bị lỗi 404 thì bạn làm thêm bước dưới đây:

Nếu bạn đang cài plugin W3 Total Cache để tạo cache thì bạn disable tạm thời đi rồi chạy lệnh khởi lại nginx bằng cách gõ service nginx restart trong SSH.

Sau khi khởi động lại Nginx xong bạn kích hoạt lại plugin W3 Total Cache và kiểm tra lại xem sitemap còn bị lỗi 404 not found nữa không nhé.

Lời kết

Khi di chuyển blog từ hosting sử dụng Apache lên VPS dùng Ngix mình đã bị lỗi sitemap 404 này và mình đã tìm ra cách này để khắc phục và mình đã làm thành công. Nếu bạn đang bị lỗi thì hãy áp dụng nó thử xem sao nhé.

Hi vọng những hướng dẫn trên giúp bạn khắc phục được lỗi bạn đang gặp phải. Hãy cho mình biết ý kiến của bạn về bài viết bằng cách sử dụng ô bình luận ở dưới nhé 🙂

Nguyễn Hùng

Internet là nơi mình học được những gì về Wordpress, SEO, SEM, MMO và kiến thức máy tính. Những chia sẻ của mình là những thứ mình học được và đã làm thành công, có thể nó chưa được hoàn hảo nhưng nó sẽ hữu ích với bạn.

Nhận thông báo
Thông báo qua email khi
guest

7 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
Yến

Cho em hỏi, sao website của em không hiển thị post-sitemap.xml khi kiểm tra trong google webmaster tool ạ

dep_trai_nhat_xom

May quá sửa được từ bước 1, tks tác giả

Tin

Bài viết hay cám ơn bạn

khuongit

Bài viết hay. cảm ơn tác giả

Như Anh

Bạn ơi host của mình là nginx nhưng mình ko tìm thấy file đó nginx.conf. Vậy phải làm sao?

Tin

cảm ơn tác giả bài viết rất hữu ích!!!