RapidAPI to Google Sheets, SEO audits logged clean
You run an SEO audit, export three different reports, paste them into a spreadsheet, then realize the columns don’t match. Again. It’s tedious, it’s error-prone, and it quietly eats the time you meant to spend on actual decisions.
SEO leads feel it during weekly reporting. A marketing manager feels it when leadership asks “how do we compare to competitors?” on short notice. And agency operators get stuck doing the same manual audit for every new prospect. This RapidAPI Sheets automation gives you consistent SEO snapshots in Google Sheets without the messy export shuffle.
You’ll see what the workflow does, what results to expect, and how to set it up so your audits land cleanly in the right tabs every time.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: RapidAPI to Google Sheets, SEO audits logged clean
flowchart LR
subgraph sg0["On form submission Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>On form submission"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Global Storage", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Website Traffic Cheker"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Website Metrics DA PA"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Top Baclinks"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Competitors Analysis "]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Re-Format"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Re-Format 2"]
n8@{ icon: "mdi:database", form: "rounded", label: "DA PA", pos: "b", h: 48 }
n9@{ icon: "mdi:database", form: "rounded", label: "Website Traffic", pos: "b", h: 48 }
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Re -Format 3"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Re -Format 4"]
n12@{ icon: "mdi:database", form: "rounded", label: "Backlinks Overview", pos: "b", h: 48 }
n13@{ icon: "mdi:database", form: "rounded", label: "Backlinks", pos: "b", h: 48 }
n14["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Re -Format 5"]
n15@{ icon: "mdi:database", form: "rounded", label: "Competitor Analysis ", pos: "b", h: 48 }
n6 --> n9
n7 --> n8
n10 --> n12
n11 --> n13
n14 --> n15
n4 --> n10
n4 --> n11
n1 --> n2
n1 --> n5
n1 --> n3
n1 --> n4
n0 --> n1
n5 --> n14
n3 --> n7
n2 --> n6
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n8,n9,n12,n13,n15 database
class n2,n3,n4,n5 api
class n6,n7,n10,n11,n14 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3,n4,n5,n6,n7,n10,n11,n14 customIcon
The Problem: SEO audit data ends up scattered and inconsistent
SEO data is easy to get and annoying to use. One tool gives you traffic, another gives you authority metrics, and backlink data comes out in a format that never matches your sheet. Then you repeat the whole process for the next site, and the next one. The worst part is the mental load: you spend your “analysis time” hunting for the right export, fixing headers, and double-checking that you didn’t paste competitor rows into the backlink tab. Small mistakes slip through, and decisions get made on shaky inputs.
It adds up fast. Here’s where it breaks down in real life:
- Each audit turns into 30–60 minutes of downloading, copying, and cleaning before anyone can even read it.
- Exports change structure over time, so your spreadsheet template slowly drifts into chaos.
- Backlink lists are especially messy, which means missed issues and bad link-building calls.
- Competitor insights end up in someone’s notes instead of a shared system you can track week to week.
The Solution: One form submission that logs a full SEO snapshot
This workflow turns a single website input into a structured audit inside Google Sheets. You enter a domain in a simple form, and n8n sends that domain to several RapidAPI endpoints that return traffic, authority metrics (DA/PA style signals and related scores), backlinks (both overview and individual rows), and competitor datasets. The workflow then cleans each response so you don’t get nested JSON junk in your spreadsheet. Finally, it appends the results to specific tabs, so your “WebSite Traffic” data always goes to the traffic sheet, backlinks always go to the backlinks sheets, and competitor rows land in the competitor analysis sheet where they belong.
It starts with a form submission for a website (and optional country). RapidAPI returns raw SEO data, n8n normalizes it into consistent columns, then Google Sheets receives neatly appended rows across multiple tabs. You get a repeatable audit log that stays readable.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you audit 10 sites a week for clients or prospecting. Manually, you might spend about 15 minutes pulling traffic and authority metrics, another 20 minutes wrangling backlinks, plus 10 minutes collecting competitor data and cleaning columns. That’s roughly 45 minutes per site, or about 7–8 hours a week. With this workflow, you submit the domain in the form (about 1 minute), wait a couple minutes for API calls and formatting, and your Sheets tabs are updated automatically. You get most of that day back.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for storing audit outputs in tabs.
- RapidAPI (SEO On Page API) to fetch traffic, authority, backlinks, competitors.
- RapidAPI key (get it from your RapidAPI dashboard).
Skill level: Intermediate. You’ll connect accounts, paste an API key, and map a few fields to your Sheet tabs.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A website gets submitted through a form. You type in a domain (and optionally a country), then the workflow stores that input so every downstream request uses the exact same value.
RapidAPI pulls the SEO data in parallel. Separate HTTP requests fetch traffic summary, authority-style metrics, backlink data, and competitor datasets. You’re not bouncing between tools or downloading anything.
The workflow cleans and reshapes the responses. It extracts the useful fields from each API response, flattens arrays into rows (especially for backlinks and competitor sets), and standardizes the payload so it fits cleanly into spreadsheet columns.
Google Sheets gets updated in the right places. Traffic goes to the “WebSite Traffic” tab, authority metrics go to “DA PA”, backlink overview goes to “Backlinks Overview”, the backlink list goes to “Backlinks”, and competitor rows land in “Competitor Analysis”. No sorting.
You can easily modify which tabs receive data or which fields you store based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Form Trigger
This workflow starts from a form submission, which captures the website you want to analyze.
- Add the Form Input Trigger node and set Form Title to
OnPage SEO ( WebSite ). - Set Form Description to
OnPage SEO ( WebSite ). - In Form Fields, add a required field labeled website.
- (Optional) Keep the Flowpast Branding sticky note for documentation within the canvas.
Step 2: Configure the API Requests (Parallel Branches)
Captured input is stored once, then four API requests run at the same time to collect traffic, authority, backlink, and competitor data.
- In Store Input Fields, set website to
={{ $json.website }}and country to={{ $json.country }}. - Connect Form Input Trigger → Store Input Fields.
- Configure Traffic API Request with URL
https://seo-on-page.p.rapidapi.com/webtraffic.php, MethodPOST, Content Typemultipart-form-data, and Body Parameters website set to={{ $json.website }}. - Configure Authority Metrics Request with URL
https://seo-on-page.p.rapidapi.com/dapa.php, MethodPOST, and Body Parameters website set to={{ $json.website }}. - Configure Backlink Data Request with URL
https://seo-on-page.p.rapidapi.com/backlink.phpand the same POST body field website set to={{ $json.website }}. - Configure Competitor Insights Request with URL
https://seo-on-page.p.rapidapi.com/competitor.phpand the same POST body field website set to={{ $json.website }}. - Set Header Parameters in each request: x-rapidapi-host to
seo-on-page.p.rapidapi.com(for Authority Metrics Request, it is currently=seo-on-page.p.rapidapi.com) and x-rapidapi-key to your RapidAPI key. - Ensure Store Input Fields outputs to all four requests in parallel: Traffic API Request, Competitor Insights Request, Authority Metrics Request, and Backlink Data Request.
Store Input Fields outputs to both Traffic API Request, Competitor Insights Request, Authority Metrics Request, and Backlink Data Request in parallel.
⚠️ Common Pitfall: The header x-rapidapi-key is set to [CONFIGURE_YOUR_API_KEY] and must be replaced with your actual RapidAPI key in every HTTP request node.
Step 3: Set Up Data Processing Nodes
Several code nodes normalize and extract specific data before it is written to Google Sheets. These nodes also branch in parallel.
- In Normalize Traffic Data, keep the code as
return $input.first().json.data.semrushAPI.trafficSummary[0];. - In Clean Metrics Payload, keep the code as
return $input.first().json.data;. - In Summarize Backlinks, keep the code as
return $input.first().json.data.semrushAPI.backlinksOverview;. - In Extract Backlink List, keep the code as
return $input.first().json.data.semrushAPI.backlinks;. - In Flatten Competitor Sets, keep the dataset-flattening code that builds rows from
apiDataintoallRows.
Backlink Data Request outputs to both Summarize Backlinks and Extract Backlink List in parallel.
Step 4: Connect Google Sheets
All five Google Sheets nodes append processed data into specific tabs in the same spreadsheet.
- Open each Google Sheets node: Append Authority Sheet, Append Traffic Sheet, Append Backlink Summary, Append Backlink Rows, and Append Competitor Sheet.
- Credential Required: Connect your googleApi credentials (service account) in each of these nodes.
- Set Document ID to your spreadsheet ID in each node (currently
[YOUR_ID]). - Verify each node’s Sheet Name matches its intended tab:
DA PA,WebSite Traffic,Backlinks Overview,Backlinks, andCompetitor Analysis.
Tip: Because there are 5 Google Sheets nodes, confirm the spreadsheet has all tabs created before testing to avoid “sheet not found” errors.
Step 5: Configure Output Mappings
These nodes append the cleaned data to the appropriate sheets with automatic mapping.
- In Append Traffic Sheet, confirm the mapped fields like users
={{ $json.users }}, visits={{ $json.visits }}, and website={{ $json.target }}. - In Append Authority Sheet, ensure Operation is
appendwith Authentication set toserviceAccount. - Connect Normalize Traffic Data → Append Traffic Sheet and Clean Metrics Payload → Append Authority Sheet.
- Connect Summarize Backlinks → Append Backlink Summary and Extract Backlink List → Append Backlink Rows.
- Connect Flatten Competitor Sets → Append Competitor Sheet.
Step 6: Test and Activate Your Workflow
Run a manual test to confirm the API calls and sheet appends work end-to-end.
- Click Test workflow and submit the Form Input Trigger with a valid website.
- Verify that data appears in each target sheet:
WebSite Traffic,DA PA,Backlinks Overview,Backlinks, andCompetitor Analysis. - If any sheet is empty, inspect the corresponding node output (e.g., Normalize Traffic Data or Summarize Backlinks) for missing API fields.
- Once successful, switch the workflow to Active to enable production use.
Common Gotchas
- RapidAPI credentials can expire or need specific permissions. If things break, check your RapidAPI subscription status and key in the RapidAPI dashboard first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes if your RapidAPI key and Google Sheet are ready.
No. You’ll mainly connect accounts and paste your RapidAPI key into the HTTP request nodes.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in RapidAPI subscription costs, which vary by plan and usage.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, but you’ll swap the trigger. Replace the “Form Input Trigger” with an n8n Schedule trigger, then feed a list of domains (from Google Sheets or Excel 365) into the same HTTP Request nodes. Common customizations include adding a timestamp column, writing into a new “Monthly Snapshot” tab, and filtering out backlink rows below a threshold so the sheet stays readable. If you want a client-facing version, you can also add a Google Docs step after the Sheets updates.
Usually it’s an invalid or expired RapidAPI key, or the endpoint requires a subscription tier you’re not on. Check the RapidAPI dashboard for quota limits and “401/403” errors, then update the key in the HTTP Request nodes inside n8n. Also confirm the host and headers match the API’s required format. If one endpoint fails but others work, it’s often a plan limitation on that specific endpoint.
If you self-host n8n, there’s no hard execution limit (it mostly depends on your server and RapidAPI quota). On n8n Cloud, your monthly execution cap depends on plan, and audits with multiple API calls use more executions.
Often, yes, because this isn’t a simple 2-step zap. You’re making multiple API calls, reshaping data, and appending to multiple tabs, which is where n8n’s logic and code steps tend to be more comfortable (and cheaper at scale if you self-host). Zapier and Make can still do it, but you may end up paying more for higher task counts, and complex data flattening can get awkward. If your main goal is “get it working fast” and you only audit a few sites a month, those tools can be fine. If you want a repeatable audit engine you can grow, n8n is usually the calmer option. Talk to an automation expert if you’re not sure which fits.
Once this is running, SEO audits stop being a recurring chore and start being a repeatable system. The workflow handles the logging, and you focus on what the numbers mean.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.