Google Index Checker Miễn Phí Cho SEO

ByNgọc Trai MKT16/10/2025in SEO 0
google-index-checker-free-seo

Bạn đang vật lộn với việc kiểm tra trạng thái index hàng trăm URL một cách thủ công? Chi phí cho các công cụ SEO trả phí ngày càng cao trong khi ngân sách marketing eo hẹp? Bài viết gốc của Andrew Charlton trên Keywords in Sheets đã giới thiệu một giải pháp miễn phí khá thú vị, nhưng vẫn còn nhiều điểm cần hoàn thiện. Trong phân tích chuyên sâu này, Ngoc Trai MKT sẽ đánh giá kỹ lưỡng giải pháp Google Index Checker bằng Google Sheets, chỉ ra những ưu điểm và hạn chế thực tế, đồng thời cung cấp góc nhìn chuyên môn từ đội ngũ SEO với hơn 10 năm kinh nghiệm trong lĩnh vực này.

Thank you for reading this post, don't forget to subscribe!

Là một chuyên gia SEO, tôi hiểu rõ tầm quan trọng của việc theo dõi trạng thái index của các URL trên website. Trong bối cảnh Google liên tục có những cập nhật thuật toán mạnh mẽ như đợt March 2024 core update, việc nhiều website bị deindex hoặc mất thứ hạng là điều không còn quá xa lạ. Vì vậy, việc sở hữu một công cụ kiểm tra index hiệu quả, lại còn miễn phí, là một lợi thế lớn cho các chuyên gia SEO, digital marketer hay chủ doanh nghiệp. Bài viết này sẽ hướng dẫn mình cách sử dụng Google Sheets và Apify để kiểm tra trạng thái index của một danh sách URL, hoàn toàn miễn phí với khoảng 1.500 yêu cầu mỗi tháng. Đây là một giải pháp thiết thực, giúp mình theo dõi và phản ứng kịp thời với các vấn đề index, đặc biệt hữu ích trong việc duy trì hiệu suất SEO trong bối cảnh các cập nhật từ Google đang diễn ra ngày càng thường xuyên và khó lường.

Hướng dẫn sử dụng mẫu Google Sheets để check Google Index Status

Giải pháp google index checker này được xây dựng dựa trên nền tảng Apify và Google Sheets, cho phép mình tự động hóa quá trình kiểm tra trạng thái lập chỉ mục (index status) của hàng loạt URL. Mình có thể xem qua ảnh GIF bên dưới để hình dung cách hoạt động trước khi đi vào chi tiết nhé.

Ảnh động demo cách hoạt động của công cụ kiểm tra index trên Google Sheets và ApifyXem qua ảnh động để biết cách công cụ hoạt động.

Apify là một nền tảng dễ dùng, cho phép bất kỳ ai cũng có thể xây dựng các bộ web scraper đáng tin cậy. Mình không cần phải là một nhà phát triển đâu, việc bắt đầu rất đơn giản. Tôi chọn Apify vì chi phí vận hành khá rẻ, và mình còn được tặng 5$ miễn phí mỗi tháng. Số tiền này đủ để mình thực hiện khoảng 1.500 lượt kiểm tra index mỗi tháng mà không tốn phí. Một công cụ kiểm tra SEO miễn phí khá tốt đúng không?

1. Đăng ký tài khoản Apify

Đầu tiên, hãy truy cập trang Google Search Scraper agent trên Apify và nhấp vào nút Try for free.

Giao diện Apify với nút 'Try for free' trên trang Google Search Scraper

Sau đó, một biểu mẫu đăng ký sẽ hiện ra. Mình có thể đăng ký bằng tài khoản Google, GitHub hoặc địa chỉ email.

Biểu mẫu đăng ký tài khoản Apify

2. Lấy API Token của bạn

Khi đã đăng nhập, mình có thể lấy API token bằng cách truy cập vào mục settings -> integrations. Mình cần có Apify API token để chạy scraper từ Google Sheets, token này cho phép Google Sheets giao tiếp với Apify.

Hãy sao chép API token của mình.

