Automate SEO Content Audit Reports with n8n & DataForSEO

Discover how to automate detailed SEO content audits for any website using n8n integrated with DataForSEO and Google Search Console. This workflow saves hours by generating branded HTML reports highlighting SEO issues like 404 errors, thin content, and meta problems.
httpRequest
code
set
+5
Learn how to Build this Workflow with AI:
Workflow Identifier: 1148
NODES in Use: Manual Trigger, Set, HTTP Request, If, Wait, Code, SplitInBatches, ConvertToFile

Press CTRL+F5 if the workflow didn't load.

Visit through Desktop for Best experience

1. Opening Problem Statement

Meet Jessica, an SEO consultant overwhelmed with manually auditing her clients’ websites, each containing hundreds of pages. Every month, she spends countless hours crawling sites, checking for broken links, thin content, missing meta tags, and analyzing Google Search Console data — a tedious process prone to human error and delays. She knows her clients lose valuable traffic and ranking opportunities because many SEO issues go unnoticed or are fixed too late.

This manual approach costs her upwards of 10 hours per audit and leaves her scrambling to customize reports with branding and readable formats. Jessica needs a reliable automation that efficiently crawls up to 1000 pages, integrates Google data, and generates insightful reports customized with her company branding — all without lifting a finger after triggering the workflow.

2. What This Automation Does

This n8n workflow built for automated SEO content audits uses powerful API services to:

  • Automatically crawl up to 1000 website pages using DataForSEO’s on-page API, gathering comprehensive SEO-related data including status codes, meta tags, content quality indicators, and click depth.
  • Integrate Google Search Console search analytics for each page URL to collect real performance metrics like clicks and impressions from the last 90 days.
  • Identify and categorize critical SEO issues — broken 404 pages, 301 redirects, canonicalization problems, thin or outdated content, missing metadata, confusing internal linking, and underperforming pages.
  • Merge crawl results with live Google Search Console data to enrich insights and prioritize fixes based on clicks and impressions, helping identify impact.
  • Generate a fully branded, visually appealing .html report highlighting key metrics, issue summaries, detailed page lists, source link references for redirects and 404s, and actionable recommendations.
  • Deliver a ready-to-share report file, saving hours of manual compilation and layout design work while providing a professional output to clients.

This workflow typically saves users like Jessica 8+ hours per audit and reduces error risk by automating every step — from crawling to report generation — using n8n, DataForSEO, and Google Search Console API.

3. Prerequisites ⚙️

  • DataForSEO account with API access and Basic Auth credentials 🔑
  • Google Search Console account with OAuth2 credentials for API access 🔐
  • n8n automation platform account (cloud or self-hosting) ⏱️
  • Website domain to audit (up to 1000 pages)
  • Optional branding assets: company name, website URL, logo URL, primary & secondary brand colors 🎨

Note: Self-hosting n8n is possible for full control; consider providers like Hostinger if you want a scalable cloud VPS.

4. Step-by-Step Guide

Step 1: Set Up Your API Credentials in n8n

Navigate to n8n Settings → Credentials → Add Credentials.

  • Create a Basic Auth credential using your DataForSEO API username and password.
  • Create a Google OAuth2 credential following Google’s OAuth2 guide for Search Console API.

Assign these credentials to HTTP Request nodes as indicated.

Common mistake: Incorrect or expired credentials cause authentication failures. Double-check keys.

Step 2: Configure the Set Fields Node

Click the Set Fields node. Enter your target domain in dfs_domain (e.g., “yourclientdomain.com”).

Set max crawl pages to your desired limit (default 1000) and choose whether to enable JavaScript rendering (dfs_enable_javascript).

Fill your company details (name, website, logo URL) and brand colors to customize the final report.

Save the node.

Step 3: Start the Workflow Manually

Trigger the workflow from the n8n UI via the manual trigger node named When clicking ‘Start’.

This kicks off the audit process beginning with creating a task on DataForSEO.

You’ll see the Create Task HTTP node post crawl parameters to DataForSEO’s API.

Step 4: Monitor Crawl Status

The workflow periodically checks the crawl task status with the Check Task Status HTTP node until the crawl progresses to ‘finished’.

The If node branches the flow, feeding data either towards waiting and retrying or proceeding to the next step once complete.

Step 5: Retrieve Raw Audit Data

Once crawl finishes, the Get RAW Audit Data HTTP node fetches the detailed crawl data including URLs, meta data, status codes, and technical SEO info.

Step 6: Extract and Filter URLs with Status 200

The Extract URLs Code node processes raw data and outputs only URLs where the HTTP status code is 200 to focus analysis on active pages.

Code snippet (JavaScript):

// Loop input items and yield URLs with status code 200
const input = $input.all();
const output = [];
for (const item of input) {
  const tasks = item.json.tasks || [];
  for (const task of tasks) {
    const results = task.result || [];
    for (const result of results) {
      const items = result.items || [];
      for (const page of items) {
        if (page.url && page.status_code === 200) {
          output.push({ json: { url: page.url } });
        }
      }
    }
  }
}
return output;

Step 7: Query Google Search Console for Each URL

The Loop Over Items node batches the filtered active URLs and passes them to the Query GSC API HTTP Request node.

This performs queries on Search Console’s analytics API to retrieve clicks and impressions for each page over the last 90 days.

