Phân tích từ khóa từ danh sách tiêu đề bài viết

Việc phân tích từ khóa xuất hiện nhiều nhất trong tiêu đề bài viết sẽ giúp bạn nắm bắt xu hướng nội dung, tối ưu chiến lược SEO hoặc đơn giản là khám phá chủ đề đang được lặp lại nhiều. Dưới đây là cách bạn có thể thực hiện việc này bằng PHP trong WordPress.

Phân tích từ khóa từ danh sách tiêu đề bài viết

Mục tiêu

  • Trích xuất bigrams (cặp từ khóa) phổ biến nhất từ tất cả tiêu đề bài viết
  • Loại bỏ các từ vô nghĩa (stop words)
  • Hiển thị danh sách 100 cặp từ khóa xuất hiện nhiều nhất

Mã nguồn PHP để phân tích từ khóa

Bạn sử dụng đoạn mã này để phân tích từ khóa từ danh sách tiêu đề bài viết.

<?php
// Danh sách từ vô nghĩa để loại bỏ
$stopwords = array('từ', 'vô', 'nghĩa');

// Lấy tất cả bài viết
$query = new WP_Query(array(
    'post_type' => 'post',
    'posts_per_page' => -1,
    'fields' => 'ids', // chỉ lấy ID để tiết kiệm RAM
));

$all_post_title = '';

if ($query->have_posts()) {
    foreach ($query->posts as $post_id) {
        $all_post_title .= get_the_title($post_id) . ' ';
    }
}

if ($all_post_title != '') {
    $all_post_title = trim($all_post_title);
    $all_post_title = preg_replace('~[^\\pL\d\s]+~u', '', $all_post_title); // Loại bỏ ký tự lạ
    $all_post_title = mb_strtolower($all_post_title);
    $all_post_title = preg_replace('/\s+/', ' ', $all_post_title); // Xử lý khoảng trắng

    $title_arr = explode(' ', $all_post_title);
    $keyword_arr = [];

    // Ghép cặp từ khóa (bigrams)
    for ($i = 0; $i < count($title_arr) - 1; $i++) {
        $first = $title_arr[$i];
        $second = $title_arr[$i + 1];

        // Bỏ qua nếu từ nằm trong stopwords
        if (in_array($first, $stopwords) || in_array($second, $stopwords)) {
            continue;
        }

        $keyword_arr[] = $first . ' ' . $second;
    }

    $keyword_arr = array_unique($keyword_arr);

    if ($keyword_arr) {
        $keyword_count_arr = [];

        foreach ($keyword_arr as $keyword) {
            if (str_word_count($keyword) > 1) {
                $keyword_count_arr[$keyword] = substr_count(' ' . $all_post_title . ' ', ' ' . $keyword . ' ');
            }
        }

        arsort($keyword_count_arr);

        $index = 0;
        echo '<ul>';
        foreach ($keyword_count_arr as $keyword => $count) {
            echo '<li>';
            echo '<span class="uk-float-left">' . esc_html($keyword) . '</span>';
            echo '<span class="uk-float-right">' . intval($count) . '</span>';
            echo '<div class="uk-clearfix"></div>';
            echo '</li>';
            $index++;
            if ($index > 100) break;
        }
        echo '</ul>';
    }
}
?>

Ví dụ kết quả

Sau khi chạy đoạn mã trên để phân tích từ khóa từ danh sách tiêu đề bài viết tại Init HTML, mình có được danh sách từ khóa:

  • sử dụng xuất hiện 47 lần
  • cài đặt xuất hiện 30 lần
  • bài viết xuất hiện 28 lần
  • miễn phí xuất hiện 28 lần
  • trong wordpress xuất hiện 25 lần
  • hiệu ứng xuất hiện 25 lần
  • thiết kế xuất hiện 23 lần
  • hướng dẫn xuất hiện 23 lần
  • cho trang xuất hiện 21 lần
  • hình ảnh xuất hiện 20 lần
  • trang wordpress xuất hiện 19 lần
  • trang web xuất hiện 19 lần

Gợi ý mở rộng

  • Sử dụng biểu đồ hoặc bảng để trực quan hóa dữ liệu
  • Kết hợp với biểu đồ từ Chart.js hoặc thư viện JS khác
  • Phân tích theo từng năm/tháng (lọc bài viết theo ngày)

Kết luận

Với đoạn mã trên, bạn dễ dàng phân tích những cặp từ khóa phổ biến nhất trong tiêu đề bài viết – một cách đơn giản nhưng rất hiệu quả để đánh giá chất lượng và xu hướng nội dung website.

Chúc các bạn thành công!

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...