GET_ALL_PAGES_FROM_SERP
Get all search results (organic + paid) for a keyword.
=GET_ALL_PAGES_FROM_SERP(keyword, [limit], [location], [language])Returns: 2D array with columns: Position, Type, URL, Title, Domain
Overview
GET_ALL_PAGES_FROM_SERP combines both organic and paid search results into a single unified view of Google's search results page. Each result includes a Type column that identifies whether it is an "Organic" or "Paid" listing, giving you a complete picture of the SERP in one function call.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
keyword | string | Yes | The search query to retrieve all results for. |
limit | number | No (20) | Total number of results to return, both organic and paid combined (1-100). |
location | string | No (United States) | The geographic location for localized results. |
language | string | No (English) | The language for search results. |
Examples
Full SERP analysis for a commercial keyword
Get both paid and organic results to see the full picture for a competitive commercial keyword.
=GET_ALL_PAGES_FROM_SERP("accounting software")Output
| Position | Type | URL | Title | Domain |
| 1 | Paid | https://quickbooks.intuit.com/ | QuickBooks Accounting Software | quickbooks.intuit.com |
| 2 | Paid | https://www.xero.com/ | Xero Online Accounting Software | xero.com |
| 3 | Paid | https://www.freshbooks.com/ | FreshBooks Accounting Software | freshbooks.com |
| 4 | Organic | https://www.pcmag.com/picks/the-best-accounting-software | Best Accounting Software 2025 | pcmag.com |
| 5 | Organic | https://www.nerdwallet.com/best/small-business/accounting-software | Best Accounting Software for Small Business | nerdwallet.com |
Compare SERP composition across markets
Analyze the full SERP for web hosting queries in the German market.
=GET_ALL_PAGES_FROM_SERP("web hosting", 20, "Germany", "German")Output
| Position | Type | URL | Title | Domain |
| 1 | Paid | https://www.ionos.de/hosting/webhosting | IONOS Webhosting | ionos.de |
| 2 | Paid | https://www.strato.de/hosting/ | STRATO Webhosting | strato.de |
| 3 | Organic | https://www.hosttest.de/vergleich/webhosting.html | Webhosting Vergleich 2025 | hosttest.de |
Informational keyword with no ads
For educational queries, results will typically be all organic with no paid listings.
=GET_ALL_PAGES_FROM_SERP("what is photosynthesis", 10)Output
| Position | Type | URL | Title | Domain |
| 1 | Organic | https://www.nationalgeographic.org/encyclopedia/photosynthesis/ | Photosynthesis | National Geographic Society | nationalgeographic.org |
| 2 | Organic | https://en.wikipedia.org/wiki/Photosynthesis | Photosynthesis - Wikipedia | en.wikipedia.org |
| 3 | Organic | https://www.khanacademy.org/science/biology/photosynthesis | Photosynthesis | Biology | Khan Academy | khanacademy.org |
Deep SERP analysis
Get 50 results for an extremely competitive keyword to see the full landscape.
=GET_ALL_PAGES_FROM_SERP("best credit cards", 50)Output
| Position | Type | URL | Title | Domain |
| 1 | Paid | https://www.nerdwallet.com/best/credit-cards | Best Credit Cards of 2025 | NerdWallet | nerdwallet.com |
| 2 | Paid | https://www.bankrate.com/credit-cards/best/ | Best Credit Cards of 2025 | Bankrate | bankrate.com |
| 3 | Organic | https://www.nerdwallet.com/best/credit-cards | Best Credit Cards of 2025 | NerdWallet | nerdwallet.com |
Local service SERP analysis
View both ads and organic results for a local service query.
=GET_ALL_PAGES_FROM_SERP("dentist chicago", 15, "Illinois, United States")Output
| Position | Type | URL | Title | Domain |
| 1 | Paid | https://www.aspendentalgroup.com/chicago | Aspen Dental Chicago - Book Today | aspendentalgroup.com |
| 2 | Organic | https://www.yelp.com/search?find_desc=dentist&find_loc=chicago | Best Dentists in Chicago | Yelp | yelp.com |
Use Cases
SERP real estate analysis
Assess how much of the search results page is occupied by ads versus organic results. For keywords where ads dominate the above-the-fold area, evaluate whether SEO investment is worthwhile or if PPC is necessary to gain visibility.
Integrated search strategy planning
Create unified reports showing both organic and paid presence for client keywords. Identify keywords where the client ranks organically but does not advertise (and vice versa) to optimize the overall search strategy.
Cross-channel competitor mapping
Build a comprehensive competitor map by analyzing which companies appear in both paid and organic results. Companies investing in both channels for the same keywords are your most aggressive competitors.
Budget allocation research
Analyze the paid-to-organic ratio across your target keywords to inform budget allocation between SEO and PPC. Keywords with heavy ad presence may require paid investment, while those with few ads may be better served by organic optimization.
Search intent classification
Use the presence and ratio of ads to classify keyword intent. Keywords with many ads tend to be transactional, while those with mostly organic results are typically informational. This classification guides content type decisions.
SERP volatility tracking
Run periodic full-SERP snapshots for key terms. Compare the mix of paid and organic results over time to detect shifts in Google's SERP layout or changes in competitor advertising strategies.
Pro Tips
Count paid vs organic results using COUNTIF on the Type column to quickly assess the commercial competitiveness of a keyword. More ads generally mean higher CPC and stronger buyer intent.
Use conditional formatting to highlight rows differently based on the Type column (e.g., light blue for paid, light green for organic). This makes the SERP structure visible at a glance.
This function saves SERP credits compared to calling organic and paid functions separately. Use it as your default when you need both types of data.
Check if a domain appears in both paid and organic results using COUNTIFS. Companies appearing in both positions have a strong SERP dominance strategy worth analyzing.
Sort results by Domain to see which companies have the most total SERP presence (paid + organic combined). This reveals the true competitive leaders regardless of how they achieve visibility.
This function is ideal when you need to understand the full competitive landscape for a keyword. Rather than running separate calls for organic and paid results, you get everything in one request using a single SERP credit. The unified view mirrors what a real user sees on the search results page, with paid results interspersed among organic listings.
The output includes five columns: Position, Type, URL, Title, and Domain. Position reflects the visual order on the page, with top ads appearing first, followed by organic results, and bottom ads at the end. This ordering helps you understand the actual user experience for any given search query.
With a default limit of 20, you get a comprehensive view that typically covers all ads plus the first page of organic results. You can increase this up to 100 to see deeper into the organic listings. The limit applies to the total number of results, not separately to organic and paid.
This function is especially valuable for SERP dominance analysis. By examining the full page layout, you can assess how much real estate is occupied by ads versus organic results. Some highly commercial keywords have 4+ ads pushing organic results far below the fold, which has implications for both SEO and PPC strategy.
Geographic and language targeting parameters work identically to the other SERP functions, allowing you to analyze the full SERP in any market worldwide.
Common Errors
#REF! - Spill errorCause: Existing data in adjacent cells prevents the output array from expanding.
Fix: Clear enough space for the header row plus your limit value. Remember this function has 5 columns (Position, Type, URL, Title, Domain) instead of 4, so ensure you have enough horizontal space as well.
#ERROR - SERP credit limit reachedCause: Your monthly SERP credit balance is zero.
Fix: Review your credit usage across all SERP functions. Consider upgrading to Business for 10,000 monthly credits, or optimize your usage by caching results with paste-as-values.
#ERROR - Request timeoutCause: Large result sets (limit > 50) may occasionally timeout due to the volume of data being processed.
Fix: Try a lower limit value or retry the request. If the issue persists, try the same query with a limit of 20 to confirm the keyword works, then gradually increase.
Frequently Asked Questions
The Position column reflects the visual order of results on the page. Top ads are numbered first, followed by organic results, and then bottom ads. This matches the top-to-bottom order a user would see when scrolling through the search results page.
No, GET_ALL_PAGES_FROM_SERP uses a single SERP credit per call. This is actually more efficient than making separate calls to GET_ORGANIC_PAGES_FROM_SERP and GET_PAID_PAGES_FROM_SERP, which would use two credits total.
Yes, it is common for a domain to appear in both paid and organic listings. For example, a company might run Google Ads while also ranking organically. The Type column helps you distinguish between the two placements for the same domain.
The limit applies to the total number of results returned. If you set a limit of 20 and there are 4 ads plus 16 organic results, you get all 20. If there are 4 ads and you set a limit of 10, you get the 4 ads plus the top 6 organic results.
Since this function combines both result types, a limit of 20 ensures you capture all paid ads (typically 3-7) plus at least a full page of organic results (10). This gives a comprehensive view without requiring manual adjustment in most cases.
No, the function returns standard organic web results and paid text ads. Local pack (map) results, knowledge panels, image results, and other SERP features are not included.
Yes, you can use Google Sheets' FILTER function on the Type column. For example: =FILTER(A1:E20, B1:B20="Organic") will show only organic results, and =FILTER(A1:E20, B1:B20="Paid") will show only paid results.
Related Functions
Start using GET_ALL_PAGES_FROM_SERP today
Install Unlimited Sheets to get GET_ALL_PAGES_FROM_SERP and 41 other powerful functions in Google Sheets.