Fix lỗi Either “offers”, “review”, or “aggregateRating” should be specified 2025

Nếu bạn sử dụng plugin WooCommerce và các sản phẩm của bạn không có review thì sẽ gặp phải thông báo Either “offers”, “review”, or “aggregateRating” should be specified như ảnh phía dưới là hết sức bình thường, theo schema mặc định của WooCommerce cần có review, lượt rating thì mới không gặp phải thông báo này.

Đây là bài viết ngắn nhằm giúp cho những ai mới tiếp xúc với với công cụ Google search console nhanh chóng nắm được thông báo lỗi này, chúng không quá quan trọng nên bạn đừng quá lo lắng.

Schema là gì?

Schema là một tập hợp các dữ liệu có cấu trúc mà bạn có thể thêm vào trang web của mình để giúp các công cụ tìm kiếm hiểu rõ hơn về nội dung của trang. Schema được phát triển bởi Schema.org, một dự án hợp tác giữa Google, Bing, Yahoo và Yandex, nhằm tạo ra một từ điển thống nhất để các công cụ tìm kiếm hiểu nội dung web dễ dàng hơn.

Khi bạn thêm schema markup vào trang web của mình, các công cụ tìm kiếm có thể hiển thị nội dung đó theo cách phong phú hơn trên trang kết quả tìm kiếm, chẳng hạn như:

  • Rich Snippets: Hiển thị các thông tin bổ sung như đánh giá, giá cả, tình trạng hàng hóa, thời gian làm việc, v.v.
  • Knowledge Graph: Cung cấp thông tin chi tiết về người, địa điểm, hoặc sự vật trực tiếp trong kết quả tìm kiếm.
  • Câu hỏi thường gặp (FAQ): Hiển thị các câu hỏi và câu trả lời ngay trên trang kết quả tìm kiếm.
  • Sự kiện (Event): Hiển thị thông tin về sự kiện như thời gian, địa điểm, và cách thức tham gia.

Các loại schema phổ biến bao gồm:

  • Article: Dành cho các bài viết hoặc blog.
  • Product: Cho các sản phẩm bán trên trang web.
  • Local Business: Thông tin cho các doanh nghiệp địa phương.
  • Event: Cho các website liên quan đến sự kiện.
  • FAQ: Cho các liên quan đến câu hỏi thường gặp trên website
  • Recipe: Dành cho các công thức nấu ăn.

Việc sử dụng schema markup không trực tiếp cải thiện xếp hạng SEO, nhưng nó có thể tăng cường khả năng hiển thị của trang web trong kết quả tìm kiếm và thu hút người dùng nhấp vào kết quả của bạn.

function wc_add_product_structed_data( $markup, $product ) {
	$id = $product->get_id();

	// price
	unset($markup['offers'][0]['priceSpecification']);


	// rating
	unset($markup['aggregateRating']);
	if(empty($product->get_average_rating()) || $product->get_average_rating() == 0) {
		$vote = 5;
		$count = 1;
	} else {
		$vote = $product->get_average_rating();
		$count = $product->get_review_count();
	}
	$markup['aggregateRating'] = array(
		'@type'       => 'AggregateRating',
		'ratingValue' => $vote,
		'reviewCount' => $count,
	);

	// review
	unset($markup['review']);
	global $post;
    $author_id = $post->post_author;

	$markup['review'] = array(
		'@type'       => 'Review',
		'author' => array(
			'@type'       => 'Person',
			'name'       => get_the_author_meta( 'display_name', $author_id),
		),
	);

	return $markup;
}
add_filter( 'woocommerce_structured_data_product', 'wc_add_product_structed_data', 10, 2 );

 

Tags:

Bình luận

0 bình luận

  • Hãy là người đầu tiên để lại bình luận cho bài viết này!