Node Types (Actions) are the fundamental building blocks of a workflow. Each node performs a specific action in the browser, much like how you would interact with a website manually.
Traffic4SEO has 6 main action types:
1. Navigation
2. Interaction
3. Timing
Navigates to a specific URL. This is the most common node and is usually the first node of any workflow.
✅ Recommended when:
❌ Not recommended when:
| Field | Description | Required | Example |
|---|---|---|---|
| Target URL | The address of the website to open. | ✅ Yes | https://example.com |
| Referral Source | Enter referral source URLs (one per line). The browser will simulate coming from one of these URLs. Leave blank for direct access. | ❌ No | See below |
Example 1: Open Google
Target URL: https://www.google.com/
Example 2: Open a product page
Target URL: https://example.com/products/nike-air-max-shoes
Example 3: Open a blog post
Target URL: https://blog.example.com/seo-guide-2024
Example 4: Open a page with a referrer
Target URL: https://example.com/products/nike-shoes
Referral Source:
https://www.google.com/search?q=nike+shoes
https://www.facebook.com/
https://example.com/blog/top-10-sports-shoes
→ The system will randomly pick 1 URL from the referrer list.
→ The browser will open the page with the HTTP Referer header.
→ Google Analytics will record the traffic source from the referrer.
30 tokens (fixed) - Does not depend on the URL or load time.
{warning} Note:
- This node is usually the first node in a workflow.
- URLs must start with
http://orhttps://.- If the URL doesn't exist or errors, the workflow will fail.
{info} About Referral Sources (Referrers):
- Referrers help simulate traffic coming from other sources (Google, Facebook, blogs...).
- If left blank → No referrer (direct traffic).
- If there are multiple URLs → The system randomly picks 1 URL as the referrer.
- The referrer will be recorded in Google Analytics and other analysis tools.
- All referral URLs must be valid (start with http:// or https://).
Randomly navigates to a URL from the list you provide. Good for creating diverse traffic.
✅ Recommended when:
❌ Not recommended when:
| Field | Description | Required | Example |
|---|---|---|---|
| Target URL List | Multiple URLs (one per line). | ✅ Yes | See below |
| Referral Source | Enter referral source URLs (one per line). The browser will simulate coming from one of these URLs. Leave blank for direct access. | ❌ No | See below |
Example 1: Diverse Blogs
https://example.com/blog/post-1
https://example.com/blog/post-2
https://example.com/blog/post-3
https://example.com/blog/post-4
https://example.com/blog/post-5
→ The system randomly picks 1 of the 5 URLs.
Example 2: Products
https://shop.com/nike-shoes
https://shop.com/adidas-shoes
https://shop.com/puma-shoes
→ Traffic is distributed evenly across 3 products.
Example 3: Landing pages
https://example.com/promo-new-year
https://example.com/promo-march-8
https://example.com/promo-opening
Example 4: Landing pages with referrers
Target URL List:
https://example.com/promo-new-year
https://example.com/promo-march-8
https://example.com/promo-opening
Referral Source:
https://www.google.com/
https://www.facebook.com/
https://www.youtube.com/
https://example.com/blog
→ Randomly picks 1 target URL + 1 referral URL.
→ Simulates traffic from many different sources.
45 tokens (fixed) - 15 tokens more expensive than Url Goto due to the random feature.
{info} Note:
- Each run only opens 1 random URL, not all of them.
- The probability of picking each URL is equal (even random).
- You should have at least 3-5 URLs to ensure diversity.
- All URLs must be valid; if the selected URL errors, the workflow fails.
{success} About Referral Sources (Referrers):
- Mechanism: Randomly picks 1 target URL + Randomly picks 1 referral URL.
- If left blank → Traffic will be direct traffic.
- If there are many referrers → Creates highly diverse traffic sources.
- Example: 5 target URLs + 4 referral URLs = 20 different combinations!
- All referral URLs must be valid (start with http:// or https://).
Waits for a specified number of seconds. This is an EXTREMELY IMPORTANT node for making workflows run naturally and avoiding bot detection.
3 main reasons:
To let the webpage load
To simulate a real person reading content
To avoid bot detection
✅ Always use it:
❌ Never skip it:
| Field | Description | Required | Limit | Example |
|---|---|---|---|---|
| Minimum Sec | Minimum wait time | ✅ Yes | 1-1800 | 5 |
| Maximum Sec | Maximum wait time | ✅ Yes | 1-1800, ≥ min | 10 |
Example 1: Page load (short)
Min: 2 seconds
Max: 5 seconds
→ The system randomizes between 2-5 seconds
→ Cost: 2-5 tokens
Example 2: Reading an article (long)
Min: 30 seconds
Max: 60 seconds
→ Simulates a reader
→ Cost: 30-60 tokens
Example 3: Browsing a product (medium)
Min: 10 seconds
Max: 20 seconds
→ Simulates viewing a product
→ Cost: 10-20 tokens
Example 4: Thinking before clicking (very short)
Min: 1 second
Max: 3 seconds
→ Simulates thinking
→ Cost: 1-3 tokens
1 token/second (based on the actual randomized time)
Note: This is the ONLY node with a non-fixed cost - the cost depends on the randomized time.
Wait Cost = Randomized seconds × 1 token
Example:
- Min: 5s, Max: 10s
- Runtime randomized to 7s
- Cost = 7 tokens
| Situation | Min | Max | Reason |
|---|---|---|---|
| Basic page load | 2s | 5s | Enough for basic load |
| Complex page load | 5s | 10s | Page has many images, JS |
| Reading a headline | 3s | 8s | Quick headline read |
| Reading short paragraph | 10s | 20s | Reading 1-2 paragraphs |
| Reading full article | 30s | 60s | Reading the whole post |
| Viewing a product | 10s | 25s | Looking at images, desc |
| Thinking before click | 1s | 3s | Natural delay |
{danger} Crucial:
- Always add Wait between steps to keep the workflow natural!
- Too short a wait (< 1s) = bot-like → easy to detect.
- Too long a wait (> 300s) = wastes tokens unnecessarily.
- Use a Min-Max range to create randomness (like a real person).
{success} Savings Tip:
- Wait just enough: 2-5s for page loads, 10-20s for reading content.
- No need for very long waits if the goal is only a pageview.
- Use longer waits if you want to increase engagement metrics (time on page).
Clicks a random link on the page. Useful for reducing bounce rate and increasing pages per session.
✅ Recommended when:
❌ Not recommended when:
| Field | Description | Required | Example |
|---|---|---|---|
| CSS Selector | Filter links by selector | ❌ No | .content a |
Leave blank = Click any link on the page.
Example 1: Click any link
CSS Selector: (blank)
→ Clicks any link on the page.
Example 2: Only click links within the content
CSS Selector: .content a
→ Only clicks links inside an element with the "content" class.
→ Ignores menu, footer, and sidebar links.
Example 3: Only click article links
CSS Selector: .post-link
→ Only clicks links with the "post-link" class.
Example 4: Click a product link
CSS Selector: .product-card a
→ Only clicks links within a product card.
30 tokens (fixed)
{warning} Note:
- If the page has no links → The workflow fails.
- If the link leads out of the website → It may not be able to return.
- Use a CSS Selector to ensure it only clicks internal links.
- Always add a Wait node after this for the new page to load.
Clicks a specific link with text, URL, or a CSS selector. Perfect for precise navigation.
✅ Recommended when:
❌ Not recommended when:
| Field | Description | Required | Example |
|---|---|---|---|
| Selection Type | How to find the link | ✅ Yes | text, url, selector |
| Value | Text, URL, or selector value | ✅ Yes | Varies |
| Internal Only | Only click same-domain links | ❌ No | true/false |
1. Link Text (text) - Easiest
Type: text
Value: "Read More"
→ Clicks the link with the text "Read More"
2. Link URL (url) - Accurate
Type: url
Value: "/products/"
→ Clicks the link that contains "/products/" in the URL
3. CSS Selector (selector) - Advanced
Type: selector
Value: ".product-link"
→ Clicks the link with the "product-link" class
Example 1: Click "Read More"
Selection Type: Link text
Value: Read More
Internal Only: true
→ Clicks the "Read More" button within the website
Example 2: Click a Google result
Selection Type: Link URL
Value: /example.com
Internal Only: false
→ Clicks the result that contains "example.com" in the URL
Example 3: Click a specific product
Selection Type: Link text
Value: Nike Air Max Shoes
Internal Only: true
→ Clicks the link with the text "Nike Air Max Shoes"
Example 4: Click using CSS Selector
Selection Type: CSS Selector
Value: .featured-product a
Internal Only: true
→ Clicks the link within the featured product
30 tokens (fixed)
Example:
Page has 3 links:
- Link 1: "Read More" (in post 1)
- Link 2: "Read More" (in post 2)
- Link 3: "Read More" (in post 3)
Config: Type = text, Value = "Read More"
→ The app clicks Link 1 (the first one)
{info} Note:
- If no matching link is found → The workflow fails.
- Multiple matches → Picks the first link.
- Text must match exactly (case-sensitive).
- URL only needs to contain the search string, not match entirely.
- Switch "Internal Only" on to avoid wandering off the website.
- Always add a Wait action after this.
{success} Tip: If the text has accents or special characters, it's better to use the URL instead of the text for more accuracy.
Enters text into a field identified by a CSS selector. Simulates real keyboard typing.
✅ Recommended when:
❌ Not recommended when:
| Field | Description | Required | Example |
|---|---|---|---|
| CSS Selector | The position of the input box | ✅ Yes | textarea[name="q"] |
| Text | Content to be entered | ✅ Yes | Traffic4SEO |
| Send Enter | Press Enter after typing | ❌ No | true/false |
Example 1: Google Search
CSS Selector: textarea[name="q"]
Text: Traffic4SEO
Send Enter: false
→ Types "Traffic4SEO" into the Google search box.
→ Does not press Enter (will use a Click node to click the search button).
Example 2: Search with Enter
CSS Selector: input[name="search"]
Text: nike shoes
Send Enter: true
→ Types "nike shoes" and automatically presses Enter.
→ No Click node needed.
Example 3: Fill in email
CSS Selector: input[type="email"]
Text: [email protected]
Send Enter: false
→ Enters the email into the form.
Example 4: Enter comment
CSS Selector: #comment-box
Text: Great product, worth the money!
Send Enter: false
→ Types the comment into the box.
10 tokens (fixed) - The cheapest among all node types!
Method 1: Use Browser DevTools (Recommended)
Method 2: Find by Attribute
<!-- Input with a name -->
<input name="email">
→ Selector: input[name="email"]
<!-- Input with an id -->
<input id="search-box">
→ Selector: #search-box
<!-- Textarea with a class -->
<textarea class="comment-input">
→ Selector: textarea.comment-input
{warning} Note:
- The CSS Selector must be accurate; if it's wrong → The workflow fails.
- The input box must be visible and interactable.
- Some websites use JavaScript for validation → might not work.
- The system types each character with a random delay (like a real human).
{info} Tip: If "Send Enter" = true, you don't need to add a Click node to submit the form.
❌ WRONG:
Url Goto → Text Input → Click on Link
(No Wait)
✅ CORRECT:
Url Goto → Wait (2-5s) → Text Input → Wait (1-2s) → Click on Link → Wait (5-10s)
Situation: Open a specific URL
❌ WASTEFUL: Urls Goto (45 tokens)
✅ SAVING: Url Goto (30 tokens)
Difference: 15 tokens/run = 7,500 tokens for 500 runs!
❌ NOT GOOD:
Click Random Link (no selector)
→ Might click menu, footer, or ads.
✅ BETTER:
Click Random Link with selector: .post-content a
→ Only clicks links within the article content.
Click on Link:
😊 EASY: Type = text, Value = "Read More"
😰 HARD: Type = selector, Value = "div.card > a.btn-primary:nth-child(2)"
→ The result is the same, but text is much easier!
Complex Workflow:
Url Goto → Wait → Text Input → Wait → Click → Wait → Click Random Link
How to test:
1. Create a workflow with only: Url Goto → Wait
2. Test Run → OK
3. Add: Text Input → Wait
4. Test Run → OK
5. Continue adding node by node...
→ Much easier to find errors than testing everything at once!
1. Url Goto: https://example.com/blog/great-article
↓
2. Wait: 30-60s (simulate reading the whole post)
↓
3. Click Random Link: selector = ".related-posts a"
↓
4. Wait: 10-20s (browse the related post)
↓
5. Click on Link: text = "Home"
↓
6. Wait: 5-10s (view homepage)
Tip: Always use Click on Link if the link already exists on the page to make it more natural.
Common reasons:
Yes, but: