Skip to main content

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

Workflow preview

Workflow preview
100%
Monitor competitor SEO changes with CustomJS Scraper, Google Sheets & Slack alerts preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

️ Notice: Community nodes like @custom js/n8n nodes pdf toolkit can only be installed on self hosted instances of n8n. This n8n workfl...

Best for

  • Market Research automation workflows
  • intermediate n8n builders looking for reusable templates

Tools used

n8n-nodes-base.scheduletrigger, n8n-nodes-base.googlesheets, @custom-js/n8n-nodes-pdf-toolkit.scraper, n8n-nodes-base.code, n8n-nodes-base.if, n8n-nodes-base.slack

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by CustomJS.

Original n8n.io source

1.1 Workflow description

Title
Monitor competitor SEO changes with CustomJS Scraper, Google Sheets & Slack alerts
Workflow name
Monitor competitor SEO changes with CustomJS Scraper, Google Sheets & Slack alerts

> ⚠️ Notice:
> Community nodes like @custom-js/n8n-nodes-pdf-toolkit can only be installed on self-hosted instances of n8n.


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, <h1>, <h2>, 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
    • <h1> headings
    • <h2> 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

  • Self-hosted n8n instance.
  • CustomJS API key for the Scraper node.
  • A Google Sheet containing competitor website URLs.
  • Slack workspace (optional, for notifications).

Workflow Steps

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

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

  3. CustomJS Scraper – Fetch HTML

    • Inputs each website URL.
    • Returns raw HTML text for analysis.
  4. Code – Extract SEO Elements
    Parses the HTML to extract:

    • Title
    • H1s
    • H2s
    • Meta description
  5. Google Sheets – Update SEO Data
    Updates the sheet with the new SEO data and a current date.

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

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


Usage

  1. Get API key from CustomJS

    • Sign up on the CustomJS platform.
    • Navigate to your profile page.
    • Click “Show” to reveal your API key.
  2. Set Credentials for CustomJS API in n8n

    • Copy your API key into a new CustomJS credential.
  3. Prepare your Google Sheet

    • Create a sheet with a column named Websites.
    • Enter competitor URLs (must start with https://).
  4. 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.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Schedule Trigger

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.2

Block 2 - Get row(s) in sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 3 - Update row in sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 4 - CustomJS Scraper – Fetch HTML

Type / Role
@custom-js/n8n-nodes-pdf-toolkit.scraper - scraper
Config choices
Version 1

Block 5 - Code – Extract SEO Elements

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 6 - If – Check for SEO Changes

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 7 - Slack Notification – Alert on Changes

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.3

3. Summary Table

Workflow Monitor competitor SEO changes with CustomJS Scraper, Google Sheets & Slack alerts
Complexity intermediate
Nodes 7
Categories Market Research
Author CustomJS
Published 24 Jun 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/5203/5203.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Monitor competitor SEO changes with CustomJS Scraper, Google Sheets & Slack alerts do?

️ Notice: Community nodes like @custom js/n8n nodes pdf toolkit can only be installed on self hosted instances of n8n. This n8n workfl...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Market Research use case.