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)
<a>) on the page matching the condition.text type: Priority 1 matches links with 100% exact text. If none exists, it automatically falls back to Priority 2 matching links that contain the text (partial match).url type: Priority 1 matches links with 100% exact URL (both absolute and relative URLs). If none exists, it automatically falls back to Priority 2 matching links that contain the URL string (partial match).mailto:, tel:, javascript:, #).Example:
Page has 2 links:
- Link 1: "Click here" (pointing to /post-1)
- Link 2: "Here" (pointing to /post-2)
Config: Type = text, Value = "here"
→ The app selects Link 2 (100% exact match, case-insensitive)
If the page only has Link 1:
→ The app selects Link 1 (partial match fallback)
{info} Note:
- If no matching link is found → The workflow fails.
- Multiple matches → Selects the first valid visible link.
- Text and URL matching are case-insensitive.
- Automatically prioritizes exact matches first, then falls back to partial matches.
- Safely skips
mailto:,tel:, andjavascript:links to prevent OS dialog interruptions.- 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 an input box or field on a web page (identified by a CSS selector) while accurately simulating natural human typing speed.
Key Feature: Supports a list of multiple input texts (one text/keyword per line). On each workflow execution run, the engine automatically picks one random text from the list to enter into the target element.
✅ Recommended when:
❌ Not recommended when:
| Field | Description | Required | Example |
|---|---|---|---|
| CSS Selector | Target input field position | ✅ Yes | textarea[name="q"] |
| Text | List of input texts/keywords (one per line). A random text is picked for each execution run | ✅ Yes | See examples below |
| Send Enter | Automatically press the Enter key after typing | ❌ No | true/false |
Example 1: Rotating Google Search Keywords (Recommended)
CSS Selector: textarea[name="q"]
Text:
Traffic4SEO
best seo automation tool
seo traffic bot
Send Enter: false
→ On each execution, the system randomly selects 1 of the 3 keywords to type into the Google search box.
→ Does not press Enter (will use a subsequent Click on Link node to click Search).
Example 2: Product Search with Automatic Enter
CSS Selector: input[name="search"]
Text:
nike air max shoes
adidas ultraboost shoes
puma running shoes
Send Enter: true
→ Picks a random shoe keyword from the list, types it, and automatically presses Enter to perform the search.
→ No subsequent Click node needed.
Example 3: Filling Random Email Addresses
CSS Selector: input[type="email"]
Text:
[email protected]
[email protected]
[email protected]
Send Enter: false
→ Automatically selects 1 email address to enter into the form.
Example 4: Random Review/Comment Entry
CSS Selector: #comment-box
Text:
Great article, very helpful!
Detailed explanation and easy to follow.
Thanks for sharing this knowledge.
Send Enter: false
→ Types a randomly selected review message into the comment 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 attribute -->
<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} Configuration Notes:
- Line Separation: Each line in the "Text" field represents a separate value/keyword. Do not use commas to separate keywords unless you want to type the entire string containing commas.
- CSS Selector Accuracy: The selector must target the correct input/textarea element; if invalid, the workflow step will fail with an element not found error.
- Visibility & Interactivity: The input field must be visible on screen and interactable (not hidden or disabled/readonly).
- Human-like Typing: The system types each character with randomized micro-delays to simulate human behavior.
{info} SEO Optimization Tip:
Entering a list of keywords in the Text Input node allows you to flexibly rotate search keywords within a single workflow. This diversifies incoming traffic from Google Search queries without the need to create and manage multiple separate workflows.
Additionally, if "Send Enter" is set to 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: