Semrush to Google Sheets, traffic logs done for you
You pull traffic numbers, paste them into a spreadsheet, promise yourself you’ll “do it weekly”… then it slips. Next thing you know, your reporting is a mix of screenshots, half-updated tabs, and numbers nobody trusts. Semrush Sheets automation fixes that boring part.
Marketing managers feel it when leadership asks for “the latest” and it’s not. Agency leads feel it when clients want proof. And if you run a small site, you feel it too because you’re the one doing the copying. This workflow gives you a clean, time-stamped traffic log in Google Sheets, on demand.
You’ll see how the automation runs, what you need to connect, and what results you can expect when Semrush traffic metrics land in a single sheet automatically.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Semrush to Google Sheets, traffic logs done for you
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["<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/>Reformat"]
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 checker"]
n3@{ icon: "mdi:database", form: "rounded", label: "Append Data In Google Sheets", pos: "b", h: 48 }
n1 --> n3
n0 --> n2
n2 --> n1
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 n3 database
class n2 api
class n1 code
classDef customIcon fill:none,stroke:none
class n0,n1,n2 customIcon
The Problem: Traffic Reporting Turns Into Copy-Paste Ops
Traffic reporting sounds simple until you’re doing it repeatedly. Someone asks for visits, bounce rate, page views, and sessions for five sites, plus “just grab the latest.” So you open Semrush, run the same check, copy numbers, paste them into Sheets, and hope you didn’t grab the wrong row. Then you do it again next week. The time cost is annoying, but the real hit is confidence. When numbers are manually moved around, people start questioning the data and your team spends meetings debating the spreadsheet instead of the trend.
It adds up fast. Here’s where it usually breaks down.
- Manual exports and pasting create tiny errors that become “big” arguments later.
- Reporting gets delayed because the person who knows the process is busy (or out).
- There’s no consistent format across clients or domains, so every report needs cleanup.
- Historical tracking is messy, which means you miss dips or spikes until it’s too late.
The Solution: Semrush Traffic Metrics Logged Automatically in Sheets
This n8n workflow turns “check traffic and log it” into a simple input-and-done routine. It starts when you submit a website URL through a form (so anyone on your team can run it without touching Semrush). n8n sends that URL to the SEMrush Website Traffic Checker API through RapidAPI, then receives a structured response with the metrics you care about. Next, the workflow reformats the raw response into a clean data set, pulling values from the traffic summary and making them spreadsheet-ready. Finally, it appends a new row to Google Sheets, so your traffic log stays consistent, shareable, and easy to chart over time.
The workflow begins with a URL submission, then runs one API request to Semrush, cleans the response, and writes the results into a Google Sheet. After that, your “report” is basically just opening one tab and filtering by domain or date.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you track 8 domains (your site plus client and competitor sites). Manually, you’ll usually spend about 10 minutes per domain to run the check, grab visits, bounce rate, page views, and sessions, then paste it neatly, so that’s roughly 80 minutes every reporting day. With this workflow, it’s closer to 2 minutes to submit 8 URLs (or have teammates submit them), plus a short wait for the API calls, and your sheet is updated automatically. That’s about an hour back each run, and the log stays consistent.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for storing the traffic log rows.
- RapidAPI account to access the SEMrush Traffic Checker API.
- RapidAPI key (get it from RapidAPI’s “Endpoints” tab, under X-RapidAPI-Key).
Skill level: Beginner. You’ll connect accounts, paste an API key, and map a few fields to a spreadsheet.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A URL submission kicks things off. Someone enters a domain (or a full website URL) into a simple form, and n8n receives it instantly.
The workflow requests traffic metrics. n8n sends that URL to the SEMrush Website Traffic Checker endpoint via an HTTP request through RapidAPI, using your RapidAPI key in the request headers.
The response gets cleaned up. The workflow parses the API response and pulls the useful fields from the traffic summary, so you’re not dumping a messy JSON blob into a spreadsheet.
Your Google Sheet becomes the log. Each run appends a new row in Google Sheets with the site and its metrics, which means your history grows automatically and stays formatted the same way.
You can easily modify the captured fields (for example, adding traffic sources) or change the sheet structure to separate tabs per client based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Form Trigger
Set up the form that collects the website URL to check traffic data.
- Add the Form Submission Trigger node and open its settings.
- Set Form Title to
Website Traffic Checker. - Set Form Description to
Website Traffic Checker. - Under Form Fields, add a field with Field Label
websiteand enable Required Field.
Step 2: Connect the Traffic Data API
Configure the API request that retrieves traffic metrics for the submitted website.
- Add the Traffic API Request node and connect it to Form Submission Trigger.
- Set URL to
https://semrush-website-traffic-checker.p.rapidapi.com/webtraffic.php. - Set Method to
POST, enable Send Body, and set Content Type tomultipart-form-data. - Under Body Parameters, add Name
websitewith Value{{ $json.website }}. - Under Header Parameters, set x-rapidapi-host to
semrush-website-traffic-checker.p.rapidapi.comand x-rapidapi-key to[CONFIGURE_YOUR_API_KEY].
[CONFIGURE_YOUR_API_KEY] with your actual RapidAPI key or the API call will fail.Step 3: Set Up the Processing Node
Extract the traffic summary from the API response for logging.
- Add the Format Traffic Summary node and connect it to Traffic API Request.
- Set JavaScript Code to
return $input.first().json.data.semrushAPI.trafficSummary;.
Step 4: Configure the Output to Google Sheets
Append the formatted traffic data into your spreadsheet for logging.
- Add the Append Rows to Sheets node and connect it to Format Traffic Summary.
- Set Operation to
append. - Set Authentication to
serviceAccount. - Select the target spreadsheet by setting Document ID (via URL or ID).
- Set Sheet Name to the tab where you want to append rows.
- Credential Required: Connect your googleApi credentials.
Step 5: Test and Activate Your Workflow
Verify the end-to-end flow and enable the workflow for live form submissions.
- Click Test workflow and submit a value in the Form Submission Trigger form.
- Confirm Traffic API Request returns data and Format Traffic Summary outputs a traffic summary object.
- Check your Google Sheet to verify that a new row was appended by Append Rows to Sheets.
- When successful, switch the workflow to Active to start logging submissions automatically.
Common Gotchas
- RapidAPI credentials can expire or be tied to the wrong project. If things break, check your RapidAPI dashboard and confirm the X-RapidAPI-Key and subscription status 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.
- Your Google Sheets append can “succeed” but still look wrong if columns don’t match your mapped fields. Double-check the sheet headers and the field mapping in the append step before you blame the API.
Frequently Asked Questions
About 30 minutes if your RapidAPI and Google accounts are ready.
No. You’ll connect accounts, paste an API key, and map fields into Google Sheets.
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/SEMrush API charges based on the plan you choose.
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, and it’s a common upgrade. You can keep the same form trigger, then append an extra field like “Client/Competitor” in the formatting step before the Google Sheets append. Many teams also add a timestamp column and a second sheet tab per client group so the history stays readable. If you later want daily checks without manual submissions, you can swap the form trigger for a schedule trigger and feed it a list of domains from the sheet.
Usually it’s an expired Google authorization or the wrong spreadsheet permissions. Reconnect your Google account in n8n, confirm you can edit the target sheet, then re-check the “append row” mapping so it matches the sheet’s columns.
It depends more on your n8n plan and your RapidAPI limits than the workflow itself.
Often, yes, if you care about control and cost. n8n makes it easier to handle richer logic around the API response (like cleaning fields, adding defaults, or splitting results into different tabs) without paying extra for multi-step paths. Self-hosting is also a big deal when you run a lot of checks, because you’re not buying task bundles every month. Zapier or Make can still be fine for a lightweight setup, but API work plus formatting tends to get cramped fast. Talk to an automation expert if you want help choosing.
Once this is running, traffic checks stop being a chore and start being a habit. Your sheet stays current, and you get to spend your attention 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.