Huashu Design
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
An n8n workflow that audits up to 100 pages of a website from one form. Firecrawl finds the pages, DataForSEO tests each one in a browser, and every page gets an HTML report in Google Drive and a row in Google Sheets.
Site-wide on-page SEO audit with a report for each page is an n8n workflow in the Marketing & SEO category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
Site audit form
It starts when someone sends the Internal Links Check form with:
An HTML report in Drive and a row in your sheet for every page found, each with a score and a fix to start on
What you need before you start.
Site map
Maps the site from its links and sitemap and returns up to 100 addresses.
NeedsFirecrawl API key, typed into the node’s header
On-page audit
Loads each page with browser rendering and a spelling check, and returns its on-page score, timings and checks.
NeedsDataForSEO API login and password, and funds for the calls
Report storage
Saves each page’s HTML report as a new file in your folder.
NeedsA Google account to sign in with, and a folder
Audit log
Adds one row for each page, with the checks, the issue count, the top fix and a link to the report.
NeedsA Google account to sign in with, and a sheet with 23 headers
Checked by Mindket on 13 Nov 2026
This n8n workflow audits every page it can find on a website, up to 100, and gives each one an HTML report and a row in a sheet. You type an address into a form. Firecrawl maps the site from its links and sitemap. DataForSEO then loads each page in a browser, with scripts, resources and a spelling check, and returns its on-page score, timings and checks. A Code node turns those numbers into a styled report for Google Drive. Google Sheets gets a summary row with the top fix. Ten nodes run it.
Freelance SEO consultants, agencies and site owners who want a technical pass over a small site before a redesign or a pitch. It reads pages one by one, so a site of a few dozen pages suits it best. Skip it for keyword research or rankings. It looks only at the pages themselves. Nothing on the site is changed.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| SEO consulting | Freelance consultants | Run a prospect’s site and attach a few reports to the proposal | A consultant opens a pitch with the five pages whose score came back lowest. |
| Web design | Agencies | Audit a client’s site before and after a rebuild | An agency sets the old site’s scores beside the new site’s in two tabs. |
| Online retail | Shop owners | Sort the sheet by Priority Fix and work through the pages in order | A shop owner finds a run of product pages with no meta description. |
| Content marketing | Content leads | Filter on word count and readability to find thin pages | A content lead picks the thin posts to expand next. |
You need some n8n and three accounts: DataForSEO, Firecrawl and Google. Its author puts setup at about 12 minutes, with the accounts ready.
Any n8n that can reach DataForSEO, Firecrawl and Google will run it, and the reports land in one Drive folder while the summaries go to one tab.
seo-audit- and a timestampGet it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Make the folder and the sheet first.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| DataForSEO | An account with funds, and its API login and API password |
| Firecrawl | An API key, for the site map |
| An account for a Google Drive OAuth2 and a Google Sheets OAuth2 credential | |
| A folder | A Drive folder for the reports |
| A sheet | A tab named Page SEO Audit with 23 headers in row 1 |
| Group | Columns |
|---|---|
| The page | Date, URL, On Page Score, Status, Meta Title, Meta Description |
| Content and speed | Readability Score, Load Time, Word Count, Misspelling, Page Size (mb) |
| Checks, each Yes or No | ALT Missing, Broken Links, Broken Resources, Has H1, Has Title, Has Description, Has Canonical, SEO Friendly url, Passes core web vitals |
| The verdict | Issues, Priority Fix, Full Report |
workflow.json./folders/.Page SEO Audit tab, then copy its ID: the long part of its address between /d/ and /edit.Create file from text and replace YOUR_FOLDER_ID with the folder’s ID.Google Sheets and replace YOUR_SHEET_ID with the sheet’s ID.On Page SEO.Get Map, replace <YOUR_FIRECRAWL_KEY> in the Authorization header with your key. The brackets go too, so the header reads Bearer, a space and the key.Submit Form and send a small site. Press Publish when the rows look right.DataForSEO’s API password is not the one you sign in with. Its dashboard shows a separate pair for the API.
Open the form and type the site’s full address, with https. The form answers at once and the run goes on. Firecrawl returns the addresses it finds, and the loop sends them to DataForSEO one at a time. Each page gets its report in Drive and its row in the sheet before the next one starts, so a large site takes a while. Then sort the sheet by On Page Score or Issues.
| To change | Where |
|---|---|
| How many pages | limit in the body of Get Map, 100 in the file |
| Subdomains and the sitemap | includeSubdomains and sitemap in the same body |
| What DataForSEO runs | The body of On Page SEO: browser rendering, resources and spelling, each billed on top |
| The report’s look and sections | The HTML in Code in JavaScript |
| The columns and the top fix | The mapping in Google Sheets, where Priority Fix takes the first problem in a fixed order |
| The pause before each row | Wait, one second in the file |
You send the form with one address.
Page URL: https://bakery.example
Firecrawl returns the site’s addresses, such as the home page, a menu page and a contact page. For each one, Page Data keeps about 70 fields from the answer DataForSEO sends back. The sheet gets a row like this:
| Column | Value |
|---|---|
| URL | https://bakery.example/menu |
| On Page Score | 78 |
| Status | good |
| Load Time | 2.4 sec |
| Has Description | No |
| Issues | 3 |
| Priority Fix | Add meta description |
| Full Report | A download link to the page’s HTML file in Drive |
The report opens in a browser. It shows the score, Core Web Vitals, a checklist, the issues found and an action plan.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Here Loop Over Items hands one address at a time down the bottom row and takes it back after Google Sheets. Set limit to 3 for your first run. Each node then shows what it received and what it sent, which is where a refused login or an empty site map turns up.
For experts. Three stages share the work. A crawl finds the pages, a browser test measures them and a template writes them up.
| Node | Call or job | What to know |
|---|---|---|
Get Map | Firecrawl’s v2/map | Returns links, which Split Out turns into one item each |
On Page SEO | DataForSEO’s on_page/instant_pages, a live call | Asks for browser rendering, scripts, resources and spelling, and returns even after a timeout |
Page Data | A Set node with about 70 fields | Each field falls back to null, 0 or false, so a failed call still gives a row |
Code in JavaScript | Builds the HTML in a template string | Names the file seo-audit- and Date.now() |
Google Sheets | Appends a row | Full Report is a Drive download address made from the new file’s id |
Six nodes carry on when they fail. A page DataForSEO could not load still gets a report and a row, mostly zeros.
DataForSEO bills every page. The report and the sheet can also disagree on what to fix first.
Priority Fix test problems in different orders, so they can name different fixes for one pageOn Page Score before you trust a rowFull Report address works only for people who can see the file in your DriveAn n8n workflow that audits up to 100 pages of a website from one form. Firecrawl maps the site, DataForSEO loads each
page in a browser and checks it, and a Code node writes an HTML report for every page into Google Drive. Google Sheets
gets one summary row for each page, with its issue count, the fix to start with and a link to the report.
workflow.json: the workflow as n8n exports it, ten nodes and no sticky notes. It holds no credential.README.md: these notes.Create file from text asks for YOUR_FOLDER_ID.Google Sheets asks for YOUR_SHEET_ID and finds the tab by the namePage SEO Audit.Bearer <api_key>. It now reads Bearer <YOUR_FIRECRAWL_KEY>.workflow.json./folders/.Page SEO Audit and the headers below, then copy its ID: the long part of its address/d/ and /edit.Create file from text and replace YOUR_FOLDER_ID with theGoogle Sheets and replace YOUR_SHEET_ID with the sheet's ID.On Page SEO.Get Map, replace <YOUR_FIRECRAWL_KEY> in the Authorization header with your key. The brackets go too, so thelimit in the body of Get Map to 3 for the first run.Submit Form and send a site's address. Press Publish when the rows look right.Row 1 of Page SEO Audit holds these 23 headers, spelled as here:
| Group | Columns |
|---|---|
| The page | Date, URL, On Page Score, Status, Meta Title, Meta Description |
| Content and speed | Readability Score, Load Time, Word Count, Misspelling, Page Size (mb) |
| Checks, each Yes or No | ALT Missing, Broken Links, Broken Resources, Has H1, Has Title, Has Description, Has Canonical, SEO Friendly url, Passes core web vitals |
| The verdict | Issues, Priority Fix, Full Report |
Submit Form shows the Internal Links Check form with one field, Page URL. Type the full address with https. ItGet Map asks Firecrawl's v2/map for up to 100 addresses on the site, from its links and its sitemap, withoutSplit Out turns the links it returns into one item each.Loop Over Items hands the addresses on one at a time.On Page SEO sends the address to DataForSEO's on_page/instant_pages with browser rendering, JavaScript, resourcesPage Data keeps about 70 fields from the answer: the score, the title and description, the headings, word count,null, 0 or false when it is missing.Code in JavaScript builds the report: the score cards, Core Web Vitals, a priority action, performance, a checklist,seo-audit- and a timestamp.Create file from text saves it in your folder. Wait pauses one second, the amount in the file with the secondsGoogle Sheets appends the row. Full Report is a Drive download address made from the new file's id. The loopCode in JavaScript, Create file from text, Wait, On Page SEO, Page Data and Google Sheets are all set to
carry on when they fail. A page DataForSEO could not load still gets a report and a row, mostly zeros.
limit in the body of Get Map. includeSubdomains and sitemap sit beside it.On Page SEO. Turning off browser rendering lowers the price and loses the timings.Code in JavaScript, including the colors and the sections.Google Sheets. Status comes from the score (90 and up excellent, 70 good, 50 needsIssues counts eleven checks.Priority Fix test problems in different orders. The report starts withOn Page Score before you trust a row.Full Report link works only for people who can see the file in your Drive.README.md 6 KB workflow.json 73 KB
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
nerijs · Kit
A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…
LiconStudio · Kit
Keeps characters, clothing, objects and backgrounds consistent in generated video by feeding the model up to five reference images. A LoRA for LTX-2.5 in Comfy…
nhathoangfoto · Kit
A LoRA for FLUX.2 Klein 9B that puts a character into the pose shown by a mannequin reference while keeping the character's face and style. For artists and des…