What Keyword Triage does
Keyword Triage reads a keyword report exported from Google Ads or Microsoft Ads and tells you, keyword by keyword, whether the keyword is profitable at your target cost per acquisition (CPA) or target return on ad spend (ROAS). Each keyword gets one of five verdicts, a one-line reason, and an estimate of how much it spent above target.
| What it is | A free, browser-based keyword profitability checker for pay-per-click (PPC) search ads |
|---|---|
| Works with | Google Ads and Microsoft Ads (Bing Ads) keyword reports and search term reports |
| File formats | CSV, TSV, UTF-16 text and Excel .xlsx. The old Excel 97–2003 .xls format is not supported. |
| Required columns | Keyword, Cost and Conversions |
| Goal types | Target CPA or target ROAS. The target is required and is entered before the report is uploaded. |
| Verdicts | Cut, Trim bids, Keep, Scale, Needs data |
| Outputs | Verdict table, CSV export, and the Cut list copied as exact-match negative keywords |
| Privacy | The report is processed in the browser. A Content-Security-Policy blocks every network request except the site’s own stylesheet and fonts, so the file cannot be uploaded. |
| Account access | None. Keyword Triage never connects to your ad account and cannot change bids, budgets or keywords. |
| Price | Free, no sign-up |
How to find unprofitable keywords in Google Ads with Keyword Triage
To find unprofitable Google Ads keywords, enter your break-even CPA or ROAS in Keyword Triage, export a keyword report covering 60 to 90 days, drop it in, and review the keywords labeled Cut.
- Set your target. Choose Target CPA or Target ROAS and enter your break-even number. The target is required: the upload box stays locked until it is filled in, because every verdict is measured against it.
- Export the report. In Google Ads, go to Campaigns › Keywords › Search keywords, set the date range to the last 60–90 days, and choose Download › Excel .csv or .xlsx. In Microsoft Ads, go to Campaigns › Keywords, set the date range, and choose Download › CSV or Excel.
- Load the file. Drop the file onto the upload box at the top of this page, or click Choose file. Keyword Triage detects the header row, the columns and the currency automatically.
- Review the Cut list. Click the Cut card to filter the table. Every row explains its verdict, such as “Spent $410 with no conversions across 96 clicks.”
- Act on it. Pause the Cut keywords, or click Copy cut list as negatives and paste the exact-match negatives into a negative keyword list. Lower bids on Trim keywords, and give Scale keywords more budget or higher bids.
How Keyword Triage decides if a keyword is profitable
Keyword Triage compares each keyword’s CPA or ROAS with your target and sorts it into one of five verdicts. A keyword with no conversions is judged on spend alone: it is cut once its spend reaches the zero-conversion threshold.
| Verdict | Rule in CPA mode | Rule in ROAS mode | Recommended action |
|---|---|---|---|
| Cut | No conversions after spending the zero-conversion threshold, or CPA more than 2× target | No conversion value after spending the threshold, or ROAS below 50% of target | Pause the keyword or add it as a negative |
| Trim bids | CPA about 20% to 100% above target | ROAS 50% to 83% of target | Lower the bid or tighten the match type before cutting |
| Keep | CPA within about 20% of target, or better than target with fewer conversions than the scaling minimum | ROAS 83% to 125% of target, or better with fewer conversions than the scaling minimum | Leave it running |
| Scale | CPA at least 20% below target, with at least the minimum conversions to scale (default 2) | ROAS at least 125% of target, with at least the minimum conversions to scale | Raise budget or bids, guided by lost impression share |
| Needs data | No conversions and spend below the threshold, or an over-target keyword with too few clicks and conversions to judge | Same as CPA mode, using conversion value | Leave it running and check again later |
The efficiency score behind each verdict
Keyword Triage converts every converting keyword into one efficiency score, where 1.0 means exactly on target and higher is better:
- CPA mode: efficiency = target CPA ÷ keyword CPA, where keyword CPA = cost ÷ conversions.
- ROAS mode: efficiency = keyword ROAS ÷ target ROAS, where keyword ROAS = conversion value ÷ cost.
The verdict cut-offs are: efficiency below 0.5 is Cut, 0.5 to 0.83 is Trim bids, 0.83 to 1.25 is Keep, and 1.25 or higher is Scale. A keyword with efficiency of 1.25 or higher but fewer conversions than the scaling minimum stays in Keep until it has more data.
Default thresholds
The target CPA or target ROAS has no default; you enter it before uploading. Every other threshold can be edited in the Your goal panel after upload, and Keyword Triage sets their defaults from your target and the uploaded report:
- Zero-conversion cut threshold defaults to 1.5× target CPA in CPA mode. In ROAS mode it defaults to 2 × (average conversion value ÷ target ROAS).
- Minimum clicks before judging defaults to 1.5 ÷ the account conversion rate, kept between 10 and 100 clicks. At a 3% conversion rate the default is 50 clicks.
- Minimum conversions to scale defaults to 2.
How “Spend above target” is calculated
Spend above target is the amount a keyword spent beyond what its results were worth at your target. Keyword Triage adds it up across Cut and Trim bids keywords to estimate how much you would save by cutting and trimming to target.
- CPA mode: spend above target = cost − (conversions × target CPA).
- ROAS mode: spend above target = cost − (conversion value ÷ target ROAS).
- Zero-conversion keywords in Cut count their full cost as spend above target.
Worked example: seven Google Ads keywords at a $50 target CPA
This example uses a target CPA of $50, so the default zero-conversion cut threshold is $75 (1.5 × $50) and the minimum conversions to scale is 2.
| Keyword | Cost | Conversions | CPA | Efficiency | Verdict | Spend above target |
|---|---|---|---|---|---|---|
| copywriting jobs | $410 | 0 | — | — | Cut (no conversions, spend past $75) | $410 |
| ppc management pricing | $620 | 5 | $124 | 0.40 | Cut (CPA over 2× target) | $370 |
| freelance copywriter | $390 | 6 | $65 | 0.77 | Trim bids (30% over target) | $90 |
| google ads copywriter | $310 | 6 | $51.67 | 0.97 | Keep (on target) | — |
| saas copywriter | $35 | 1 | $35 | 1.43 | Keep (strong, but only 1 conversion) | — |
| ppc audit | $360 | 12 | $30 | 1.67 | Scale (40% under target) | — |
| b2b copywriter | $70 | 0 | — | — | Needs data ($70 of the $75 threshold) | — |
In this example, the two Cut keywords and one Trim bids keyword spent $870 above target ($410 + $370 + $90). If “ppc audit” also shows 25% Search lost IS (budget), Keyword Triage recommends raising that campaign’s budget.
Which report columns Keyword Triage needs
Keyword Triage needs three columns: Keyword, Cost and Conversions. Optional columns make the advice more specific. Column names are matched automatically, from English or Swedish Google Ads exports (Sökord, Kostnad, Konverteringar), and any column can be reassigned under Column mapping.
| Column | Required | Google Ads name | Microsoft Ads name | Used for |
|---|---|---|---|---|
| Keyword | Yes | Keyword, Search keyword or Search term | Keyword or Search term | Identifying each row |
| Cost | Yes | Cost | Spend | CPA, ROAS and spend above target |
| Conversions | Yes | Conversions | Conversions or Conv. | CPA and the zero-conversion rule |
| Conversion value | No | Conv. value | Revenue | ROAS mode (unavailable without it) |
| Clicks | No | Clicks | Clicks | The minimum clicks rule and the default threshold |
| Match type, Campaign, Ad group | No | Match type, Campaign, Ad group | Match type, Campaign name, Ad group name | Labels and filtering |
| Lost impression share | No | Search lost IS (budget), Search lost IS (rank) | Impression share lost to budget, Impression share lost to rank | Scaling advice |
Summary rows such as “Total: Account” are skipped automatically. Keyword Triage can also triage a search term report: load it, then set the Keyword field to the Search term column under Column mapping, and the Cut list becomes a list of search terms to add as negatives.
Is my keyword report uploaded anywhere?
No. Keyword Triage reads the file with the browser’s FileReader API and analyzes it in JavaScript on your device. The page sets a Content-Security-Policy with default-src 'none' and connect-src 'none', which tells the browser to block every network request the page could make, including fetch, XHR, beacons, external scripts, fonts and images. The one request it allows is for this site’s own stylesheet (style-src 'self'), and a stylesheet request can’t carry your report. The only thing Keyword Triage stores is your light or dark theme preference. You can load the page, disconnect from the internet, and it keeps working.
What Keyword Triage does not account for
Keyword Triage judges keywords on the last-click conversions and costs in the report, so its verdicts are starting points, not autopilot. Check these before pausing a high-spend keyword:
- Conversion lag: Google Ads credits a conversion to the date of the click, and conversions can be reported up to 90 days later, so recent days can show an inflated CPA and a deflated ROAS (Google Ads Help: About conversion lag reporting). End the date range a few days before today, or check the Days to conversion segment first.
- Assisted conversions: upper-funnel keywords can start journeys that another keyword gets credit for.
- Seasonality: a date range that spans a peak or a slump can misjudge a keyword’s normal performance.
- Lifetime value: a keyword that loses money on the first purchase can still be profitable on repeat purchases.
- Brand keywords: brand terms often look extremely efficient because they capture demand that would have converted anyway.
Frequently asked questions
What is a good CPA for Google Ads keywords?
A good CPA is any CPA below your break-even CPA, which is the gross profit you make from one conversion. If a sale brings in $200 of gross profit, any keyword with a CPA under $200 is profitable before overhead. Keyword Triage asks for your break-even CPA or target CPA before you upload a report, because every verdict is measured against it.
How do I calculate break-even ROAS?
Break-even ROAS is 1 divided by your gross margin. A product with a 40% gross margin has a break-even ROAS of 2.5 (1 ÷ 0.40), meaning every $1 of ad spend must bring back $2.50 in revenue to cover product costs. Enter it in Keyword Triage as a target ROAS of 2.5.
When should I pause a keyword with zero conversions?
Pause a zero-conversion keyword once it has spent more than you would pay for one conversion, with some margin for bad luck. Keyword Triage uses 1.5× your target CPA as the default cut threshold, so with a $50 target CPA a keyword is cut after spending $75 with no conversions.
How much data do I need before judging a keyword?
Use 60 to 90 days of data so most keywords have enough clicks to judge. Keyword Triage leaves a keyword in Needs data until it reaches the minimum clicks, which defaults to about 1.5 expected conversions’ worth of clicks (1.5 ÷ your conversion rate, between 10 and 100 clicks).
Does Keyword Triage work with Microsoft Ads?
Yes. Keyword Triage reads Microsoft Ads (formerly Bing Ads) keyword reports in CSV or Excel format and recognizes Microsoft column names such as Spend, Revenue and Impression share lost to budget.
Can Keyword Triage change bids or pause keywords in my account?
No. Keyword Triage never connects to Google Ads or Microsoft Ads. It only reads the file you give it, and you make any changes in your ad account yourself.
Is Keyword Triage free?
Yes. Keyword Triage is free, needs no account or sign-up, and has no usage limits.
Glossary
- CPA (cost per acquisition)
- Cost divided by conversions. The average amount spent to get one conversion.
- ROAS (return on ad spend)
- Conversion value divided by cost. A ROAS of 4 means $4 of revenue for every $1 spent.
- Break-even CPA
- The gross profit from one conversion. Keywords with a CPA above it lose money.
- Break-even ROAS
- 1 divided by gross margin. Keywords with a ROAS below it lose money.
- Search lost IS (budget)
- The share of eligible impressions a keyword missed because its campaign ran out of budget.
- Search lost IS (rank)
- The share of eligible impressions a keyword missed because its Ad Rank (bid and quality) was too low.
- Exact-match negative keyword
- A negative keyword in square brackets, such as [copywriting jobs], that blocks ads only for that exact search.