Vị trí API token trên trang tích hợp Apify

3. Thêm API Token vào mẫu Google Sheets

Nếu mình chưa làm, hãy sao chép mẫu Google Sheets này. Sau đó, thêm API token của mình vào ô D14 trong sheet ‘Start Here’. Đây là điều duy nhất mình cần làm trong sheet để bắt đầu.

Nhập API token vào ô D14 trong sheet 'Start Here' của Google Sheets

4. Chạy script Index Checker

Để chạy script, mình cần đảm bảo:

  1. Mình có ba tiêu đề: URLs (A1), Index Check (B1) và Status (C1).
  2. Mình thêm tất cả các URL vào Cột A, bên dưới tiêu đề URLs.

Script này kiểm tra trạng thái index của các URL bằng cách truy vấn Google với toán tử site:, ví dụ: site:example.com/subfolder/page. Tôi phải nói thật là phương pháp này chắc chắn không hoàn hảo.

Theo kinh nghiệm của tôi, phương pháp dùng toán tử `site:` chỉ mang tính chất tham khảo nhanh và tổng quan. Nó không phải là một công cụ seo index checker chính xác tuyệt đối để đánh giá trạng thái lập chỉ mục cụ thể của từng URL. Google có thể hiển thị kết quả không đầy đủ hoặc bị bộ lọc riêng. Để xác định chính xác trạng thái index của một URL, mình cần phải sử dụng URL Inspection Tool trong Google Search Console. Công cụ này sẽ cung cấp thông tin chi tiết và chính xác nhất từ phía Google về việc trang có được lập chỉ mục hay không, có lỗi gì không, và lần cuối được thu thập thông tin là khi nào. Mình có thể tìm hiểu thêm về cách sử dụng công cụ quan trọng này qua hướng dẫn sử dụng Google Search Console của mình để tối ưu hiệu quả SEO nhé.

Tích hợp Script vào Google Sheets của riêng bạn

Mình muốn sao chép script này vào các mẫu Google Sheets của riêng mình ư? Đây là đoạn code mình cần. Một vài lưu ý nhỏ:

1. Kích thước batch mặc định là 10 (số lượng URL Apify scrape trong một lần). Apify có thể xử lý nhiều hơn trong một batch (và thậm chí có thể rẻ hơn), mình có thể thay đổi điều này trong script ở dòng tôi đã comment (dòng 53).

2. API Token đang được trích xuất từ sheet ‘Start Here’ ở ô D14. Nếu mình muốn thay đổi vị trí này, mình cần chỉnh sửa hàm getConfig.

// Add custom menu on open
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('Index Checker')
    .addItem('Check URLs', 'indexchecker')
    .addToUi();
}

// Retrieve API token from 'Start Here' sheet within the template
function getConfig() {
  const configSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Start Here");
  const API_TOKEN = configSheet.getRange("D14").getValue();
  if (API_TOKEN === '') {
    throw new Error('You need to enter your Apify API Token in the "Start Here" Sheet');
  }
  return { API_TOKEN };
}

// Get the API token and build API URL
const config = getConfig();
// Build the API URL using the retrieved token
const API_URL = "https://api.apify.com/v2/acts/apify~google-search-scraper/run-sync-get-dataset-items?token=" + config.API_TOKEN + "&format=json";

// Main function to initiate the index check
function indexchecker() {
  const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const indexRange = ss.getRange('B:B').getValues();
  const indexLastRow = getLastRowCol(indexRange) + 1;
  const lastRowDiff = ss.getLastRow() - indexLastRow + 1;
  const urlRange = ss.getRange(indexLastRow, 1, lastRowDiff).getValues();
  checkAllUrls(ss, urlRange, indexLastRow);
}

