Monitor competitor SEO changes with CustomJS Scraper, Sheets & Slack alerts

Go to Workflow
257 views
Built by CustomJS CustomJS
Created on June 07, 2026

Description



This n8n workflow demonstrates how to monitor competitor websites for SEO changes by scraping content and updating a Google Sheet. It uses the Scraper node from customjs.space to extract HTML content and parse key SEO elements like title, `, `, and meta description.

What this workflow does

Reads a list of competitor websites from a Google Sheet.
Uses the CustomJS Scraper node to fetch raw HTML for each website.
Extracts important SEO data:
Page title
`` headings
`` headings
Meta description
Updates the Google Sheet with the latest scraped values and a timestamp.
Compares the new values with the previous ones:
If changes are detected, a Slack notification is sent.

Requirements

CustomJS API key for the Scraper node.
A Google Sheet containing competitor website URLs.
Slack workspace (optional, for notifications).

Workflow Steps

Schedule Trigger
Runs automatically (weekly by default, adjustable as needed).

Google Sheets – Get Competitor URLs
Reads competitor website URLs from the configured sheet.

CustomJS Scrape – Website
Inputs each website URL.
Returns raw HTML text for analysis.

Code – Extract SEO Elements
Parses the HTML to extract:
Title
H1s
H2s
Meta description

Google Sheets – Update SEO Data
Updates the sheet with the new SEO data and a current date.

If – Check for SEO Changes
Compares old vs. new values.

Slack Notification – Alert on Changes
Sends a message to Slack when updates are detected.

Usage

Get API key from CustomJS
Sign up on the CustomJS platform.
Navigate to your profile page.
Click “Show” to reveal your API key.

Set Credentials for CustomJS API in n8n
Copy your API key into a new CustomJS credential.

Prepare your Google Sheet
Create a sheet with a column named Websites.
Enter competitor URLs (must start with https://).

Run or schedule the workflow
The workflow will scrape competitor sites, update the sheet, and notify you of any SEO changes.

Example Output

Google Sheet after update:

| Websites | Title | Meta Description | H1s | H2s | Date |
|----------------------|------------------------|--------------------------|--------------------|-------------|---------------------|
| https://example.com | Example Title | Example meta description | Example H1 Heading | Example H2s | 2025-09-07 12:00:00 |

Slack Notification Example

> ⚠️ Competitor SEO Change Detected!

Website: https://example.com

Title
Old: Example Title
New: New Example Title

Meta Description
Old: Example meta description
New: Updated example meta description

H1s
Old: Example Heading
New: Updated Heading

H2s
Old: Example Subheading
New: Updated Subheading

Date: 2025-09-07 12:00:00

Customization Tips

Change scraping frequency* in the *Schedule Trigger** (daily, weekly, etc.).
Track additional elements* by extending the regex in the *Code Node**.
Send alerts to other platforms** (e.g., Email, Microsoft Teams, Discord) by swapping the Slack node.
Store results in a database** instead of Google Sheets if long-term history is required.

Nodes Used (3)

Code
n8n-nodes-base.code
Google Sheets
n8n-nodes-base.googleSheets
Slack
n8n-nodes-base.slack