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 checks one web page for a market you pick. DataForSEO measures it, a Gemini agent reads the results and the live page, and an interactive HTML dashboard with an action plan lands in your S3-compatible bucket.
One-page SEO and speed check with a hosted dashboard 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.
Page SEO/GEO Checker form
It starts when someone sends the form with:
A shareable dashboard for one page: scores, evidence, a ranked list of fixes and its keywords
What you need before you start.
Page and keyword data
Crawls the page, runs Lighthouse on it, and returns the keywords it ranks for and ideas for its site.
NeedsAPI login and password, as HTTP Basic Auth
Language model
Runs gemini-3-flash-preview for the agent that writes the analysis.
NeedsGemini API key
Web scraping
Fetches the live page’s HTML when the agent asks for it.
NeedsFirecrawl API key, typed into the node’s header
File storage
Keeps each dashboard as an HTML file at a public address.
NeedsA bucket the public can read, and an access key for the S3 credential
Checked by Mindket on 13 Nov 2026
This n8n workflow checks one web page and publishes what it finds as an interactive dashboard you can send. A form takes the page’s address, a country and a language. DataForSEO crawls the page, times it on a phone with Lighthouse, and lists the keywords it ranks for there and keyword ideas for its site. A Gemini agent reads those results and the live page, fetched through Firecrawl, and writes a numbered action plan. The dashboard lands in your own S3-compatible bucket. Nothing on the site changes. Twenty-two nodes run it.
SEO freelancers, agencies and site owners who want a fast read on one page that matters, with a link to hand a client. Skip it for a whole site. It checks one page a run.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| SEO consulting | Freelance consultants | Check a prospect’s home page and send the dashboard with the pitch | A consultant opens a sales call on the first three items of the action plan. |
| Web agencies | Developers and project leads | Check a client’s landing page once a month | Each month’s dashboard keeps its own file, since the name carries the date. |
| Online retail | Shop owners | Check a product page in the market it sells to | A shop picks the United Kingdom and English and sees which searches already find the page. |
| Content marketing | Content leads | Read the keyword ideas before rewriting a page | A content lead takes two terms from the table view into the new draft. |
You need some n8n and four accounts: DataForSEO, Google AI Studio, Firecrawl and a storage provider with a public bucket. Its author puts setup at about 12 minutes, with those accounts ready.
Any n8n that can reach DataForSEO, Google, Firecrawl and your bucket will run it. The result is one web page, so it opens in any browser.
Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Make the bucket readable from a public address first, since the last node only builds that address.
| 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 |
| Google AI Studio | A Gemini API key |
| Firecrawl | An API key, for the agent’s page fetch |
| A bucket | S3-compatible, open to the public for reading, with an access key that can write to it |
workflow.json.On Page SEO, Get Ranked Keywords, On Page Lighthouse (Mobile) and Keyword for Site.Gemini 2.5 Pro.URL_search, replace <YOUR_FIRECRAWL_KEY> in the Authorization header with your key. The brackets go too.Cloudflare Upload and replace YOUR_BUCKET_NAME with the bucket’s name.Get Research URL, replace YOUR_PUBLIC_URL with the bucket’s public address, with no slash at the end.On form submission and check a page of your own.DataForSEO’s API password is a separate one from your sign-in. On Cloudflare R2, the S3 credential’s region is auto and its endpoint is your account’s r2.cloudflarestorage.com address.
Open the form, paste the page’s full address with https, and pick the country and language whose search results you care about. The form thanks you at once while the run goes on. When it ends, open the run under Executions. The dashboard’s address is the url field that Get Research URL returns.
| To change | Where |
|---|---|
| The markets on offer | The dropdowns in On form submission and the maps in Get Country & Language Code, spelt alike |
| How many ranked keywords | limit in the body of Get Ranked Keywords |
| Which ideas count | The search volume floor in Filter Keyword for Site |
| Phone or desktop | for_mobile in On Page Lighthouse (Mobile) |
| The analysis | The agent’s system message and the example in Structured Output |
| The dashboard | The HTML and CSS in Code |
You check a bakery’s menu page for the United Kingdom in English.
Page URL: https://bakery.example/menu Country: United Kingdom Language: English
Get Country & Language Code sends DataForSEO the location code 2826 and the language en. The agent answers in the parser’s shape, trimmed here:
{
"analyzedUrl": "https://bakery.example/menu",
"executiveSummary": { "headline": "…", "summary": "…" },
"keyScores": [{ "metric": "Performance", "score": "…" }],
"seoAnalysis": { "strengths": ["…"], "weaknesses": ["…"], "contextualEvidence": [{ "finding": "…", "evidence": "…" }] },
"geoAnalysis": { "summary": "…", "contentReadiness": "…", "issues": ["…"] },
"actionPlan": [{ "priority": 1, "title": "…", "description": "…", "tags": ["…"] }]
}The file is saved as bakery plus the day’s date, so a check on 3 November 2026 becomes bakery20261103.html at your public address. It opens on the agent’s headline and scores. A technical panel, the evidence, the action plan and a bubble chart of keywords sized by search volume follow.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Here four rows run side by side, one for each DataForSEO call, and Merge waits for all four. Check one page first. Each node then shows what it received and sent, which is where a refused login or an empty answer turns up.
For experts. Four DataForSEO calls feed one agent, and the agent can make one more call of its own.
| Node | Call | What to know |
|---|---|---|
On Page SEO | on_page/instant_pages | Loads the page and its resources without JavaScript |
Get Ranked Keywords | dataforseo_labs/google/ranked_keywords/live | Organic, paid, featured snippet, local pack and AI Overview results, sorted by volume from the lowest |
On Page Lighthouse (Mobile) | on_page/lighthouse/live/json | Lighthouse 12.2.0 as a phone |
Keyword for Site | keywords_data/google_ads/keywords_for_site/live | Ideas for the whole site, search partners included |
URL_search | Firecrawl’s v1/scrape | Raw HTML of the whole page, from a cache up to four hours old |
Code builds the dashboard from the agent’s scores and plan, and the keywords come from the merged measurements. Cloudflare Upload saves it as text/html, so a browser shows it as a page.
Each check costs money at three vendors. Some of the original logic also skews what the dashboard says.
Get Ranked Keywords sorts from the lowest volume, so a page with more ranked keywords than its limit returns its quietest ones. Change asc to desc in its bodyMerge deep-merges its inputs, and both keyword lists share the name keywords. Entries at one position merge, so a keyword idea can show another keyword’s rankPrepare AI Inputgemini-3-flash-preview with no shutdown date and names gemini-3.6-flash as its replacementAn n8n workflow that checks one web page for the country and language you pick. DataForSEO crawls it, times it on a phone
with Lighthouse and lists the keywords it ranks for, plus keyword ideas for its site. A Gemini agent reads those results and the
live page, then writes an action plan. Everything becomes an interactive HTML dashboard in your own storage bucket, at an
address you can send.
workflow.json: the workflow as n8n exports it, 22 working nodes and six sticky notes that label its rows. It holds noREADME.md: these notes.escapeHtml in Code, so a bare&, <, >, " and ' are back where they belong.Prepare AI Input could not run at all: the newlines in six placesn, and the backticks around the analysed address closed its template string early. Both are repaired.[Learn more] patterns in Filter Page Report and Prepare AI Input are escaped again. Without the backslashes,Filter Page Report deleted every L, e, a, r, n, m, o and space from each Lighthouse description.www in the file name is escaped again, in Cloudflare Upload and Get Research URL.URL_search asks for <YOUR_FIRECRAWL_KEY> in its Authorization header, and Get Research URL for YOUR_PUBLIC_URL. TheYOUR_BUCKET_NAME, as it came.workflow.json.On Page SEO,Get Ranked Keywords, On Page Lighthouse (Mobile) and Keyword for Site.Gemini 2.5 Pro.URL_search, replace <YOUR_FIRECRAWL_KEY> in the Authorization header with your key. The brackets go too, so ther2.cloudflarestorage.com address and the region is auto. Select it in Cloudflare Upload, then replaceYOUR_BUCKET_NAME with the bucket's name.Get Research URL, replace YOUR_PUBLIC_URL with the address the bucket's files open from, with no slash at the end.On form submission and check a page of your own.Get Research URL builds.On form submission takes the page's address and a country and a language from two lists. Get Country & Language Codeen for the United Kingdom in English.On Page SEO loads the page and its resources without running JavaScript. It returns the on-page score, title,Get Ranked Keywords asks for up to 100 keywords the page ranks for in that market, with rank, volume and cost per click.On Page Lighthouse (Mobile) runs Lighthouse 12.2.0 as a phone. Filter Page Report keeps the four category scores,Keyword for Site asks DataForSEO's Google Ads data for keyword ideas across the whole site. Filter Keyword for SiteMerge joins the four answers into one item, and Prepare AI Input writes them up as a Markdown report.Performance Analysis Engine is an agent on gemini-3-flash-preview. It reads the report and fetches the live page'sURL_search, which calls Firecrawl. A calculator and a date tool hang under it as well. Structured OutputMerge1 puts that answer beside the measurements. Code builds a dark HTML page from both, with a keyword bubble chartCloudflare Upload saves the page to your bucket as the site's first name and the date, such asbakery20261103.html. Get Research URL puts your public address in front of that name.The form answers as soon as it is sent. The dashboard's address is the url field in the output of Get Research URL, so
open the run under Executions to find it.
On form submission and the two maps in Get Country & Language Code. Spelllimit in the body of Get Ranked Keywords.search_volume check in Filter Keyword for Site. Its comment says 200, which is notfor_mobile in the body of On Page Lighthouse (Mobile).Structured Output.Code.Gemini 2.5 Pro, which runs gemini-3-flash-preview despite its name.Get Ranked Keywords orders by search volume from the lowest. A page that ranks for more keywords than its limitasc to desc in its body to get the biggest.Merge has no clash setting, so n8n deep-merges the four answers. Both keyword lists arrive under the same name,keywords, and entries at the same position merge into one: a keyword idea can show a ranked keyword's rank. To keep themFilter Keyword for Site and read both fields in Prepare AI Input and Code.Prepare AI Input writes two fixed sentences into every report: that the page is held back by its performance score andPrepare AI Input counts the H1 and H2 lists and trims the title without checking them first. A page DataForSEO returnsOn Page SEO runs no JavaScript, so a page that builds its text in the browser can look empty to it. The agent's Firecrawlgemini-3-flash-preview with nogemini-3.6-flash as its replacement. If the preview goes, pick that model in Gemini 2.5 Pro.URL_search calls Firecrawl's v1 scrape address. Its v1 reference was still published on 3 November 2026, beside a newer v2.README.md 9 KB workflow.json 118 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…