Google Search API: Cách lấy dữ liệu SERP bằng REST API cho ứng dụng
Khi xây dựng công cụ SEO, hệ thống theo dõi thứ hạng từ khóa hoặc nền tảng nghiên cứu thị trường, dữ liệu từ Google Search có thể giúp ứng dụng hiểu được những trang đang xuất hiện trên kết quả tìm kiếm. Tuy nhiên, việc tự thu thập dữ liệu SERP, xử lý HTML, quản lý proxy và chuẩn hóa kết quả thường làm tăng đáng kể độ phức tạp của hệ thống.
Một Google Search API giúp đơn giản hóa quy trình này: ứng dụng gửi truy vấn qua HTTP và nhận dữ liệu có cấu trúc để xử lý tiếp. Trong bài viết này, chúng ta sẽ tìm hiểu cách lấy Google SERP data bằng REST API, điều khiển quốc gia/ngôn ngữ, phân trang kết quả và tích hợp vào ứng dụng PHP hoặc Laravel.
Google Search API là gì?
Google Search API trong ngữ cảnh bài viết này là một giao diện lập trình cho phép ứng dụng truy vấn dữ liệu kết quả tìm kiếm và nhận phản hồi có cấu trúc, thường ở định dạng JSON. Dữ liệu có thể bao gồm tiêu đề, URL, đoạn mô tả và vị trí của kết quả organic, tùy endpoint và loại kết quả được hỗ trợ.
Cần phân biệt giữa API của một nhà cung cấp dữ liệu SERP và các API tìm kiếm chính thức có phạm vi hoặc cách trả kết quả riêng. Trước khi chọn giải pháp, hãy kiểm tra nguồn dữ liệu, các trường được trả về, giới hạn truy vấn, cách tính quota và điều khoản sử dụng phù hợp với ứng dụng của bạn.
Với Google Search API của SerpScraper.dev, developer có thể gửi keyword và các tham số tìm kiếm, sau đó xử lý phản hồi JSON thay vì tự viết toàn bộ pipeline thu thập và phân tích SERP.

