Keyword Intent Clusterer

Paste a keyword list to classify its intent with Arabic and English vocabulary rules and cluster it by Jaccard similarity on stems, with a suggested page per group, cannibalization detection and CSV export.

Workspace

How the result is calculated

Intent uses vocabulary rules in priority order: transactional (buy, price, سعر, اشتري…), then commercial (best, review, أفضل, مقارنة…), then navigational (login, official, تسجيل دخول, or the brand name in two words or fewer), otherwise informational (how, what, كيف, شرح…). Clustering: each keyword is tokenised after light normalisation (removing “ال”, the prefixes و/ب/ل/ف and English plural s/ies) and stopword removal, then added to the first group whose representative reaches the Jaccard similarity threshold (0.5 by default). A group with mixed intents is flagged as possible cannibalization.

Limits: An honest alternative to “keyword difficulty”: no search volumes, no difficulty and no SERP data (unavailable locally). Clustering is lexical, not semantic: “iphone price” and “iphone cost” will not group. Classification uses short dictionaries and may err on ambiguous words. Tune the threshold to your list.

FAQ

What is cannibalization?

Two pages targeting the same intent compete; a mixed-intent group needs different pages.

How do I tune the threshold?

Raise it for narrower groups and lower it for broader ones; start at 0.5.

Newest tools

Recently added free tools — they run in your browser without uploading your data

All tools →

Write HTML, CSS and JS and see the preview instantly in an isolated iframe with a console, screen sizes and link sharing

Local

Draw a workflow from JSON as an SVG diagram using original positions or an automatic layout, coloured by category, with SVG download

Local

Automatically fix trailing commas, single quotes, missing fields, duplicate names and dangling connections, with a report of every change

Local

Convert a cURL command into an HTTP Request node ready to paste into n8n, with secret redaction, timeout and retry

Local