Every operation explained with plain-English descriptions and real SEO examples. Use the contents below to jump to any section.
Click inside the big text area and paste anything — keywords, URLs, domain names, titles, or any line-based data. Each line is treated as one item. The line counter in the top-right of the input box updates as you type.
💡 Try the Load Example button to see how a keyword list looks before using your own data.Click any button in the Operations sidebar on the right. Use the search box at the top of the sidebar to filter by keyword — type "slug" or "domain" to find tools instantly. The selected operation is highlighted in orange.
Some operations show extra fields below the input area — a text field, a number, a dropdown. These appear automatically when needed and disappear when not. You never have to hunt for settings.
💡 Example: selecting Find & Replace shows a Find field and a Replace With field. Add Prefix shows one text field for the prefix text.After processing, the result appears below the input. Use 📋 Copy to copy everything to your clipboard, ⬇ .txt to save as a text file, 📊 .csv to export a spreadsheet-ready CSV, or ↑ Use as input to feed the result back for the next operation.
Always start here when you paste raw data from scrapers, exports, or copy-paste from spreadsheets. Messy input gives messy results.
Strips invisible spaces from the beginning and end of every line, then deletes any line that ends up empty. This is the single most useful starting operation — run it first on any raw data.
💡 Before: running shoes → After: running shoes
Deletes lines that contain only whitespace, without touching the content of other lines. Useful after splitting CSV data or copying from a spreadsheet that left empty rows between entries.
Keeps only the first time each line appears. The match is character-perfect — Buy Shoes and buy shoes are treated as different lines and both kept.
Same as above but ignores capitalisation — BUY SHOES, Buy Shoes, and buy shoes are all treated as the same line. The first version found is kept.
Every filter operation has two modes — Remove (delete matching lines) and Keep (delete everything that doesn't match). Think of Keep as a search within your list.
Type a word or phrase in the field that appears. Every line containing that text is removed or kept. Tick Case insensitive to ignore capitalisation.
💡 Have a list of URLs and want only the blog posts? Use Keep Lines Containing with/blog/. Want to remove all product pages? Use Remove Lines Containing with /product/.
Only matches at the very beginning of the line. Useful for stripping comment lines, filtering URLs by protocol, or keeping only lines that begin with a specific keyword.
💡 Remove lines starting with# to clean up a robots.txt or config file you've pasted in. Keep lines starting with https:// to isolate absolute URLs.
Matches at the very end of the line. Great for filtering file types or URL extensions.
💡 Keep lines ending with.html to isolate static pages. Remove lines ending with /feed/ to drop RSS URLs from a crawl export.
One click — no text field needed. Removes or keeps any line that contains at least one number anywhere in it.
💡 Keyword list containsbest laptop 2024 and best laptop? Use Remove Lines With Digits to drop the year-specific versions in one click.
Enter a character count. Lines shorter than that number are removed (to kill noise like single words or stop words), or lines longer than the limit are removed (to drop over-stuffed phrases).
💡 Remove lines shorter than10 characters to filter out single-word keywords. Remove lines longer than 60 to keep only titles that fit in a Google SERP.
For advanced users. Type a regular expression (without the surrounding slashes) and toggle case-insensitive matching. Every line that matches the pattern is removed or kept.
💡 Keep only lines that look like email addresses:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}. Remove lines that contain a year between 2000–2029: 20[0-2][0-9].
Adds your chosen text to the beginning of every line. Whatever you type in the field is glued to the front of each item.
💡 Turn a list of page slugs into full URLs: prefixhttps://example.com/ to about-us → https://example.com/about-us. Or prefix buy (with a space) to a product keyword list.
Adds your chosen text to the end of every line.
💡 Append review to a product list to generate review keyword variants. Append ?utm_source=email to tag a URL list for campaign tracking.
Puts double or single quote marks around every line. Choose the quote type from the dropdown that appears.
💡 Wrap keywords in double quotes to create phrase-match ready strings for Google search:"best running shoes". Wrap values in single quotes to generate a SQL IN ('val1','val2') list.
Adds a Google search operator to the start of every line. Pick from allintitle:, intitle:, inurl:, site:, or link:.
site: to create site:competitor.com queries you can run one by one in Google to check their indexed pages.
Prepends 1., 2., 3.… to every line in order. Instant numbered list — useful for ranking lists, ordered reports, or creating a numbered keyword list to share with a client.
Alphabetical sort in either direction. Good for normalising a list before comparing it with another, or for producing a tidy client-ready deliverable.
Sorts by the number of characters in each line. Short lines first = head terms at the top. Long lines first = long-tail at the top. Very useful for spotting which keywords are broad vs. specific.
💡 Shortest first quickly separates 1-2 word head terms from 5+ word long-tail phrases — helps you decide which need a landing page vs. a blog post.Counts the number of words (not characters) in each line and sorts accordingly. Especially useful for keyword clustering — single-word terms at the top, multi-word intent phrases at the bottom.
Randomises the order. Useful for unbiased sampling from a large list, randomising the order of ad copy variations for testing, or anonymising the ranking within a list before sharing.
Flips the entire list upside down. If you had it sorted A→Z, reversing gives you Z→A without re-running a sort. Also useful if a tool outputs items in ascending order and you want descending.
These four operations work with two lists. When you select one, a second text area appears beneath the first — paste your second list there. The top area is always List 1.
Combines both lists into one. Tick Remove duplicates after union to automatically deduplicate the result. This is the everyday "merge and clean" operation.
💡 You've exported keywords from Ahrefs into List 1 and from SEMrush into List 2. Union + deduplicate gives you one clean master list with no repeats.Creates every possible pairing of one line from List 1 with one line from List 2, joined by a separator (space by default, but you can change it). If List 1 has 5 items and List 2 has 10, you get 50 combinations.
List 1: best, cheap, buy List 2: running shoes, sneakers Result: best running shoes best sneakers cheap running shoes cheap sneakers buy running shoes buy sneakers💡 The fastest way to generate a long-tail keyword list at scale. Use modifiers as List 1 (best, top, cheap, near me, for women) and seed keywords as List 2.
Returns only lines that appear in both lists. Lines unique to either list are dropped.
💡 List 1 = your ranking keywords. List 2 = a competitor's ranking keywords. Intersection shows where you're competing head-to-head. These are your battleground terms — prioritise them.Returns lines from List 1 that do not appear in List 2. Lines that exist in both are removed.
💡 List 1 = competitor's keywords. List 2 = your own keywords. The result is your keyword gap — terms they rank for that you don't. Swap the lists to find your exclusive wins.Splits each line at a character you specify (comma by default) and keeps only the column at the index you choose. Column numbering starts at 0, so the first column is 0, second is 1, and so on.
keyword,clicks,impressions. Set delimiter to , and column to 0 to extract just the keywords in one click.
Changes every character in every line to lower or upper case. Run Lowercase before deduplicating case-insensitively, or before merging lists from different sources to normalise everything first.
💡 Always lowercase your keyword list before running Remove Duplicate Lines (case-insensitive) to guarantee a clean result.Capitalises the first letter of every word in every line. Perfect for turning a raw keyword list into page titles, H1 headings, or meta titles without manually editing each one.
💡 Before:best running shoes for flat feet → After: Best Running Shoes For Flat Feet
Lowercases everything, then capitalises only the first letter of each line (and after sentence-ending punctuation like ., !, ?). Ideal for meta descriptions and ad copy.
BEST RUNNING SHOES FOR FLAT FEET → After: Best running shoes for flat feet
Turns any line of text into a clean, URL-safe slug: lowercased, spaces replaced with hyphens, special characters and punctuation stripped, double hyphens collapsed.
💡 Before:Best Running Shoes For Flat Feet (2024) → After: best-running-shoes-for-flat-feet-2024. Paste a list of blog post titles and get all your slugs in one go.
Strips over 80 common English stop words (the, a, an, and, in, of, for, with, is, are, etc.) from every line. What's left is the semantic core of each phrase — the words that actually carry meaning.
💡 Before:what are the best running shoes for flat feet → After: best running shoes flat feet. Great for extracting topic clusters from a long-tail keyword list.
Removes every numeric character from every line. Useful when you want to group keywords by topic regardless of year, model number, or price.
💡 Before:best smartphone 2024 review → After: best smartphone review. Then deduplicate to consolidate year-variants under one topic.
Adds a [N words] tag to the end of each line. Useful for auditing title lengths or quickly seeing how many words are in each keyword without counting manually.
best running shoes for flat feet [6 words]
Adds a [N chars] tag to the end of each line. Extremely useful for meta title and description audits — paste your titles, append char count, and instantly see which ones are too long.
Best Running Shoes For Flat Feet [33 chars]. Any line showing over 60 chars needs trimming for Google's title display.
Replaces all occurrences of a word or phrase with something else across every line. Tick Case insensitive to catch all capitalisation variants.
💡 Localise a UK keyword list for the US market: replacecolour with color, tyre with tire. Or replace your old domain name with a new one across a URL list.
These operations are built for lists of URLs — from crawl exports, backlink reports, Search Console, or any SEO tool. They all handle both full URLs (https://example.com/page/) and bare paths (/page/).
Strips everything except the root domain from each URL. Protocol (https://) and www. are removed. Paths, query strings, and fragments are all dropped.
https://www.example.com/blog/post-1/?utm_source=google → After: example.com. Paste a backlink report URL list and get a clean domain list to check in your Domain Authority checker or Whois tool.
Keeps the full protocol and domain but removes the path and everything after it. Unlike Extract Domain, this keeps https:// so the results are still clickable URLs.
https://example.com/blog/seo-tips/ → After: https://example.com. Useful when you need the homepage URLs from a list of deep links.
Removes everything from the ? (or #) onwards. The path stays intact. Useful for cleaning up crawl exports or analytics reports full of tracking parameters.
https://example.com/page/?utm_source=google&utm_medium=cpc → After: https://example.com/page/. Run this before deduplicating a URL list to collapse all UTM variants to their canonical URL.
Collapses your entire list into a single line, with each item separated by the delimiter you choose (default: comma). Produces a flat string from a vertical list.
💡 Need a SQLIN clause? Join with , then wrap in quotes → 'keyword1','keyword2','keyword3'. Need a comma-separated value for an AdWords upload? Join is your tool.
The opposite of Join — takes a single line of comma- (or any delimiter-) separated values and explodes it into one item per line. Trims whitespace from each item automatically.
💡 Someone sent you keywords asshoes, boots, trainers, sandals in one line. Split by , and you have a proper line-by-line list ready to process.
When you copy a column from Google Sheets or Excel and paste it, the values are separated by tab characters. This operation splits on those tabs, giving you a clean one-item-per-line list.
💡 Copy a keyword column from Sheets → paste into the input → run Google Sheets Column → Lines → done. No need to export a CSV first.These two operations are audit tools. Paste a list of titles or descriptions, run the validator, and every line gets tagged instantly — no spreadsheet formulas needed.
Checks every line against Google's recommended title tag length of 60 characters. Each line gets a status tag prepended showing whether it passes and its exact length.
[OK 45 chars] Best Running Shoes For Flat Feet [TOO LONG 78 chars] The Definitive Guide to Choosing Running Shoes for People With Flat Feet in 2024💡 Paste a list of page titles from a crawl export. Every line flagged TOO LONG needs editing before your next site audit or relaunch. Use Keep Lines Containing with
TOO LONG afterwards to isolate just the problem titles.
Same concept but for meta descriptions — Google typically truncates anything over 160 characters in search results. Each line is tagged OK or TOO LONG with its exact character count.
[OK 118 chars] Find the best running shoes for flat feet in our 2024 guide. Expert picks, buying advice and top-rated options reviewed. [TOO LONG 184 chars] Discover our comprehensive guide to the very best running shoes designed specifically for people with flat feet, including expert reviews, comparison tables and buying tips for 2024.💡 After validating, use Remove Lines Containing with
[OK to strip the passing ones and keep only the descriptions that need shortening.
Displays four numbers about your list: total lines, non-empty lines, total word count, and total character count. No extra inputs needed — just process and read the dashboard.
💡 Useful as a sanity check after merging two lists — confirms you ended up with the number of items you expected. Also handy for estimating content volume (total words across a set of titles).Counts how often each word appears across all lines in your list, ignoring single letters and sorting by frequency. The result is displayed as a bar chart showing the top words.
💡 Paste 500 keywords and run Word Frequency. If best, cheap, and review dominate, your list skews towards commercial intent — useful insight before you start mapping keywords to content types.Tests a list of URLs against your robots.txt rules and flags URLs that match common noindex patterns. Two things are checked for each URL:
Robots.txt check: Paste your full robots.txt content into the field that appears. The tool parses all User-agent: * and Googlebot rules and applies Google's longest-match algorithm to each URL. Each URL gets ✓ Allowed, ⛔ Blocked, or – No rules.
Noindex risk check: Even if robots.txt allows a URL, certain URL patterns are commonly noindexed in CMS settings. The tool flags these automatically: tag archives, paginated pages (/page/2/), search results (?s=), author/date archives, RSS feeds, AMP pages, print parameters, WordPress internals, and more.
Input list (top textarea): https://example.com/blog/ https://example.com/tag/shoes/ https://example.com/page/2/ https://example.com/wp-admin/ Robots.txt field: User-agent: * Disallow: /wp-admin/ Allow: / Results: /blog/ → ✓ Allowed | ✓ Clean /tag/shoes/ → ✓ Allowed | ⚠ Tag archive /page/2/ → ✓ Allowed | ⚠ Pagination /wp-admin/ → ⛔ Blocked | ✓ Clean💡 After a migration, paste your new sitemap URLs as the list and your new robots.txt as the rules — instantly see if any pages you want indexed are accidentally blocked. Export the full report as CSV for your audit document.
These are step-by-step sequences that combine multiple operations. Use ↑ Use as input after each step to chain operations without copy-pasting.
Paste raw keyword dumps from Ahrefs, SEMrush, and Google Suggest into the input area.
Run Trim & Remove Empty Lines → clean consistent input.
Run Convert to Lowercase → normalise capitalisation.
Run Remove Duplicate Lines (case-insensitive) → unique set.
Run Remove Lines Shorter Than… (set to 10 chars) → filter stop-word noise.
Run Word Frequency Report → identify your top modifier words.
Run Keep Lines Containing… with a top modifier → focused sub-list.
Run Sort by Word Count (Most First) → long-tail at the top for content planning.
List 1: your seed keywords (e.g. running shoes, trainers, sneakers).
List 2: intent modifiers (e.g. best, cheap, buy, review, for women, near me, 2024).
Run Cartesian Product → generates every combination.
Run Remove Duplicate Lines (case-insensitive) → clean up any accidental duplicates.
Run Sort by Word Count (Fewest First) → head terms at top, long-tail below.
Run Validate Meta Title Length → check none are too long for a title tag.
Export your ranking keywords from Google Search Console → List 1.
Export a competitor's top keywords from Ahrefs or SEMrush → List 2.
Run Difference (Only in List 1) → keywords you rank for that they don't. Your exclusive wins.
Swap the lists. Run Difference (Only in List 1) again → keywords they have that you don't. Your opportunity gaps.
On the gap list: run Sort by Word Count (Fewest First) → prioritise shorter, broader gap terms first.
Export your backlink report from Ahrefs or Majestic as a CSV. Paste the URL column into the input.
Run Google Sheets Column → Lines if you pasted directly from Sheets.
Run Strip Query Strings from URLs → clean up any tracking params on the linking URLs.
Run Extract Domain from URLs → get just the root domains.
Run Remove Duplicate Lines (case-insensitive) → unique domain list.
Run Sort A → Z → alphabetical for easy scanning.
Export as CSV → paste into your Domain Authority checker or Whois tool.
Crawl your site with Screaming Frog. Export the Title column as a CSV. Paste the title column into the input (use Google Sheets Column → Lines if pasting from Sheets).
Run Trim & Remove Empty Lines → clean the data.
Run Validate Meta Title Length → every title gets tagged OK or TOO LONG with its length.
Run Keep Lines Containing… with TOO LONG → isolate only the problem titles.
Export as CSV → your title audit deliverable is ready.
Repeat with the Description column and Validate Meta Desc Length.
Fetch your new site's /sitemap.xml and extract all the <loc> URLs. Paste them into the input (one per line).
Select Robots.txt / Noindex Tester from the Analysis group in the sidebar.
Fetch your live /robots.txt (just open it in your browser and copy-paste the whole thing) into the robots.txt field that appears.
Hit Process. Any URLs showing ⛔ Blocked need investigating — check your robots.txt rules haven't accidentally blocked indexable pages.
Review the ⚠ Noindex Risk column — pagination, tag archives, and author pages flagged here should be verified in your CMS that they actually carry a noindex tag.
Export the full table as CSV → attach to your migration QA document.
Press Ctrl+Enter (or Cmd+Enter on Mac) anywhere on the page to run the currently selected operation. If no operation is selected a toast message will remind you to pick one. Fastest way to work.
After every result, the ↑ Use as input button loads the output back into the input textarea. This is how you chain operations — clean → deduplicate → filter → sort — all without leaving the page or copy-pasting.
Your input list is automatically saved in your browser's local storage as you type. If you close the tab or refresh the page, your list is restored when you come back. Click 🗑 Clear saved in the toolbar to wipe the saved draft.
The search box at the top of the sidebar filters operations as you type. Type domain to find all URL tools, case to find case-conversion tools, length to find validators. You don't need to remember which group anything is in.
The 📊 .csv button in the result area downloads your output as a two-column CSV (No and Keyword) ready to open in Google Sheets or Excel. The Robots.txt tester has its own Export CSV button that includes all four result columns.
The 📋 Paste button in the toolbar reads directly from your clipboard (your browser will ask for permission once). Saves you clicking into the textarea first.