Khi nào nên dùng SERP API?
Một SERP API có thể phù hợp với nhiều loại ứng dụng:
- Theo dõi thứ hạng từ khóa: thu thập vị trí organic cho một danh sách keyword theo lịch.
- Nghiên cứu đối thủ: kiểm tra domain và trang đích đang xuất hiện cho một truy vấn.
- SEO reporting: tạo báo cáo nội bộ từ dữ liệu tìm kiếm có cấu trúc.
- Nghiên cứu thị trường: so sánh kết quả theo quốc gia hoặc ngôn ngữ.
- Pipeline dữ liệu cho AI: cung cấp dữ liệu tìm kiếm làm ngữ cảnh cho hệ thống phân tích hoặc ứng dụng LLM.
- Sản phẩm SEO và marketing: xây dựng dashboard, công cụ nghiên cứu keyword hoặc tính năng phân tích SERP.
SERP API không tự thay thế toàn bộ chiến lược SEO. Dữ liệu cần được lưu trữ, so sánh theo thời gian và diễn giải trong bối cảnh phù hợp; kết quả có thể thay đổi theo truy vấn, khu vực, ngôn ngữ và thời điểm lấy dữ liệu.
Gửi request đầu tiên tới Google Search API
SerpScraper.dev cung cấp endpoint web search dạng REST. Theo tài liệu, endpoint tìm kiếm web là GET /api/v1/webs-search. API key được truyền qua tham số token.
Ví dụ request bằng cURL:
curl "https://serpscraper.dev/api/v1/webs-search?keyword=laravel+seo&gl=US&hl=en&token=YOUR_API_KEY"
Thay YOUR_API_KEY bằng token của bạn. Trong môi trường production, hãy lưu token trong biến môi trường hoặc secret manager; không nhúng API key vào mã frontend công khai, repository public hoặc log có thể truy cập rộng rãi.
Tạo tài khoản và lấy token tại SerpScraper.dev, sau đó tham khảo tài liệu API để xem cấu trúc response và các tham số được hỗ trợ.
Một response thành công có thể có envelope chung tương tự:
{
"request": {
"keyword": "laravel seo",
"page": 1,
"size": 10
},
"data": {
"items": [
{
"position": 1,
"title": "Example page title",
"link": "https://example.com/page",
"description": "A short description from the search result."
}
]
},
"in_seconds": 0.31
}
Đây là ví dụ minh họa cấu trúc, không phải dữ liệu SERP cố định. Hãy dựa vào response thực tế của endpoint để xử lý các trường có thể có hoặc không có.
Các tham số quan trọng: keyword, gl, hl, page và size
Một request thường bắt đầu với keyword và có thể điều chỉnh khu vực, ngôn ngữ cùng số lượng kết quả mong muốn.
| Tham số | Ý nghĩa | Ví dụ |
|---|---|---|
keyword |
Truy vấn cần tìm | laravel seo |
gl |
Quốc gia mục tiêu | US, GB, VN |
hl |
Ngôn ngữ hiển thị kết quả | en, vi |
page |
Trang kết quả cần lấy | 1, 2, 3 |
size |
Số kết quả yêu cầu trong một trang | 10, 50, 100 |
Hãy xem API documentation trước khi triển khai để xác nhận giới hạn tham số hiện hành của endpoint bạn sử dụng. Số lượng kết quả thực tế có thể khác số lượng yêu cầu do giới hạn của nguồn dữ liệu hoặc nội dung trả về.
Lấy nhiều kết quả bằng pagination
Nếu ứng dụng cần thu thập nhiều kết quả cho cùng một keyword, có thể dùng page để lấy các trang tiếp theo. Ví dụ, ứng dụng yêu cầu 100 kết quả và mỗi response thực tế có 10 kết quả thì cần khoảng 10 request, miễn là các trang đều có đủ dữ liệu.
Nếu API hỗ trợ size=100 cho endpoint và truy vấn cụ thể, bạn có thể thử yêu cầu 100 kết quả trong một request. Tuy nhiên, không nên mặc định rằng đặt size=100 sẽ luôn trả về đủ 100 kết quả organic. Hãy kiểm tra số item thực tế trong data.items, đồng thời tránh xử lý trùng kết quả khi phân trang.
Với tác vụ chạy hàng loạt, nên thiết kế pagination có điểm dừng rõ ràng: dừng khi đạt số kết quả mong muốn, response không còn item, gặp lỗi không thể retry hoặc chạm giới hạn truy vấn đã cấu hình.
Tích hợp Google Search API với PHP và Laravel
Nếu ứng dụng sử dụng PHP hoặc Laravel, bạn có thể gọi endpoint qua HTTP client của Laravel. Ví dụ dưới đây minh họa cách gửi request và kiểm tra lỗi; hãy điều chỉnh theo phiên bản Laravel và cấu trúc response thực tế của dự án.
use Illuminate\Support\Facades\Http;
$response = Http::timeout(15)
->get('https://serpscraper.dev/api/v1/webs-search', [
'keyword' => 'laravel seo',
'gl' => 'US',
'hl' => 'en',
'page' => 1,
'size' => 10,
'token' => config('services.serpscraper.token'),
]);
$response->throw();
$payload = $response->json();
$items = data_get($payload, 'data.items', []);
foreach ($items as $item) {
$title = data_get($item, 'title');
$url = data_get($item, 'link');
$position = data_get($item, 'position');
// Lưu hoặc xử lý kết quả theo nhu cầu ứng dụng.
}
Cấu hình token trong biến môi trường, ví dụ SERPSCRAPER_TOKEN, rồi ánh xạ qua config/services.php. Tránh gọi API trực tiếp từ trình duyệt nếu điều đó làm lộ token.
Đối với dự án PHP cần tích hợp nhanh, tài liệu SerpScraper.dev cũng giới thiệu PHP client SDK. Kiểm tra hướng dẫn cài đặt và cách sử dụng mới nhất trong docs trước khi đưa vào production.
Quản lý quota và chi phí khi chạy ở quy mô lớn
Trước khi chạy một pipeline thu thập SERP thường xuyên, hãy ước tính tổng số request theo số keyword, số quốc gia/ngôn ngữ, số trang và lịch chạy. Nếu cùng một keyword được kiểm tra hằng ngày tại nhiều thị trường, tổng khối lượng sẽ tăng nhanh hơn dự kiến.
Nên theo dõi ít nhất các chỉ số sau:
- Tổng request và credit đã sử dụng.
- Tỷ lệ request thành công, lỗi timeout và lỗi giới hạn quota.
- Số kết quả thực tế trả về cho mỗi request.
- Thời gian phản hồi trung bình và phân vị cao.
- Chi phí ước tính theo mỗi keyword hoặc mỗi batch.
Đọc bảng giá SerpScraper.dev để so sánh hạn mức và chi phí hiện tại. Quota, giá và cách tính credit có thể khác nhau theo loại request; nên dùng thông tin trên trang pricing và dashboard tại thời điểm triển khai thay vì dựa vào con số cũ trong bài viết.
Để hệ thống ổn định hơn, hãy đặt timeout hợp lý, retry có backoff cho lỗi tạm thời, giới hạn concurrency theo plan và không retry vô hạn khi API trả lỗi xác thực hoặc vượt quota.
Chọn một SERP API cho dự án
Khi đánh giá một Google SERP API, đừng chỉ so sánh giá theo request. Hãy xem xét:
- Chất lượng dữ liệu: các trường cần thiết có hiện diện và nhất quán không?
- Phân trang: API hỗ trợ
pagevàsizethế nào; có giới hạn tổng số kết quả không? - Định vị tìm kiếm: có thể chỉ định quốc gia và ngôn ngữ không?
- Tính dễ tích hợp: response có cấu trúc rõ ràng, có ví dụ code và SDK không?
- Quota và giới hạn tốc độ: có phù hợp với khối lượng production không?
- Chi phí: tính theo request, kết quả trả về hay credit?
- Hỗ trợ và độ tin cậy: có tài liệu, trang trạng thái và kênh hỗ trợ không?
SerpScraper.dev tập trung vào việc cung cấp dữ liệu tìm kiếm và dữ liệu web có cấu trúc qua API, với nhiều endpoint phục vụ các luồng công việc khác nhau. Bạn có thể xem trang giới thiệu để hiểu thêm về các trường hợp sử dụng, rồi thử một request nhỏ trước khi tích hợp sâu vào hệ thống.
Kết luận
Nếu bạn đang xây dựng công cụ SEO, hệ thống rank tracking hoặc pipeline phân tích thị trường, Google Search API có thể giúp giảm khối lượng công việc thu thập và chuẩn hóa dữ liệu. Hãy bắt đầu bằng một vài keyword đại diện, kiểm tra response thực tế, thử phân trang và tính quota dự kiến trước khi chạy hàng loạt.
Bạn có thể bắt đầu tại SerpScraper.dev, xem Google Search API, đọc tài liệu tích hợp và chọn gói phù hợp trên trang pricing.
All rights reserved