Rust and GPUI · Apache 2.0

A lightweight cross platform desktop SEO crawler

Shouting Robin runs on Linux, macOS and Windows. It crawls a site from your machine, can render pages in Chrome, and sorts the findings by priority. Product pages get their own checks, including GTIN check digits.

Shouting Robinhttps://zanmato.github.io › shouting-robin

Shouting Robin, a desktop SEO crawler for ecommerce

A desktop SEO crawler for Linux, macOS and Windows, built for ecommerce. Crawls from your machine and sorts the findings by priority.

Title
51 chars
Flagged below 30 or over 60 characters
Description
133 chars
Flagged below 70 or over 160 characters
Shouting Robin showing the Overview tab of a Chrome crawl of its test site, with each finding's type, priority, URL count and the count from the previous crawl
The Overview tab after a crawl of the test site in the repository. Findings are grouped into issues, opportunities and warnings and sorted by priority. When the site has been crawled before, the previous count is shown next to each one.

Checks

The results of a crawl are split into tabs. Most tabs have filters for the problems they check, and any tab can be exported as CSV.

Crawl and response

Every URL with its status code, content type, indexability, crawl depth and link score. Broken links, redirect chains and loops, and URLs with parameters are flagged.

  • Internal
  • External
  • Response Codes
  • Links
  • URL
  • Site Structure

On the page

Titles and descriptions measured in characters and in pixels, H1 and H2 checks, exact and near duplicate content, and images that are broken, over 100 KB, or missing alt text or size attributes.

  • Page Titles
  • Meta Desc
  • H1
  • H2
  • Content
  • Images

Indexing

Canonicals, robots directives, hreflang return tags, language codes and x-default, and sitemap URLs that are not indexable, do not return 200 or were not found by following links.

  • Canonicals
  • Directives
  • Hreflang
  • Sitemaps

Quality

Structured data checked against the required and recommended properties for types such as Product, Article, Recipe and JobPosting, and missing security headers. Chrome crawls add LCP, CLS, FCP and TTFB, and axe-core accessibility audits.

  • Structured Data
  • Performance
  • Accessibility
  • Security

Tour

Select a row to show the page in the details panel next to the grid.

Page details

The details panel shows the status and indexability of the page, its title, description and headings with their lengths, and a preview of the search result. Structured data, link metrics and response headers follow below.

Inlinks and Outlinks list the links to and from the page.

The Page Titles tab with one page selected, and its details, title pixel width and search result preview in the panel beside the grid

Accessibility

Chrome crawls run axe-core on every page. Each violation is a row with its rule, impact, the element it found and its HTML.

The Performance tab in the same crawl has LCP, CLS, FCP and TTFB for each page.

The Accessibility tab listing axe-core violations by page, rule and impact, with one page selected

Changes

A crawl is compared with the previous crawl of the same URL. The Changes tab lists pages that were added or removed, and pages whose status, indexability, title, H1, meta description or word count changed.

Earlier crawls are listed in the sidebar. Open one to see its results, or recrawl it with the settings it ran with.

The Changes tab comparing a Chrome crawl with an HTTP crawl of the same site from three days earlier, with two crawls in the sidebar

Ecommerce

A page counts as a product page when it has Product structured data or an og:type of product. The Ecommerce tab reads the product's data and flags:

  • Products without a price, availability, SKU, GTIN, brand or image
  • Products without review or aggregateRating
  • GTINs with the wrong length or check digit
  • Indexable product pages that are out of stock
  • Product pages without BreadcrumbList data

Valid GTIN-13

Weights alternate 3 and 1 from the right. The check digit brings the sum up to the next multiple of ten. The crawler runs the same check on every product.

The Ecommerce tab with filters for missing price, availability, SKU, GTIN and brand, and the product page of the test site selected
The Ecommerce tab. The test site has one product page, reached by two URLs.

Features

History

Every crawl is saved in a local SQLite database. Open, recrawl or delete earlier crawls from the sidebar.

Chrome rendering

Turn on Chrome to crawl pages after JavaScript has run. The server HTML is fetched as well, so content that only exists after rendering is flagged.

Reports

Export the Overview as a PDF report with sample URLs for each finding, the current tab as CSV, or every tab as CSV files at once.

Over 90 checks

From title pixel widths and hreflang return tags to GTIN check digits and security headers. Each check is a filter on its tab, so the URLs it flags are one click away.

Download Shouting Robin 0.2.1

Checksums for every file are in SHA256SUMS.

Your system

macOS Apple silicon

brew install --cask zanmato/tap/shouting-robin

The app isn't notarized yet. If you download it yourself, clear the quarantine flag after unpacking:

xattr -r -d com.apple.quarantine "Shouting Robin.app"
Your system

Linux x86_64

sudo apt install ./shoutingrobin_0.2.1_amd64.deb

Chrome or Chromium is only needed for Chrome crawls.

What's new in 0.2.1

Released 9 October 2026

Full changelog · All releases

Performance
  • Moved rendering to gpui-fast, on GPUI Kit 0.7.1