Step 8: Wait and Map GSC Data

The workflow pauses for rate limiting using the Wait1 node, then the Map GSC Data to URL node aligns the GSC stats with corresponding URLs for enrichment.

Step 9: Merge Crawled Audit Data with Google Data

The Merge GSC Data with RAW Data Code node constructs a lookup table and embeds GSC metrics into each page’s audit data, making the report data-rich.

Step 10: Extract 404 and 301 URLs

Using the Extract 404 & 301 Code node, the workflow isolates pages with critical crawl statuses indicating errors (404) or redirects (301).

Step 11: Get Source Links Data for Redirects and 404s

The Get Source URLs Data HTTP node fetches link source information for these problematic URLs, enabling actionable insights in the final report about which internal or external pages point to broken or redirected links.

Step 12: Build an SEO Audit Report Structure

The Build Report Structure Code node runs extensive logic to analyze audit data against SEO best practices:

  • Flags issues such as outdated content, thin content, large HTML size, metadata problems, crawl depth, and underperforming pages.
  • Counts and categorizes every issue to generate summary metrics.
  • Prepares data arrays for rendering in the HTML report.

Step 13: Generate Brand-Consistent HTML Report

The Generate HTML Report Code node produces a clean, styled HTML file integrating brand colors, logo, and company info.

The report covers executive summary, detailed issue tables with pagination, source link toggles, and prioritized SEO recommendations.

Step 14: Convert HTML to Downloadable File

The final Download Report node converts the generated HTML to a downloadable file named with the target domain and current month-year.

You can then share this report directly with clients or stakeholders.

5. Customizations ✏️

  • Adjust Crawl Limits: In the Set Fields node, change dfs_max_crawl_pages from “1000” to any number up to DataForSEO’s limits to control crawl size.
  • Enable JavaScript Crawling: Toggle dfs_enable_javascript in Set Fields to “true” for pages requiring JS rendering for accurate SEO analysis.
  • Brand Colors and Logos: Update company_logo_url and brand color fields to fully personalize the report’s appearance for clients.
  • Change GSC Property Type: Modify gsc_property_type in Set Fields to “domain” or “url” matching your Search Console property setup.
  • Batch Size Tuning: Adjust Loop Over Items batch size to optimize API requests and runtime based on your quota and site size.

6. Troubleshooting 🔧

Problem: Authentication fails on DataForSEO API requests

Cause: Wrong or missing Basic Auth credentials in HTTP Request nodes.

Solution: Go to n8n Credentials → Update Basic Auth with correct API username and password. Reassign credentials to all DataForSEO HTTP nodes (Create Task, Check Task Status, Get RAW Audit Data, Get Source URLs Data).

Problem: Google Search Console queries return 403 or errors

Cause: OAuth2 token missing or insufficient permissions for Search Console API.

Solution: Recreate Google OAuth2 credentials based on official docs, ensure the authenticated user has Search Console access to the target domain, and assign the credential to the Query GSC API node.

Problem: Workflow hangs waiting for crawl to finish

Cause: Crawl task fails or API response is delayed.

Solution: Check DataForSEO dashboard if the crawl task is active or failed. You can manually abort and restart the workflow if needed. Adjust wait times in the Wait node.

7. Pre-Production Checklist ✅

  • Verify that DataForSEO Basic Auth and Google OAuth2 credentials are correctly configured and assigned.
  • Test the crawl on a smaller crawl size to ensure connectivity and credentials.
  • Ensure the required APIs are enabled for the Google account being used.
  • Check that the domain and Google Search Console property type match your inputs.
  • Run the workflow manually first and monitor logs in n8n to verify steps execute without errors.
  • Backup your workflow export JSON before making changes.

8. Deployment Guide

Activate the workflow by setting it to active in n8n.

Run it manually or trigger it via external means if integrated with API triggers.

Monitor the workflow run in n8n executions tab. The last node outputs a downloadable content audit report HTML file that can be forwarded to clients.

Consider scheduling periodic runs with a cron trigger node (not included in this workflow) for ongoing monitoring.

9. FAQs

Can I use another crawling service instead of DataForSEO?

Yes, but you will need to replace the HTTP Request nodes with requests to your preferred API and adjust the JSON parsing code accordingly.

Is there a cost associated with running this workflow?

Yes, DataForSEO charges based on crawl size and API calls, approximately $0.20 for a 500-page crawl. Google Search Console API usage is free within quotas.

Is my data secure?

This workflow runs entirely within your n8n instance, with authentication credentials stored securely. Data is transmitted to APIs over HTTPS.

Can this workflow handle more than 1000 pages?

Currently, the workflow is capped at 1000 pages due to DataForSEO API limits, but you can batch multiple runs to cover larger sites.

10. Conclusion

With this automated SEO content audit workflow, you’ve transformed the time-consuming, error-prone manual auditing process into an efficient, repeatable system.

You can now crawl up to 1000 pages, enrich SEO data with Google Search Console insights, and generate stunning branded reports in under 30 minutes — saving hours and enhancing client satisfaction.

Next steps? Consider expanding this workflow with automatic email delivery, integrating other SEO tools, or building dashboards for continuous monitoring.

Go ahead, hit the start button, and see how automation with n8n can revolutionize your SEO audits!

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation in n8n (Beginner Guide)

A complete beginner guide to building an AI-powered SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free