Back to Tools

E-commerce Page Title Optimiser

Use cases

Category page title optimisation Product page SEO Finding title keyword gaps Data-driven title rewrites

Splits page titles using configurable delimiters (|, -, :, —), normalises to lowercase, and creates keyword sets per URL.

Compares GSC query keywords against title keyword sets to flag missing terms.

Suggestions sorted by click volume with configurable max per page (3-20).

Optional brand name exclusion.

Exports three-sheet Excel via xlsxwriter.

Streamlit App

Platform

Browser-based (no installation required)

Input

Screaming Frog CSV with Address and Title 1 columns

GSC export with Query, Page, Clicks, Impressions (flexible column names)

UTF-8 and Latin-1 encoding supported

Output

Excel: All Suggestions, Top 20 Opportunities, Summary by Page (aggregated with top 5 keywords concatenated). Paginated interactive table.

Launch App View Source

Features

  • Configurable title delimiters: |, -, :, —
  • Click-volume ranked suggestions
  • Max suggestions slider (3-20 per page)
  • Optional brand name exclusion
  • URL path filtering for specific sections
  • Three-sheet Excel export via xlsxwriter

How to use

  1. 1 Export crawl from Screaming Frog (internal_html.csv)
  2. 2 Export query-by-page GSC data (API, GSC Data Exporter or Looker Studio; the standard UI export lacks combined Query and Page columns)
  3. 3 Upload both files and map columns if auto-detection misses
  4. 4 Select title delimiter and set brand name (optional)
  5. 5 Configure max suggestions per page (3-20)
  6. 6 Filter by URL path if needed
  7. 7 Download three-sheet Excel report

Frequently asked questions

Why can't I use the standard GSC interface export?
Because the tool needs Query and Page in the same rows of one file, and the GSC interface exports queries and pages as separate lists. You need a query-by-page export, for example from the GSC API, the GSC Data Exporter tool, or Looker Studio. Column names are auto-detected ('Top queries', 'Query' or 'query', and similar variants for page, clicks and impressions) and can be remapped manually.
Why is it suggesting a keyword that is already in my title?
A query only counts as covered when one of its individual words exactly equals an entire delimiter-separated title segment. With the title 'Blue Widgets | Acme' split on '|', the segments are 'blue widgets' and 'acme'; the query 'blue widgets' has the words 'blue' and 'widgets', neither of which equals a whole segment, so it is flagged as missing. Titles made of multi-word segments therefore produce false positives; single-word segments match correctly.
Which keywords make it into the suggestions?
Only queries with at least one click. Zero-click, impressions-only queries are excluded, then remaining suggestions are sorted by clicks and capped at your max per page setting (3 to 20, default 10). If you want to target high-impression keywords you do not yet get clicks for, this tool will not surface them.
How does the brand exclusion work?
It is a substring filter: any query containing the brand text (case-insensitive) is removed entirely, and title segments containing it are dropped from the coverage check. Short brand names can over-filter, for example a brand called 'Max' would remove the query 'air max 90'.
My CSV will not load. What encodings are supported?
Both files are read as UTF-8 first with an automatic retry as Latin-1, which covers standard Screaming Frog and GSC exports. Files in other encodings (for example UTF-16 exports from some spreadsheet tools) should be re-saved as UTF-8 CSV.

Need something built for your business?

This tool started as bespoke client work. I build custom scripts, data pipelines, and full apps for SEO and product data problems that off-the-shelf tools don't solve.

Tell Me What You Need