Official statement
Google does not offer any API or feature in Search Console that allows for the generation of large-scale keyword ranking reports. Current third-party tools rely on scraping, a practice that is tolerated but not officially supported. This lack of resources forces SEOs to work with fragmented data or third-party solutions whose reliability is never guaranteed by Google.
What you need to understand
Why does Google refuse to provide this ranking data?
The position is clear: Google does not provide any ranking API. Search Console offers performance data (impressions, clicks, average position), but nothing that allows for the generation of a comprehensive report on actual positions for thousands of keywords. This limitation is not technical; it is strategic.
By doing so, Google controls access to ranking information and avoids legitimizing position tracking tools that scrape its results extensively. Scraping generates artificial queries that pollute usage statistics and consume server resources without adding value for the end user.
How does this affect SEOs in their daily work?
All market rank tracking tools (SEMrush, Ahrefs, SE Ranking, etc.) utilize automated scraping of SERPs. They launch queries from data centers, retrieve the results, parse them, and reconstruct a ranking. None have privileged access to Google’s data.
This reality leads to several practical consequences. The data can fluctuate based on the queried data center, simulated geolocation, and emulated device. The reported positions are only approximations, never absolute truths. Google heavily personalizes results based on search history, precise location, device, and time of day.
Isn't Search Console enough to track positions?
Search Console provides the average position over a rolling 16 months, calculated across all actual impressions. This is an aggregated data point, not a daily snapshot position by position. If a keyword shows position 12.3, it means that on average over the period, your URL appeared around that position when real users searched for that term.
The problem? It’s impossible to track detailed daily changes, compare positions according to long-tail query variations, or monitor hundreds of strategic keywords with sufficient granularity. Search Console remains a tool for overall analysis, not for tactical position tracking.
- Google does not provide any ranking API and has never announced any plans in this regard
- All third-party rank tracking tools rely on unofficial scraping
- Search Console provides aggregated average positions, not daily snapshots
- Positions reported by third-party tools are approximations, never absolute data
- The massive personalization of SERPs makes the very concept of a "unique position" obsolete
SEO Expert opinion
Is this statement consistent with observed practices on the ground?
Absolutely. Google has never officially authorized the scraping of its SERPs, but it is not actively preventing it either. Rank tracking tools have existed for 20 years and continue to operate. Google could technically block these automated queries if it truly wanted to, using aggressive rate limiting or pattern detection.
The current status quo benefits everyone. Google avoids legitimizing resource-intensive practices, and SEOs still have tracking tools available. [To be verified] Some mention a tacit tolerance as long as the scraping volume remains "reasonable", but no official limit has ever been communicated. Major tools invest millions in distributed scraping infrastructures to avoid blocks.
What nuances should be added to this official position?
Google claims it does not offer an API, but Search Console API does exist. It exposes performance data (queries, impressions, clicks, average position). It is an official, documented API with quotas and OAuth authentication. It simply does not do what SEOs are asking: provide daily granular positions for arbitrary keyword lists.
The real question is: why does Google refuse to extend this API? Probably to avoid creating a dependency of SEO tools on its infrastructures. If Google officially provided this data, it would become responsible for its reliability, availability, and consistency. Scraping allows for maintaining a distance: "you figure it out, we guarantee nothing".
In what cases does this limitation really pose a problem?
For e-commerce sites with thousands of products, tracking positions manually or through Search Console quickly becomes unmanageable. Scraping tools allow for automating this monitoring and quickly detecting drops in positions on strategic segments. Without them, it is impossible to respond swiftly to algorithmic changes.
The real issue arises when optimizing exclusively for the position reported by a tool, without checking actual organic traffic in Analytics or Search Console. Scraped positions reflect only one SERP among millions of personalized variations. Getting hung up on position 3 vs. position 4 when actual traffic is stagnant is a classic tactical error. Qualified traffic remains the primary indicator, and positions are merely an imperfect proxy.
Practical impact and recommendations
What concrete actions should be taken in light of this absence of an official API?
First step: diversify your data sources. Never rely on just one rank tracking tool. Compare data from SEMrush, Ahrefs, SE Ranking on the same keywords: you will notice discrepancies of several positions depending on the tool. None is "right" in an absolute sense; they all capture a partial reality.
Second priority: use Search Console as your primary source of truth. Aggregated average positions reflect actual impressions from real users. Cross-check this data with your organic traffic in Google Analytics 4. If your average position improves but traffic stagnates, you are likely making progress on low-volume queries or the SERP CTR is declining (feature snippets, PAA, etc.).
What errors should be avoided in interpreting position data?
A classic mistake: driving an SEO strategy solely based on scraped positions. Daily positions fluctuate greatly, especially on competitive queries. A shift from position 5 to position 8 could be statistical noise, not a warning signal. Focus on weekly or monthly trends, never on isolated daily variations.
Another trap: assuming that all positions are equal. Position 1 on a long-tail query with 50 searches/month is often worth less than position 8 on a generic query with 10,000 searches/month. Rank tracking tools rarely indicate the real search volume for each tracked position. Prioritize tracking positions for high-volume and high-commercial-intention keywords.
How to structure reliable reporting without an official API?
Build a hybrid dashboard that combines multiple sources: Search Console API for actual average positions, a scraping tool for tactical daily monitoring, and Google Analytics 4 for traffic and conversions. This triad allows for cross-referencing data and avoiding decisions based on a single misleading metric.
For clients or management, always present positions in context: changes in organic traffic, conversion rates, revenue generated. A rising position without business impact is worthless. Conversely, a stable position with increasing traffic indicates an improvement in CTR or a rising search volume on the query. These nuances often require guidance from an experienced SEO agency capable of interpreting the data in its entirety and adjusting the strategy based on genuinely actionable signals rather than ephemeral position variations.
- Use at least two different rank tracking tools to cross-reference data
- Prioritize Search Console as your source of truth for actual average positions
- Always cross-check positions and organic traffic in GA4 before drawing any conclusions
- Only track daily the strategic high-volume and ROI keywords
- Always present positions in context: traffic, conversions, revenue generated
- Educate your stakeholders on the relativity of scraped positions vs. aggregated real positions
💬 Comments (0)
Be the first to comment.