Hướng dẫn redirect link 404 về trang phù hợp trong WordPress

Một vấn đề thường thấy là các liên kết 404 tạo ra thường được mọi người trỏ về trang chủ. Điều này có thật sự cần thiết, và có cách làm nào tốt hơn không. Code Tốt xin chia sẻ một số phương án.

Tầm quan trọng của việc khắc phục lỗi liên kết 404

Code Tốt đã có những dự án vận hành website với số lượng liên kết 404 lớn và nhận thấy nó có ảnh hưởng rất lớn tới khả năng index và thứ hạng của trang. Mục tiêu của việc điều chỉnh liên kết 404 thành redirect hoặc mã 410 là giúp giảm dần các trang 404 sớm hơn so với bot Google đọc và cào lại. Vì vậy, dưới đây là một số hướng dẫn được Code Tốt chia sẻ từ kinh nghiệm dịch vụ bảo trì website của mình.

Redirect liên kết 404 của trang có nhiều sản phẩm hoặc bài viết

Khi liên kết bị gãy do số bài viết trên trang bị giảm (ví dụ bạn xoá một loạt bài viết), các liên kết 404 của các trang phía sau cùng sẽ bị hỏng.

Ví dụ: https://codetot.vn/san-pham/page/100 (không có trang 100)

Cách xử lý: bạn thêm đoạn code sau vào trong file functions.php của giao diện WordPress đang sử dụng (thêm vào dưới cùng).

add_action('template_redirect', 'codetot_fix_404_pagination_url');

/** 
 * Fix 404 pagination urls
 *
 * @package codetot-maintenance
 * @author codetot
 * @since 0.0.1
 * @link https://codetot.vn
 **/
function codetot_fix_404_pagination_url() {
	if ( ! is_404() ) return;
	
	$current_url = $_SERVER['REQUEST_URI'];

	$is_pagination_url = preg_match('/^(.*)(\/page\/([0-9]+))/', $current_url, $is_pagination_urls);
	$slug = $is_pagination_urls[1] ?? '';

	if ( !empty( $slug ) ) {
		wp_redirect(home_url('/' . $slug), 301);
		exit;
	}
}

Redirect các liên kết 404 thuộc về WooCommerce

Sử dụng WooCommerce, các liên kết 404 đến từ thẻ tag sản phẩm hoặc sản phẩm bị xoá cũng gây ảnh hưởng lớn.

Nếu bạn đang có các link sản phẩm dạng codetot.vn/san-pham/bao-tri-website và sau khi audit web có tiến hành gỡ bỏ, hãy lưu ý chắc chắn các liên kết này được chuyển tiếp về trang cửa hàng/shop thay vì trang chủ.

add_action('template_redirect', 'codetot_fix_404_woocommerce_pagination_urls');

/** 
 * Fix 404 pagination urls for WooCommerce
 *
 * @package codetot-maintenance
 * @author codetot
 * @since 0.0.1
 * @link https://codetot.vn
 **/
function codetot_fix_404_woocommerce_pagination_urls() {
	if ( ! is_404() ) return;
	
	$current_url = $_SERVER['REQUEST_URI'];

        if ( strpos($current_url, '/tu-khoa-san-pham/') !== false || strpos($current_url, '/san-pham/') !== false ) {
            wp_redirect( home_url('/shop/'), 301);
            exit;
        }
}

Đánh giá post

Bài viết liên quan