Back to Tools

Navigation Label Mismatch Detector

Use cases

Auditing navigation label consistency across e-commerce categories Spotting renamed categories not updated in menu templates Aligning anchor text with H1s for internal linking best practice

Takes a Screaming Frog All Inlinks export and an Internal HTML export.

Identifies navigation links as rows where alt text equals anchor text, then merges each link with its destination page's H1-1 and Title 1.

Extracts the primary keyword from the title (text before a configurable separator, default |) and case-insensitively compares the anchor against both the H1 and the title keyword.

A link is flagged as mismatched when either comparison fails.

Crawl Data

Platform

Python script (requires Python 3.x)

Input

Screaming Frog All Inlinks CSV (Bulk Export > Links > All Inlinks)

Screaming Frog Internal HTML CSV (Internal tab > filter HTML > Export)

Output

CSV with columns: Source, Destination, Anchor, H1-1, Page Title Primary KW, Anchor Matches H1, Anchor Matches Title KW, Mismatch. Sorted with mismatches first.

View Source

Features

  • Navigation link detection via alt text = anchor text heuristic
  • Case-insensitive comparison of anchor vs H1 and title primary keyword
  • Configurable title separator (default |) for primary keyword extraction
  • Deduplication on anchor, H1 and title combination
  • Match rate metric and mismatch-only filter toggle
  • Column mapping with Screaming Frog defaults (Source, Destination, Alt Text, Anchor, Address, H1-1, Title 1)

How to use

  1. 1 Upload your All Inlinks CSV export
  2. 2 Upload your Internal HTML CSV export
  3. 3 Check column mappings (defaults match Screaming Frog)
  4. 4 Set the title separator character in the sidebar
  5. 5 Click Find Mismatches
  6. 6 Review and download the results CSV

Frequently asked questions

How does it identify which links are navigation links?
It filters the All Inlinks export to rows where the Alt Text column exactly equals the Anchor column. This heuristic catches image-based navigation and menu templates where the alt attribute mirrors the visible link text. Text-only links without an alt attribute will not be detected as navigation.
What counts as a mismatch?
A navigation label is flagged when it does not case-insensitively match BOTH the destination page's H1 and the primary keyword extracted from the page title. If the anchor matches the H1 but not the title keyword (or vice versa), it is still flagged.
How is the primary keyword extracted from the page title?
The title is split on the configured separator character (default |) and the first segment is taken, with trailing whitespace stripped. So 'Widgets | Example Store' yields 'Widgets' as the primary keyword.
Why do I see zero navigation links found?
The tool only keeps rows where Alt Text equals Anchor. If your navigation uses pure text links (no images, no alt attributes), no rows will pass this filter. Check your All Inlinks export to confirm the Alt Text column is populated for navigation links.
Does it handle duplicate navigation links across pages?
Yes. After identifying navigation links, results are deduplicated on the combination of Anchor, H1-1 and Title 1, keeping only the first occurrence. This means a menu link repeated on every page only appears once in the output.

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