// Get the last row of a single column
function getLastRowCol(range) {
  let rowNum = 0;
  let blank = false;
  for (let row = 0; row < range.length; row++) {
    if (range
[0] === "" && !blank) { rowNum = row; blank = true; } else if (range
[0] !== "") { blank = false; } } return rowNum; } // Check all URLs for their index status in batches function checkAllUrls(ss, urlRange, indexLastRow) { // Batch size currently set to 10. Try to increase this if you want to test more URLs at once. const batchSize = 10; for (let i = 0; i < urlRange.length; i += batchSize) { let batchUrls = urlRange.slice(i, i + batchSize).map(row => row[0] ? `site:${row[0]}` : ''); // Filter out empty URLs before making the API call const nonEmptyUrls = batchUrls.filter(url => url !== ''); updateStatus(ss, "Loading..."); let batchResults = {}; if (nonEmptyUrls.length > 0) { try { batchResults = fetchSerps(nonEmptyUrls); } catch (error) { updateStatus(ss, "Error occurred while fetching data. Please check your setup."); return; } } batchUrls.forEach((url, j) => { if (url !== '') { const site = url.replace('site:', ''); const check = batchResults[site]; ss.getRange(indexLastRow + i + j, 2).setValue(check); } else { // If the URL is empty, set the status as empty ss.getRange(indexLastRow + i + j, 2).setValue(''); } }); updateStatus(ss, ((i + batchSize) <= urlRange.length ? (i + batchSize) : urlRange.length) + '/' + urlRange.length + ' URLs checked'); } } // Update status on spreadsheet function updateStatus(ss, status) { ss.getRange(1, 3).setValue(status); SpreadsheetApp.flush(); } // Fetch SERPs from Apify API function fetchSerps(queries) { const inputPayload = { "queries": queries.join("\n"), "mobileResults": false, "csvFriendlyOutput": false, "languageCode": "", "maxConcurrency": 10, "saveHtml": false, "saveHtmlToKeyValueStore": false, "includeUnfilteredResults": false } const options = { 'method': 'POST', 'contentType': 'application/json', 'headers': { 'Content-Type': 'application/json' }, 'payload': JSON.stringify(inputPayload) }; let response; try { response = JSON.parse(UrlFetchApp.fetch(API_URL, options)); } catch (error) { throw new Error('API call failed'); } const results = {}; response.forEach(result => { const site = result.searchQuery.term.replace('site:', ''); results[site] = result.resultsTotal === 0 ? 'Not indexed' : 'Indexed'; }); return results; }

Theo quan điểm của tôi, việc có thể tùy chỉnh các script như thế này là một điểm cộng lớn cho các chuyên gia SEO. Nó không chỉ giúp mình hiểu rõ hơn về cách các công cụ hoạt động mà còn cho phép mình điều chỉnh để phù hợp với quy mô và yêu cầu cụ thể của từng dự án. Khả năng tự động hóa và tùy biến các tác vụ SEO thông qua Google Sheets và Google Apps Script là một kỹ năng rất giá trị, đặc biệt trong việc quản lý các chiến dịch SEO lớn. Để đảm bảo website luôn hoạt động hiệu quả và được Google index đầy đủ, mình có thể tham khảo technical SEO checklist 2025 của tôi nhé.

Ảnh của Andrew Charlton cùng thú cưng

Cảm ơn các bạn đã ghé thăm 👋

Tôi là Andrew Charlton, một “con mọt” Google Sheets đứng sau Keywords in Sheets. 🤓

Có câu hỏi nào không? Hãy liên hệ với tôi qua mạng xã hội hoặc để lại bình luận bên dưới nhé 👇

Kiểm tra Google Index là bước không thể thiếu trong chiến lược SEO cho mọi trang web. Mặc dù giải pháp Google Sheets + Apify mang lại lợi ích miễn phí đáng kể, nhưng độ chính xác và tính ổn định vẫn còn hạn chế. Ngoc Trai MKT với kinh nghiệm tối ưu index cho hàng trăm website tại thị trường Việt Nam, chúng tôi hiểu rõ những thách thức bạn đang đối mặt. Đừng để vấn đề index status làm chậm tiến độ chiến dịch SEO của bạn. Liên hệ ngay với Ngoc Trai MKT tại https://ngoctraimkt.com/ để nhận giải pháp kiểm tra và tối ưu index toàn diện, chuyên nghiệp nhất cho website của bạn.

Related Posts