From the first crawl to a client report ready to sign — every feature runs locally, explainably, and without a forced subscription.
Crawling
Crawl your website
A spider in the spirit of Screaming Frog: follows links to the depth you choose, respects robots.txt and crawl-delay, reads XML sitemaps, follows redirect chains to the end, and evaluates every page on more than eighty signals — title and description including pixel width, headings, canonicals, hreflang, structured data, images, internal linking, response times.
SEO
Audit SEO
More than a hundred checks, each with a German and an English explanation, a recommended action, and a link to the authoritative documentation — from missing titles through redirect loops and hreflang reciprocity to near-duplicate detection via SimHash.
GEO
Audit GEO
Can an AI answer engine fetch, chunk, verify, and attribute the page? With an AI crawler overview and the distinction that matters: training crawlers versus answer crawlers.
AI
Ask language models
OpenAI, Claude, Gemini, Mistral, and Grok assess crawled pages — titles, search intent, citability. Costs are shown before you start, a limit applies, and token usage is reported.
Migration
Secure your migrations
Before and after a relaunch: gather the inventory from a crawl, the sitemap, Search Console, or a site: query, map old URLs to new ones, assess every redirect, and weight the findings by the old URL's actual clicks. A broken URL with no traffic ranks below a broken one with a thousand clicks a month.
Migration
Compare staging against live
Crawl both environments and compare them page by page. Moved content is found across nine levels of decreasing confidence — from byte-identical source to an evolved slug — and emitted as ready-to-use server configuration: .htaccess, nginx, or web.config, with anything uncertain commented out.
Segments
Break it down by segment
Shop, blog, careers: “412 pages without a description” becomes the question of which area is affected. Whatever matches no definition stays visible under “No segment”.
Sitemap
Generate a sitemap
A sitemap.xml from the crawl: all internal, indexable pages with status 200, as an index file from 50,000 URLs. A lastmod is deliberately not invented.
Sitemap
Check & compare sitemaps
Check one or two sitemaps — as a URL or a file, an index together with all its parts — for everything the files themselves can answer: protocol and limits, every URL, lastmod, changefreq, priority, hreflang. Two inventories side by side show which pages only one of them lists, which only the other, and what both list in different spellings — the freshly generated one against the live one, before Google notices the difference.
Search
Search text across pages
Grep for your website: in the source or in the visible text, literal or as a regex, and also inverted — which pages do not have this. Runs on the loaded crawl.
Extraction
Extract data from pages
Any value via CSS selector, XPath, or regex — prices, article numbers, social tags. A wrong selector does not cost a second crawl.
Structure
Draw the structure
A crawl diagram with force layout, a crawl tree by click depth, a directory tree by URL structure — colorable by status, indexability, depth, or issues.
Crawling
Crawl behind a login
JMX fills in the login form and crawls with the session; CSRF tokens travel along unchanged. If the login fails, the run stops instead of silently mirroring the login page.
Crawling
Test a new robots.txt first
The draft applies to the crawled website instead of the live file — including its effect on AI crawlers. You see what it locks out before it goes live.
Crawling
Appear as the right crawler
Presets for Googlebot, Bingbot, Applebot, AI crawlers, and real browsers — for the question of whether search engines get different markup than visitors.
Rendering
Render JavaScript
Rendered against delivered HTML: which texts and links only exist after JavaScript — and which page sets its noindex only in the browser.
Logs
Analyze log files
Apache, nginx, and IIS logs against the crawl: what is the crawl budget spent on, what has no bot ever fetched? Only what reverse DNS confirms counts as a bot.
Quality
Check spelling
Hunspell-based, each page in its own language, sorted by error probability instead of frequency. A second dictionary decides what is a loanword and what is a mistake.
Quality
Check accessibility
Thirteen rules for what can be proven from the HTML — form fields without labels, icon buttons without names, duplicate IDs. With an honest note on what a static check cannot see.
Performance
Measure Core Web Vitals
Via the PageSpeed Insights API, with the distinction that matters: field data from real visitors separated from lab data for debugging.
Google
Connect Search Console
OAuth sign-in, Search Analytics data, URL inspection for the real indexing status, sitemap management.
Google
SERP data via DataForSEO
Licensed access to Google results for site: queries and index checks. The price of every call is shown, a daily limit applies first. No scraping.
Analytics
Connect Matomo
Metrics, visit history, channels, and visits from AI answer engines as a channel of their own — whatever has been fetched once is never fetched again.
Reports
Assemble client reports
Which sections, in which order, under which heading — as a template per client, with logo, accent color, and introductory note. Export to HTML, CSV, and Excel.
Usability
From the number to the row
Every tile and every row is a jump-off point: “412 pages without a description” opens exactly that rule, the URL opens the page, the arrow leads back.
Usability
Search within results
A search box above every result list, literal or as a regular expression, and one matching field is enough: whoever types “contact” means the page, whether the word is in the address or in the title.
Automation
Run without a window
jmx-cli is the same tool for task schedulers, cron, and CI: crawl, audit, report, sitemap, exports — and --fail-on Critical ends the run red before your client does.