Alternativa a Google Custom Search JSON API:
Google ha chiuso la Custom Search JSON API ai nuovi clienti e la dismetterà per tutti il 1° gennaio 2027. Semscraper raccoglie la vera pagina dei risultati di Google, renderizzata in un browser: fino a 10 pagine per parola chiave, circa 100 risultati a seconda della query, a consumo con crediti prepagati e senza abbonamento.
- La vera SERP di Google, non un indice ridotto
- Fino a 10 pagine per parola chiave
- 1.000 ricerche di una pagina a 0,30 €
- 1.000 SERP gratuite
- Nessuna carta di credito
Cosa ha annunciato Google,
Secondo la documentazione di Google (developers.google.com/custom-search/v1/overview e il centro assistenza di Programmable Search Engine), consultata il 10 ottobre 2026.
Dal 20 gennaio 2026
I nuovi motori Programmable Search Engine sono limitati a 50 domini scelti: l'opzione "Cerca in tutto il Web" non è più disponibile. I motori esistenti che la usano la mantengono fino al 1° gennaio 2027.
Chiusa ai nuovi clienti
Un nuovo progetto non può più attivare la Custom Search JSON API. Per cercare su un massimo di 50 domini, Google indica Vertex AI Search; la ricerca su tutto il Web va richiesta a Google.
1° gennaio 2027
Fine della Custom Search JSON API per i clienti esistenti. Ogni applicazione che la chiama ancora deve aver completato la migrazione.
Dove Semscraper
Semscraper non è una copia identica di Custom Search: è un'API che raccoglie la pagina di Google così come la vede un utente. Sostituisce bene alcuni usi, non tutti.
Sì: monitorare Google
Monitoraggio del posizionamento, analisi della concorrenza, studi sulle SERP, AI Overviews: ottieni i risultati reali di google.it, google.com o di qualsiasi altro paese, città e dispositivo compresi.
Sì: alimentare strumenti e agenti
Dataset, arricchimento dei dati, agenti e pipeline RAG che hanno bisogno di ciò che Google mostra davvero. L'elaborazione è asincrona: calcola una ventina di secondi di raccolta per ricerca, non una risposta istantanea.
No: la ricerca interna del tuo sito
Una barra di ricerca che deve rispondere in una frazione di secondo sulle tue pagine richiede un motore di ricerca per siti, oppure Vertex AI Search, che Google propone per un massimo di 50 domini.
Custom Search JSON API o Semscraper:
| Criterio | Custom Search JSON API | Semscraper |
|---|---|---|
| Origine dei risultati | Il tuo motore Programmable Search Engine. Anche se impostato su tutto il Web, Google precisa che copre solo una parte del suo indice e mette in evidenza i tuoi siti. | La vera pagina dei risultati di Google, renderizzata in un vero browser. |
| Contenuto | Un elenco di risultati web, senza le funzionalità della Ricerca Google (Onebox, ricerca universale). | Ogni blocco della pagina: risultati organici, annunci, local pack, People Also Ask, AI Overviews con le loro fonti, e altro. |
| Numero di risultati | 10 per richiesta, al massimo 100 con la paginazione (start + num non può superare 100). | Fino a 10 pagine Google in una sola chiamata, circa 100 risultati a seconda della query. |
| Paese, lingua, città, dispositivo | gl favorisce i risultati di un paese, hl imposta la lingua dell'interfaccia, lr e cr filtrano i documenti. | Versione di Google (paese e lingua), città o coordinate GPS, desktop o mobile. |
| Funzionamento | Sincrono: la risposta arriva nella chiamata stessa. | Asincrono: crei le ricerche (fino a 1.000 per chiamata), poi recuperi i risultati tramite ID oppure li ricevi su un URL di callback. In mediana una ventina di secondi di raccolta per una pagina, una cinquantina per 10, più l'attesa nella coda del tuo account (misurato su 12 milioni di SERP, 5,3 milioni a una pagina e 260.000 a 10 pagine, dal 12 settembre al 10 ottobre 2026). |
| Prezzo | 100 query gratuite al giorno, poi 5 $ ogni 1.000, fino a 10.000 al giorno. | 0,30 € ogni 1.000 ricerche di una pagina, 2,10 € ogni 1.000 ricerche di 10 pagine. Nessun abbonamento, nessun limite giornaliero, e il saldo non scade mai. |
| Ricerca su domini specifici | Sì, è ormai l'unica modalità dei nuovi motori (50 domini). | Nessun elenco di domini salvato: l'operatore site: nella parola chiave limita una ricerca a un dominio. |
| Ricerca di immagini | Sì (searchType=image). | No. Viene restituito solo il blocco Immagini, quando Google lo mostra nella pagina dei risultati. |
Adattare
I parametri non sono intercambiabili: ecco come adattare le tue chiamate. Gli operatori di Google passano invariati nella parola chiave.
| Custom Search | Semscraper |
|---|---|
q | keyword |
gl | location, la versione di Google, che non è un codice paese: gl=it diventa location=it (google.it), gl=us diventa location=en (google.com) |
hl | language, che forma una coppia valida con location: it/it, en/en, fr/fr... |
num, start | depth, da 1 a 10 pagine Google, tutte restituite dalla stessa chiamata |
siteSearch | site:esempio.it nella parola chiave |
exactTerms | Le virgolette nella parola chiave |
excludeTerms | -parola nella parola chiave |
fileType | filetype:pdf nella parola chiave |
lr, cr | Nessun equivalente diretto: scegli la versione di Google e la lingua |
searchType=image | Nessun equivalente |
key, cx | Una sola chiave API, inviata nell'header Authorization: Bearer |
Migrare una chiamata,
La stessa esigenza in Python: i primi 10 risultati organici di una query su Google. La differenza principale è il flusso in due tempi: creazione, poi recupero.
import requests
r = requests.get("https://www.googleapis.com/customsearch/v1", params={
"key": "GOOGLE_API_KEY",
"cx": "SEARCH_ENGINE_ID",
"q": "scarpe running",
"gl": "it",
"hl": "it",
"num": 10,
})
for item in r.json().get("items", []):
print(item["link"], item["title"], item["snippet"])
import time
import requests
API = "https://api.semscraper.com/v1/serp"
HEADERS = {"Authorization": "Bearer API_KEY"}
# 1. create the search (up to 1,000 keywords per call)
r = requests.post(API, headers=HEADERS, timeout=60, json=[{
"search_engine": "google_search",
"keyword": "scarpe running",
"location": "it",
"language": "it",
"device": "desktop",
"depth": 1,
}])
r.raise_for_status()
ids = [row["id"] for row in r.json()["data"]]
# 2. fetch the results once ready (about 20 s of collection for a depth-1 search,
# plus queue time), 10 minutes at most
deadline = time.time() + 600
while ids and time.time() < deadline:
time.sleep(10)
r = requests.get(API, headers=HEADERS, timeout=60,
params={"ids": ",".join(ids[:100]), "output": "json"}) # 100 IDs per call
r.raise_for_status()
for row in r.json()["data"]:
if row["status"] != "done":
continue
ids.remove(row["id"])
for block in row["results"]:
if block["type"] == "organic":
for item in block["items"]:
print(item["url"], item["title"], item["description"])
if ids:
print("Still pending, fetch them later by ID:", ids)
Il campo link diventa url, snippet diventa description. Ogni risultato riporta anche la sua posizione nel blocco (rank_type), la sua posizione nella pagina (rank_serp), la sua pagina Google e la sua posizione in pixel. Per migliaia di parole chiave: creale in blocchi da 1.000, recupera i risultati in blocchi da 100 ID, oppure ricevili su un URL di callback. Vedi la Bulk SERP API.
Passare a Semscraper
Una migrazione si prepara: prevedi qualche giorno di test prima di spegnere la vecchia API.
1. Testa
Lancia le tue query rappresentative con le 1.000 SERP gratuite che ricevi all'iscrizione.
2. Adatta
Parametri (gl diventa location), passaggio alle chiamate asincrone e campi della risposta (link diventa url, snippet diventa description).
3. Confronta
Pertinenza, copertura dei risultati, tempi e consumi, su un campione delle tue query reali.
4. Passa a Semscraper
Sposta la tua applicazione su Semscraper una volta convalidati i risultati, con largo anticipo sul 1° gennaio 2027.
Quanto costa,
Prezzi pubblici: Google verificato il 10 ottobre 2026, Semscraper alla tariffa base, prima degli sconti sulle ricariche.
| Esigenza | Custom Search JSON API | Semscraper |
|---|---|---|
| 1.000 parole chiave, 1 pagina (circa 10 risultati) | 5 $ (1.000 query a pagamento, oltre la quota gratuita giornaliera) | 0,30 € |
| 1.000 parole chiave, 10 pagine (circa 100 risultati) | 50 $ (10 query a pagamento per parola chiave, oltre la quota gratuita giornaliera) | 2,10 € |
| Più di 10.000 query al giorno | Impossibile: limite di 10.000 al giorno | Nessun limite giornaliero |
Se le 100 query gratuite del giorno non sono ancora state usate, calcola 4,50 $ e 49,50 $. La Custom Search JSON API non è più disponibile per i nuovi clienti: questi prezzi valgono solo per gli account esistenti, fino al 1° gennaio 2027. Prezzi dettagliati di Semscraper.
Domande frequenti
Quando verrà dismessa la Custom Search JSON API?
Semscraper restituisce gli stessi risultati di Custom Search?
Posso limitare la ricerca ai miei domini?
La risposta è immediata?
Quanto costa Semscraper dopo la migrazione?
Per approfondire
Come fare scraping di Google nel 2026
Raccogliere i risultati di Google su larga scala non è mai stato così impegnativo: i 100 risultati per pagina non esistono più, le AI Overviews si caricano in ritardo e le SERP cambiano da una città all’altra. Ecco le opzioni e le insidie.
Leggi la guida →SERP geolocalizzate: i risultati di Google visti da una città
Due persone che digitano la stessa ricerca in due città diverse non vedono la stessa pagina. Per misurare la SEO locale bisogna raccogliere la SERP dalla località giusta.
Leggi la guida →Alternativa a SerpApi: il confronto onesto
SerpApi è una delle API SERP più conosciute. Se cerchi un’alternativa per Google Search e Google Maps, ecco cosa distingue i due servizi, compresi i punti in cui SerpApi fa meglio.
Leggi la guida →Testa le tue query prima della scadenza
1.000 SERP gratuite, senza carta di credito.