Crawl the site.
Understand the pages.
Know what to fix.

GLLmolfar combines a technical SEO crawl with optional, on-device semantic analysis. Inspect its URLs, see how AI crawlers and assistants can read them, trace each finding to the pages behind it, and decide what deserves attention.

Downloading means you accept the GLLmolfar Preview Terms.

118downloadsPlay the film
Not signed yet Windows and macOS will warn you. How to run it or check the file
Preview 0.9.23 Windows 10+ · macOS (Apple silicon) 50,000 URLs per crawl, free with an account** Optional local embeddings

** 5,000 URLs without an account, 50,000 with a free one, up to 1,000,000 on paid levels. This is how it works now, an intention rather than a promise: limits can and will change.

* Updated once every 24 hours.

OverviewScreenshot · 0.9.23
A crawl of getlooploop.comReal app, real crawl.
A web page taken apart into its blocks, text and images, each traced by a line to the page; below it, PREVIEW, NOT A RELEASE

A preview, not a finished release.

GLLmolfar already crawls real sites and finds real problems, but it is still being built. Use it, and expect it to change.

  • Features, limits and file formats can change from one version to the next.
  • Something may break. The app's Feedback button sends us a bug report with a screenshot and, if you leave it ticked, a diagnostic log of counts and errors without addresses or page text; the reply comes back to the app.
  • The builds are not code-signed yet, so Windows and macOS warn before the first start.
  • Your crawls stay on your computer, whatever changes.
What changed in the latest preview

No code-signing certificates yet, on Windows or on Mac.

Windows and macOS warn about any app that is not signed with a paid certificate from Microsoft or Apple. GLLmolfar does not have those certificates yet, so the warning will appear. You have three choices.

  1. Trust it and run

    On Windows: More info, then Run anyway. On a Mac: System Settings, Privacy & Security, then Open Anyway.

  2. Check the file first

    The download window shows the file's SHA-256. Compare it with the file you downloaded; the same value means it is exactly the file we published.

    Windows: certutil -hashfile <file> SHA256Mac: shasum -a 256 <file>
  3. Wait for signed builds

    We will buy the certificates before the full release. Tick “Email me when a new version is out” in the form and we will tell you when signed builds are ready.

One desktop workspace forTechnical SEOContent teamsIndependent consultantsSite owners

WATCH · 2 MIN 24 S

One agent. One crawler.
The whole audit.

Connect Claude Code, Codex or any MCP agent and it drives GLLmolfar for you: it starts the crawl, reads the findings and comes back with a plan. Pick a chapter to jump straight to it.

The film is in English and its site and numbers are a demo. ** URL limits per account level are on this page, at the top: an intention, not a promise, and they will change.

GLLmolfar driven by an AI agent over MCP · preview

One crawl,
every way to read it.

The same crawl of getlooploop.com, opened in the views that matter for AI search, for meaning and for classic SEO. Nothing here is a mock-up.

NEW IN 0.8.1

What is new
since the last preview.

Everything below is in the app now. A feature marked test lives in the app's Agent · test section and may change.

FeatureWhat it doesWhere
Agent skills18 ready SEO, GEO and AEO jobs for your AI agent, with their full text to copy.Help › Agent skills; MCP prompts
Page table for agentsYour agent reads any columns for any pages, and counts pages by status, depth, topic, folder, template or problem.MCP: get_pages, count_pages
AI readiness for agentsThe AI-readiness score with its parts, robots.txt for each AI bot, llms.txt and Markdown for agents.MCP: get_ai_readiness
Crawl comparison for agentsPages found and lost, and why; what got better or worse; AI bots newly blocked.MCP: compare_crawls
Draft measurementMeasures a draft against your site with embeddings, on your computer, with no language model: where the answer sits, how well it fits the queries, whether it overlaps another page.MCP: measure_text
Your own AI modelstestConnect Ollama, LM Studio, OpenRouter, OpenCode Zen, LiteLLM or any OpenAI-compatible server, and choose which model does which job.Settings › AI models
Agent: plan, content, social poststestA task plan checked against the crawl; page rewrites measured and rewritten until they pass; posts for X, LinkedIn, Threads, Bluesky and more.Agent · test
Risky contenttestFinds adult, pharma, gambling, scam, counterfeit and drug content and hacker injections; your model judges only what was found.Agent · test › Risks
Accessibilityaxe-core checks in the URL audit, in the rendered page.URL audit
Markdown for agentsChecks whether the site serves Markdown to agents that ask for it.AI tab
Alerts after planned crawlsSays what got worse since the crawl before: health, new problems, AI bots blocked in robots.txt.Planned crawls

Your models run where you connect them; GLLmolfar sends nothing to us. Limits shown in the app are an intention and will change.*

See what the crawler does
at every step.

A crawl is a set of requests and recorded responses. GLLmolfar keeps discovery, extraction and optional meaning analysis visible, so you can understand how the report was produced.

01

Choose the starting point

Enter a domain or a section URL. Pick Spider + sitemap, Spider only, Sitemap only, or a list of URLs to inspect.

02

Set the crawl boundaries

Set a page limit and, when needed, depth, include or exclude patterns, query-string handling, subdomains, request rate, parallel connections and headers.

03

Watch two queues

The crawler discovers and fetches pages. Optional embedding analysis runs in its own local queue. The overview shows each stage live, with pages a second through fetching, rendering and embeddings on one chart, so you can pause the crawl or turn embeddings off.

04

Follow a finding to its URLs

Start in Overview or Fix list, open the affected rows, then inspect a page's source, links, directives, passages or competing pages.

Pick how URLs enter the crawl

Default

Spider + sitemap

Discover internal links from the start URL and read the site's XML sitemap files. Compare pages reached by links with pages listed in the sitemap.

Link discovery

Spider only

Follow internal links from the start URL. Useful when you want to see what the site's navigable link structure exposes.

Sitemap discovery

Sitemap only

Collect candidate URLs from XML sitemaps without walking internal links. Useful for a sitemap-led inspection.

Targeted check

List of URLs

Paste or import a known URL list to inspect specific pages. This mode does not discover the site by following links.

Technical signals,
with their source.

Open a finding and move from the summary to the affected URLs, then to page-level evidence such as links, headers, source and extracted fields.

Reachability & indexability

HTTP status and response time, redirect chains, robots.txt access, meta robots, X-Robots-Tag, canonical targets, sitemap membership, crawl depth and orphan-page signals.

On-page structure

Page titles and pixel widths, meta descriptions, H1/H2 headings, word count, duplicate values, exact-content duplicates and text that appears only after JavaScript rendering.

Links & resources

Internal and external links, inlinks and outlinks, anchor text, broken URLs, links to redirects, nofollow links, images and missing alt text.

Technical details

Hreflang, structured data and JSON-LD validation, security headers and response headers. Optional external-link checks request each discovered external URL once.

Respect the site's crawl rules. robots.txt is respected by default, and a slower Crawl-delay takes precedence over the configured rate. Bot presets such as Googlebot or GPTBot always obey that bot's own robots.txt group, for a crawl and for a single page, and a custom user agent may not borrow another company's name. While crawling, the app shows its agent and your public address, so a site owner can find these requests in the logs. A 429 or 503 is retried after the site's Retry-After, and the crawl slows down. When a site answers with a CAPTCHA, the crawl pauses and opens the page for you to pass it, then goes on with the access you were given; planned crawls never wait for one, and a switch in Settings › Crawling turns the pause off.

From crawl data
to the next decision.

Downloading means you accept the GLLmolfar Preview Terms.

Start broad, narrow to a group of URLs, and inspect the evidence. The app keeps the data and the action path in one desktop workspace.

Issues & Fix list

Checks are grouped by importance and type. Each finding shows affected URLs, its share of the checked rows, why it matters and what to inspect or change. The site health score summarises weighted checks; it is not a Google score or a ranking forecast. Open the exact URL set, export it, or export the finding as a PDF report.

AI readiness

Whether AI crawlers may fetch the site, robots.txt rules per bot, llms.txt, and how well each page reads in passages an assistant can quote. Switch between Hybrid and AI focus to see the same crawl from either side. It reads the site; it does not measure whether assistants mention you.

Topics, overlap & link opportunities

Group pages by meaning and explore them on the topic map. Compare unusually similar, same-language pages with their shared passages and page signals. Link opportunities pair a page with fewer than five inlinks with related pages that do not link to it. These are leads to review, not proof of ranking cannibalization.

A page, passage by passage

See the main meaning groups across a page, where passages sit from top to bottom, recurring terms and how closely each passage matches its title and H1. Use this to spot sections that drift from the page's stated subject.

History & reports

Reopen local crawls and compare URLs, status, titles, descriptions, headings, indexability, canonical and content meaning between runs. Export a client, developer or short report as HTML or PDF.

Structure & batch fixes

See the site as a crawl tree, a directory tree or a force-directed graph. Batch fixes group findings that one change can solve — site-wide, per template or per topic — so a template fix is not counted as four hundred separate tasks.

URL audit

Check one page without a crawl: the app fetches it, renders it with JavaScript, takes desktop and mobile screenshots and runs the page checks. Each failed check comes with the fix. Site-wide checks such as inlinks and duplicates still need a crawl.

Projects

One card per site you have crawled: health and its trend, pages, errors, non-indexable pages and topics, compared with the crawl before. The card also reads robots.txt and the sitemap, and the domain record: age, expiry, registrar, name servers, mail and DNSSEC.

Google Search Console

Connect the Google account you sign in with, read-only, and Search Console becomes a section of nine reports: performance against the period before, pages with their top query and their state in the crawl, queries by position band, Google's own indexing verdict page by page, sitemaps, lost clicks with their likely reason, queries split between your pages, query clusters and a visualisation. The data comes from Google straight to the app, stays on your computer and is still there, with its date, offline or signed out.

AI agents and reverse prompts

Signed in, switch on the app's local MCP server and Claude Code, Codex or any MCP client can start crawls, read the fix list and inspect URLs, in the open window where you see what it does. The server tells the agent how to read a finding, which numbers to quote and how to check a fix; any fix becomes a Jira task with summary, priority, labels and steps in Jira's own markup, and the app's Jira button on a fix does the same. Reverse prompts split a page into blocks; your agent describes each one, and you get a reusable prompt and an example per block.

Search Console, drawn

The Visualisation page of the Search Console section: the words your queries are made of as a treemap by clicks, impressions or count; how queries spread over position, CTR and impressions; position against CTR, with the queries one step from more clicks; how concentrated the clicks are; query length; brand against the rest. Drawn on your computer from the report's own data.

Cannibalization map

The competing pages drawn, not only listed: each group as a circle of its pages joined pair by pair, the closest pairs marked; how close the pairs are, how big the groups are, which topics they sit in, and one group as a similarity matrix.

Page inspector

Pick a row and the page opens under the table at full width, or on the right: status, indexability and topic at the top, previous and next page, then details with title and description length bars, response headers grouped, the snippet at Google's pixel widths, structured data, the rendered page, similar pages and the page's passages.

Page map and heat maps

In URL audit the rendered page becomes a picture cut into its blocks, coloured four ways: meaning against a question, what an AI retriever would quote, accessibility findings, and a forecast of attention from layout alone (not people's behaviour, and the screen says so). Site › Heat map shows the crawl's folders as tiles coloured by problems or Google clicks.

Planned crawls and Google Sheets

Schedule a site daily, weekly or monthly. Runs happen on your computer while the app is open or in the tray, and a run the computer missed is run, skipped or flagged, as you choose. Any table goes to a new Google Sheet in your own Drive, with access limited to the files the app creates.

Sitemap changes

Under Projects, list any sites, yours or a competitor's, and the app reads their public sitemaps: found through robots.txt, indexes followed, .gz unpacked. Every 6 or 12 hours, every day or week while the app is open, or when you press Check now, it counts the pages and shows which are new, removed or have a new lastmod since the last check, the new ones grouped by folder. The lists stay on your computer; exporting them needs a signed-in account.

GetLoopLoop's free tools

Vectorscope, Voicescope, Brandscope, Reviewscope and PatternScope sit under Free tools on the rail, each as the tool alone: the field, the button and the reading, without leaving GLLmolfar. Open in browser takes you to the full page on getlooploop.com. Runs in the app are counted on GetLoopLoop's server, apart from the website's.

The rail, Ctrl K and terms explained

Seven sections on a side rail, with a panel for the open one; Ctrl B folds it for room and Ctrl K jumps to any screen. Tables fit the window, wrapped or with rows stacked under their column names, so no column is cut off. Terms such as nosnippet, X-Robots-Tag or hreflang are underlined, with a one-sentence explanation and a link to the GetLoopLoop glossary; Settings › General switches it off. Every wait shows one progress bar with the usual time on your computer.

Meaning is computed
on your machine.

After its first download, the embedding model runs locally on your computer. GLLmolfar uses the vectors to group related pages, search by meaning, compare passages and lay out the topic map.

Long pages are split around H2 headings where possible. Their passage vectors are combined into a page representation, so a section deep in the page can contribute to the comparison. Four modes read more or less of each page with the same model: Extended reads twice as much as Standard and found the right page more often in our test, at about half the speed. Settings test every mode on your computer with your own pages. Modes beyond Standard need a free account.

Local modelNo generated copyOptional queue
How to read similarity
Close page vectorsRelated content to inspect
Shared passagesEvidence of repeated meaning
Few internal linksPossible link opportunity
A signal for human review. Not a search ranking or traffic measurement.

A desktop tool.
A clear data boundary.

The crawl database and history stay in the app's local data folder. Semantic vectors are calculated on-device after the model download. Crawling still sends requests to the target website, and optional external-link checks contact the linked sites.

GLLmolfar does not send your crawl to a cloud AI service. The first semantic-analysis run downloads the model to your computer.

What it does send to getlooploop.com is small and named: anonymous usage statistics — a random install ID, the app version, the Windows or macOS version, the language and how long the app stays open — and a check for a new version. Both switch off in Settings.

GLLmolfarDesktop preview for Windows and Mac
Preview 0.9.23
Crawl recordsLocal SQLite
EmbeddingsOn-device, optional
Crawl requestsTarget website
Usage statisticsAnonymous, can be off
Search Console dataGoogle → your computer
You choose the URL and crawl scope
AGENT SKILLS · NEW IN 0.8.1

18 ready jobs
for your own AI agent.

Connect Claude Code, Codex, Cursor or another agent to GLLmolfar once. Each skill tells the agent which GLLmolfar tools to call, in what order, and what to hand back. The agent works in the app's window, where you see every step. The examples below are real answers, not mock-ups.

  1. Connect your agent in Settings › AI agents (MCP).
  2. If your agent shows MCP prompts, run a skill as a slash command by its name.*
  3. Or copy the skill's text below and paste it to your agent.

Audits and reports

B1

Full technical audit → action plan

First contact with a site, or a quarterly audit.

/technical-audit*

GLLmolfar tools it calls: get_statusstart_crawlwait_for_crawlget_overviewget_fixescount_pagesexplain_fixget_fix_urlssave_report

You fill in: site, max_urls

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 58 s · 35 GLLmolfar tool calls · unedited, in English

I wrote the action plan and saved the developer report. There are no critical fixes. I didn't start a new crawl. Crawl #32 of getlooploop.com was already open: 300 URLs, mode "both", finished 2026-10-28, with embeddings and topics complete. Its GLLmolfar health score is 89/100, and the fix list has 34 fixes.

The 3 most important actions (all from crawl #32 unless marked as my judgment):

  1. cannibal (high): 14 skill pages are near-duplicates of each other, for example the Lark/Feishu mirrors and the firecrawl and googleworkspace pairs. One template change will not fix this. The URLs spread over 7 path groups, so each pair needs an editorial decision. Re-crawl to verify.
  2. hreflang.noReturn (high): 6 URLs, all /skills?category=…, which is one template. One template change fixes all 6. I suspect hreflang.missingSelf lists the same 6 pages, but that is my judgment, so check it in the same change.
  3. structured.errors (medium): 156 of 300 URLs, 52%, are missing a required JSON-LD property. I ranked it third by my judgment because of its reach. Most of the affected URLs are skill pages, which probably share one template, so one change should correct most of them. The home and product pages need their own check. I did not pull which property is missing, so run audit_url on one skill page to see it.

Other findings from the top 10:

  • ai.noAuthor (medium): 225 URLs. /glossary/* is 44% of them, so a glossary template change covers the largest part.
  • links.insecure (medium): all 14 URLs are /glossary/*.
  • a11y.unlabeled (high): 1 URL, /questions. A single-page fix.
  • ai.claims, lowContent and ai.lowMain are spread over many path groups, so they are editorial work per page.
  • images.missingAlt: I could not count it by template. The fix lists image files, and count_pages returned 0 for it.

What I did not cover:

  • Crawl limit: counts are for these 300 URLs only.
  • Samples: explain_fix and get_fix_urls returned 20 URLs each, so the lists for ai.noAuthor, structured.errors and ai.claims are samples. The template counts come from the full set.
  • Fixes not opened: fixes 11 to 34 were not opened one by one; their numbers come from get_fixes.
  • Checks not run: no Search Console data, no URL audits and no get_ai_readiness, so I make no claim about any AI bot's access.
  • Jira: nothing was sent to Jira.

Files are in the plan; the report is saved here:

  • Action plan: (work folder)\ACTION-PLAN.md
  • Developer report (HTML): C:\Users\you\Documents\gllmolfar-report-www.getlooploop.com-2026-10-28.html
B11

Jira backlog from a crawl

Handing technical work to developers.

/jira-backlog*

GLLmolfar tools it calls: get_fixescreate_jira_task

You fill in: project_key, min_share

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 13 s · 3 GLLmolfar tool calls · unedited, in English

Crawl 32 (https://www.getlooploop.com, 300 pages, health 89) is open. No crawl is running. These figures come from get_fixes for that crawl. I did not read the crawl date, so I can't give it.

Proposed Jira tasks (project SEO, up to 50 URLs each)

#Fix keySummaryPriority (GLLmolfar importance)URLs
1cannibal14 pages say almost the same as another pagehigh14 (4.7%)
2hreflang.noReturnMissing return linkhigh6 (2%)
3a11y.unlabeledForm fields without a labelhigh1 (0.3%)
4ai.noAuthorLong page without an authormedium225 (75%)
5structured.errorsRequired properties missingmedium156 (52%)
6images.missingAltMissing or empty altmedium41 (25.6%)
7ai.claimsNumbers and claims without a sourcemedium42 (14%)
8lowContent23 pages have under 250 wordsmedium23 (7.7%)
9ai.lowMainMostly menus and footers (under 40% content)medium21 (7%)

The final summaries and priorities come from create_jira_task. I will use those, not the titles above.

Excluded: the other medium fixes are each on 5% of pages or fewer. The closest are links.insecure at 4.7% (14 URLs) and external.s4xx at 4.5% (58 URLs). external.s4xx has many URLs, but its share is under the threshold. Low and insight fixes are also excluded.

Limits:

  • Tasks 4, 5, 6 and 7 cover more than 50 URLs, or close to it, so their descriptions will list only the first 50 URLs. The URL count in each task will still show the full total.
  • I have no Jira tool in this session. After you approve, I will write all tasks to JIRA-TASKS.md in the working directory.
  • I can't check for open duplicates without Jira access. If you give me the existing SEO issue summaries, I will skip any that match.

Do you approve creating these 9 tasks? You can also add or remove fixes first.

B12

Release check: did this deploy break anything?

After a deploy, migration or redesign.

/release-check*

GLLmolfar tools it calls: list_crawlsstart_crawlwait_for_crawlcompare_crawlsaudit_url

You fill in: site, key_urls

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 162 s · 9 GLLmolfar tool calls · unedited, in English

getlooploop.com: crawl 33 vs crawl 32

Verdict: no CRITICAL items. There is one gap in my coverage. The {key_urls} placeholder in your request was never filled in, so I audited only the home page.

Top changes

  1. WARNING: more slow pages. The "URLs over 1 s" check went from 10 to 17 (+7), and the home page took 2,532 ms in the audit. The home page response was x-vercel-cache: MISS with cache-control: private, no-cache, no-store. Fixing this unblocks faster fetches by crawlers. To verify, run the crawl again and check that the slow check drops. Source: compare of crawls 32 and 33, plus the URL audit at 14:20 UTC.
  2. INFO: the 19 found and 19 lost URLs are a crawl-limit effect, not lost pages. The compare tool says newerCrawlStoppedEarly: true. It also says whyMissing is 19 "notReached", with 0 gone, 0 moved and 0 failed. Both crawls have 300 pages. The queue held 1,655 more URLs when crawl 33 stopped. To verify, run a crawl with a higher limit.
  3. INFO: the home page is not in the sitemap. The audit shows inSitemap: false. This is a judgment from one audit field. Whether it matters depends on how the sitemap is generated.

CRITICAL check

ConditionResult
Key URL not 200 or not indexableHome page is 200 and indexable. Other key URLs not checked (see Not covered).
robots.txt blocks an AI bot not blocked beforeNo. Blocked bots were [] before and [] now. robotsTxt.changed is false.
Content only after JavaScriptNo. The home page has 1,931 words raw and 1,931 rendered. Only 2 links differ.
Many fewer pages foundNo. Crawl 32 had 300 pages and crawl 33 has 300.

All changes, before and after

Source for all rows: crawl comparison, crawl 32 (2026-10-28 13:32 UTC) vs crawl 33 (14:18 UTC). Health stayed at 89 → 89. Errors stayed at 0 → 0. Non-indexable URLs stayed at 6 → 6.

WARNING (medium or higher, worse)

  • Slow URLs: 10 → 17.

WARNING (high, but better)

  • Pages that say almost the same as another page: 14 → 10.

INFO (changes in other checks)

  • Linked from one page only: 0 → 11.
  • Meta descriptions over 155 characters: 131 → 138.
  • Meta descriptions over 990 px: 65 → 72.
  • Titles the same as the H1: 1 → 6.
  • Missing or empty alt text: 41 → 42.
  • Titles over 60 characters: 137 → 138.
  • Titles over 580 px: 122 → 123.
  • H1 over 70 characters: 148 → 149.
  • Long pages without an author: 225 → 206.
  • Long pages without a date: 218 → 199.
  • 4xx external errors: 58 → 45.
  • Titles under 30 characters: 75 → 66.
  • Insecure http:// links: 14 → 12.
  • Pages that fit no topic: 1 → 0.
  • Per-URL field changes: 3 URLs gained a meaning score (null → 0.898, 0.896 and 0.899). No status, title, meta description, H1, indexability, canonical or word count changed on any URL.
  • Added URLs (19): 7 under /news/ and 12 under /notes/.
  • Removed URLs (19): all /glossary/… entries from ai-referral-traffic to anova. These are the unreached pages from the crawl limit described above.

Home page audit (2026-10-28 14:20 UTC)

  • Status and indexing: 200, indexable, canonical points to itself, meta robots index, follow, no redirects.
  • AI bots in robots.txt: each bot below is allowed by Allow: / in the * group.
  • Googlebot (Google Search and AI Overviews)
  • OAI-SearchBot (ChatGPT search)
  • GPTBot (training only)
  • ClaudeBot (training only)
  • PerplexityBot
  • Google-Extended (training only)
  • Claude-SearchBot: the audit did not report it, so I can't say whether it is allowed.
  • Schema: the audit reports one error, SoftwareApplication.aggregateRating|review. It also reports two warnings, Offer.url and ListItem.item.
  • Accessibility (axe-core): 4 serious issues and 1 moderate issue.
  • Serious: colour contrast on the "Light" toggle, the dl structure on the KPI block, dt/dd outside a dl, and a label-content mismatch on the glossary graph link.
  • Moderate: content outside landmarks.
  • Alt text: 22 of 30 images have no alt text.
  • Trust signals: trust.author is empty and dateModified is empty.

Not covered

  • Key URLs: the {key_urls} placeholder was never replaced with real URLs, so no key URL besides the home page was audited. Send the list and I'll run the audits.
  • Crawl limit: crawl 33 stopped at 300 URLs with 1,655 still queued. Pages beyond the limit were not compared, and the found/removed lists above reflect the limit only.
  • Lists: I showed the full added and removed lists, but only summarised the checks.
  • Embeddings: crawl 33 has 300 of 300 pages embedded, but I did not run topic or semantic analysis.
  • Tools that failed: two wait_for_crawl calls timed out. The crawl finished anyway, and I confirmed that with get_status.
  • Search Console: no data was used.
B13

Monthly client progress report

Agency reporting.

/monthly-report*

GLLmolfar tools it calls: list_crawlscompare_crawlsget_overviewsave_report

You fill in: site

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 28 s · 4 GLLmolfar tool calls · unedited, in English

getlooploop.com progress report

This is not a 30-day comparison. All 12 saved crawls were run in the last 3 days, from 2026-10-26 to 2026-10-28, so no crawl from about 30 days ago exists. I compared the oldest complete crawl with the newest, and everything below covers that 2-day window only.

The client PDF is saved here: C:\Users\you\Documents\gllmolfar-report-www.getlooploop.com-2026-10-28.pdf. It was made from crawl 32, the newest one. It is a standard crawl report and does not include the comparison.

Most important points

  1. Six pages are newly not indexable. Crawl 2 (2026-10-26) had 0 and crawl 32 (2026-10-28) has 6. The comparison did not say which pages. Run get_fix_urls on crawl 32 to list them. If the six are meant to be blocked, nothing needs doing. If they are not, fixing them lets search engines index them again. A new crawl will show whether they are gone from the list.
  2. The "lost pages" figure is not real. The 109 pages listed as removed were not reached by crawl 32, which stopped at its 300-URL limit. None are confirmed gone, moved or failed. These pages are mostly /uk and /es translations, plus legal pages and older news and notes. To check them, crawl again with a higher limit.
  3. Two pages changed on getlooploop.com. The /gllmolfar meta description no longer says "up to 5,000 URLs", and its word count went from 2,445 to 3,489. The word count of /legal/privacy went from 640 to 1,265. This comes from crawl 2 and crawl 32.

Findings by source

Health score (GLLmolfar's score, not a Google score): 90 in crawl 2 (2026-10-26) and 89 in crawl 32 (2026-10-28). Errors were 0 in both.

Fixes gone and new fixes: I cannot report these. Crawl 2 was saved before version 0.7.36, so it has no per-check counts and the comparison skipped them. The work-done and new-fixes parts of your request are unanswered.

Pages found and lost (crawl 2 against crawl 32):

  • Found: 259, mostly /glossary/ pages and /skills/ pages, plus one news article.
  • Not reached: 109, as explained above.
  • Not comparable: the crawls used different limits, 150 pages and 300 pages.

AI bots in robots.txt: robots.txt did not change between the two crawls. No AI bots are blocked in either one. I did not run the bot check, so I have not tested what each bot can actually fetch. The comparison does not tell me what robots.txt says about any single bot, so I make no claim for OAI-SearchBot, Claude-SearchBot or Googlebot.

Search Console: I have no Search Console tool in this session, so there is no comparison of clicks, impressions or CTR and no list of queries that fell by more than 20%.

Not covered

  • Crawl 32 hit its 300-URL limit, so it is a sample of the site.
  • The comparison has no per-check data, so there is no fix comparison.
  • No Search Console data.
  • I did not run the AI bot probe.
  • Embeddings exist for crawl 32 (300 pages). I did not use them for topics or duplicate pages.

One-page summary for the client

Where the site stands: The website is in good shape. Our health score is 89 out of 100, and the crawler found no broken pages. This is a first check, so we have no earlier month to compare with yet.

What changed this week: Two pages were updated: the GLLmolfar product page and the privacy policy. No search or AI crawlers are blocked on the site.

One thing to look at: Six pages are now marked "not indexable", which means search engines will skip them. Some pages are meant to be hidden, so we will check whether these six are. Fixing any that should not be hidden lets search engines include them. We cannot promise this will raise rankings or traffic.

Priorities for next month:

  1. Check the six pages. Decide whether they should be indexed, fix any that should, and run the crawl again to confirm.
  2. Run a full crawl. Raise the page limit so every page is covered, including the Ukrainian and Spanish pages the last crawl did not reach. That gives a reliable baseline for next month's comparison.
  3. Connect Search Console. Without it we cannot show clicks, impressions and falling search queries. With it, the next report can show real search results.

Should I run the full crawl now? I can also list the six non-indexable pages from crawl 32.

B15

Fix it in the codebase, then verify

The agent is working inside the website's repository.

/fix-and-verify*

GLLmolfar tools it calls: audit_urlstart_crawlwait_for_crawlcompare_crawls

You fill in: urls

No example yet: this skill needs your code repository, a competitor's site or a Search Console tool in the agent.

AI search

B2

AI-readiness audit of the whole site (GEO, AEO)

“Can ChatGPT, Claude and Perplexity read and cite my site?”

/ai-readiness*

GLLmolfar tools it calls: get_statusget_ai_readinessget_fixesget_fix_urlscount_pagesaudit_urlexplain_fix

You fill in: site, max_urls, template_urls

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 60 s · 14 GLLmolfar tool calls · unedited, in English

GetLoopLoop.com AI search audit

Sources: "Crawl" means GLLmolfar crawl #32, the open crawl (start URL https://www.getlooploop.com/, 300 of 300 URLs, 300 embeddings). The tool results gave no crawl date. "Probe" is the AI bot check run 2026-10-28 13:36 UTC. "Audit" is a URL audit of 2026-10-28 14:03 UTC. Search Console was not used.

Top 3 changes

  1. Add named authors and visible dates to the content templates. (P1)
  2. Crawl: 225 URLs (75%) have long pages without an author. 218 URLs (72.7%) have no date.
  3. The glossary page I audited shows "Written by Prepared at GetLoopLoop" and "Updated September 2026". That is no named person.
  4. The audited home page and /news have no author and no dateModified. Their datePublished is identical (2026-10-16T10:32:57Z), which looks like a template default. That is my judgment.
  5. Add a byline to an author page and a Person with sameAs in the Article schema. Add datePublished and dateModified per page. This unblocks trust signals, which are the weakest part of the score (36).
  6. To verify, run audit_url on one page and check trust.author and the dates. Then run a new crawl and check ai.noAuthor and ai.noDate.
  7. Source the claims on the glossary and skills pages. (P1)
  8. Crawl: ai.claims affects 42 URLs. 33 of them are under /skills/. The rest are /glossary/, /ai-volatility, /gllmolfar, /questions and /voicescope.
  9. Audit of /glossary/ai-visibility: it has 0 stat sentences. It does make unsourced assertions: "Earn at least three high-quality backlinks", and a first-person "Worked example" about "BrandX" with no source. My judgment is that these read as invented illustration.
  10. Link each figure or example to its source next to the sentence. Mark illustrations as hypothetical.
  11. To verify, run a new crawl and check ai.claims.
  12. Fix the required schema properties. (P2)
  13. Crawl: structured.errors affects 156 URLs (52%). The home page is one. Audit: it lists SoftwareApplication.aggregateRating|review as missing.
  14. Add the missing property, or remove the markup that cannot be filled honestly. Google requires it for the rich result. This unblocks eligibility for that rich result.
  15. To verify, run audit_url on the home page and check that schemaErrors is empty.

No P0 findings. In this crawl, probe and audit I found no content that needs JavaScript, no blocked search bot and no bot wall.

P0

None found.

  • JavaScript (audit): raw and rendered word counts are the same on all three pages: home 1,931/1,931, /glossary/ai-visibility 1,006/1,006, /news 1,108/1,108. 0 words appear only after JavaScript. The only JS difference is 2 links on each page.
  • Search bots (probe): no AI bot is blocked in robots.txt, and every path listed is allowed. All 10 pages fetched as OAI-SearchBot and Claude-SearchBot came back OK, with 0 challenge, 0 blocked and 0 robots.

P1

  • Author and dates are in the Top 3 above.
  • Claims without sources are also in the Top 3 above.
  • Low main-content share: crawl ai.lowMain affects 21 URLs (7%). All are under /skills/* (templates such as affaan-m/ecc: 4 URLs, and open.feishu.cn, open.larksuite.com and code.deepline.com: 2 each). In the audit, chrome words are small on the three pages: 93 of 2,247 on home, 164 of 1,306 on the glossary page, 87 of 1,684 on /news. They are not low-main pages.
  • Passages that need an earlier passage: crawl ai.dangling affects 7 URLs. 3 are /glossary/, and there is 1 each for /legal/, /news/, /vectorscope and /vectorscope/. Open each section with its subject.
  • Walls of text: crawl ai.walls affects 67 URLs, 14 of them under claude-seo. It is low importance. Add a heading every few paragraphs.

P2 (key fixes by template, crawl)

FixURLsMain templates
ai.noAuthor225/glossary/* 100, claude-seo 25, wshobson 8
ai.noDate218/glossary/* 100, claude-seo 25, wshobson 8
ai.walls67claude-seo 14, marketingskills 7, wshobson 7
ai.claims42claude-seo 14, marketingskills 6
ai.lowMain21affaan-m/ecc 4
ai.dangling7/glossary/* 3
structured.errors156claude-seo 25, affaan-m/ecc 11, google/skills 10
nonIndexable6/skills 6 (all)
  • nonIndexable: all 6 pages are on the /skills template. Check whether they should be indexed. If they should, remove the noindex or point the canonical at the page itself.
  • Other crawl findings:
  • cannibal (14 URLs, high).
  • hreflang.noReturn (6, high) and hreflang.missingSelf (6).
  • a11y.unlabeled (1, high).
  • images.missingAlt (41). The audit shows 22 of 30 images without alt on home, and 6 of 6 on the glossary page.
  • 58 external 4xx links.
  • 14 http:// links.
  • 23 pages under 250 words.
  • Duplicate titles (7), duplicate descriptions (7) and duplicate H1s (7).
  • Over-long titles (137), descriptions (131) and H1s (148).
  • 10 slow URLs.
  • Missing X-Content-Type-Options (300 URLs).
  • Cookies without Secure (299 URLs).
  • Not in the fix list: jsContent, javascript.* and noInlinks do not appear, so I did not count them.
  • Audit: all three audited pages show inSitemap: false and 0 inlinks. These are single-page audit rows, so I am not confident they reflect the crawl. Confirm in the crawl before acting.

Google: SEO basics

  • Googlebot (audit): allowed on all three pages (robots.txt lines 2, 17 and 13). All three are indexable with 200 status and a self-canonical.
  • Titles and descriptions (audit): home title is 57 characters (528 px). /news title is 60 characters (594 px), over the 580 px cut. Descriptions are within limits. In the crawl, 122 titles are over 580 px.
  • Duplicate and hreflang issues (crawl): 14 pages near-duplicate another page. 7 titles and 7 descriptions are duplicated. 6 URLs have hreflang return-link or self-reference problems. Fix these to avoid split signals.
  • Schema (audit): the home page has Organization, WebSite, SoftwareApplication, WebPage, FAQPage and ItemList. It has one error and two warnings (Offer.url, ListItem.item). The glossary page has no schema errors.
  • Performance and headers (audit): response times were 1.3–1.7 s on the three pages, and the crawl lists 10 URLs over 1 s. cache-control is no-store on all three. That is my judgment: a cacheable response might help speed.
  • Accessibility (audit): axe flagged colour contrast, definition-list structure and a label mismatch on home. /news has no <main> landmark.

Other engines: structure a retriever can extract

  • AI readiness (crawl #32, probe): score 87/100. The four parts are access 100 (weight 0.35), readability 91 (0.30), meaning 95 (0.20) and trust 36 (0.15). This is GLLmolfar's score, not a ranking factor.
  • robots.txt per bot (probe): all allowed on /, /skills/, /glossary/, /news/, /notes/, /legal/, /vectorscope/, /free-tools/ and /ai-volatility/. Blocked paths: none for any bot.
  • Search: OAI-SearchBot (OpenAI), Claude-SearchBot (Anthropic), PerplexityBot and Amazonbot. All allowed.
  • User: ChatGPT-User, Claude-User and Perplexity-User. All allowed.
  • Training: GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot, Bytespider and meta-externalagent. All allowed. Allowing training bots is a choice. It does not affect the search bots.
  • Fetch as each bot vs a browser (probe): for the 10 bots that were fetched (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User and Amazonbot), each result was 10 OK, 0 less content than the browser, 0 challenge, 0 blocked and 0 robots. That matches the browser. Google-Extended, Applebot-Extended, CCBot, Bytespider and meta-externalagent were checked in robots.txt only, with no fetch.
  • llms.txt (probe): found at 33 KB, titled "GetLoopLoop", with 32 links, 15 sections and 0 broken links. llms-full.txt was not found.
  • Markdown for agents (probe): not offered on the 3 URLs tested. The Accept: text/markdown header returned text/html, and the .md twin returned 404. HTML is fully readable without JavaScript, so this is optional. It would let agents fetch a cleaner copy. To verify, run the probe again.
  • Structure (audit):
  • Home has 5 question-style headings, 19 lists and an FAQPage block.
  • The glossary page has 10 numbered H2 sections and a FAQPage block.
  • /news has 3 H2s and 19 H3s.
  • The /news H1 merges the site name and tagline ("Signal Observatory What changed in search and AI this week").
  • Retriever issues: the 7 dangling-section pages, 67 walls of text and 21 low-main pages above all affect how well a passage can be quoted on its own.

What I did not cover

  • Crawl size: you asked for 500 URLs if no crawl was open. Crawl #32 was open, so I used it. It has 300 URLs and its limit was 300, so any URLs beyond that are missing. The crawl date was not in the tool results.
  • Probe: about 10 pages per bot. Five training bots were checked in robots.txt only.
  • Fix list: it returned 33 fixes, which is the full list. I did not call explain_fix or get_fix_urls, so the URL lists per fix are not shown.
  • Not counted: jsContent, javascript.* and noInlinks are not in the fix list.
  • Embeddings: all 300 pages have embeddings. I did not use topics, cannibalization detail or semantic search.
  • Not run: Search Console data and Markdown tests beyond 3 URLs. No tool failed.
  • Report: I did not save it with save_report.
B3

Agent-readiness check of one page

Before launching a key landing, signup or pricing page.

/page-agent-readiness*

GLLmolfar tools it calls: audit_urlsemantic_search

You fill in: url

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 33 s · 2 GLLmolfar tool calls · unedited, in English

URL audit of https://www.getlooploop.com/

Source for everything below: URL audit, 2026-10-28 14:04 UTC (HTTP 200, indexable). No crawl was running when I checked, so I ran the audit. I did not call crawl 32 or any other tool. Where a line is my own reading, I mark it as judgment.

The 3 most important changes

  1. Fix the aria-label on the glossary graph link (.home-graph-preview). Its accessible name does not contain its visible text. This is a names-and-labels fix (WCAG 2.5.3).
  2. Fix the <dl> markup in .home-kpis. One block of markup causes two serious violations, definition-list and dlitem.
  3. Raise the colour contrast on .shadow-sm > .sm\:inline.hidden (the "Light" theme label) and .home-moved-axis--window. After the change, run the URL audit again.

1. axe-core violations (impact critical or serious)

Source: URL audit, axe-core 4.14.0. There are no critical violations. There are 4 serious ones. Corrections follow your sequence.

Names and labels

RuleSelectorCorrection
label-content-name-mismatch.home-graph-preview (<a href="/glossary/graph" aria-label="Explore the marketing glossary knowledge graph">)Make the aria-label start with the link's visible text, or remove the aria-label. (judgment: the audit does not list the visible text, so I can't give the exact string)

Content without JavaScript (markup served in the HTML)

RuleSelectorCorrection
definition-list.home-kpis (<dl>)A <dl> may directly contain only <dt>/<dd> groups, <div>, <script> or <template>. Make the wrapper that holds the dt/dd a <div>.
dlitem (4 nodes).home-kpi-moved-head > .home-kpi-label, .home-kpi-moved-head > .home-kpi-value.home-kpi-value--lg, .home-kpi-moved-head > .home-kpi-note, dd:nth-child(4)Each <dt>/<dd> must sit inside a <dl>. This should clear once .home-kpi-moved-head is a <div> directly inside .home-kpis, or the <dt>/<dd> elements are restructured to match.

All other items

RuleSelectorCorrection
color-contrast (2 nodes).shadow-sm > .sm\:inline.hidden (<span class="hidden sm:inline">Light</span>), .home-moved-axis--windowRaise the text/background contrast to at least 4.5:1 (WCAG AA). The audit does not give the measured ratios.

2. What JavaScript changes

Source: URL audit (raw HTML compared with the rendered page).

  • Title, canonical, meta robots: the audit reports no difference. Title is "GetLoopLoop — AI Visibility Tracking for ChatGPT & Gemini". Canonical is https://www.getlooploop.com/. Meta robots is index, follow. The audit lists only links under jsDiff.
  • Links: 2 differ. The rendered text adds "Sign in" and "Start" in the header, and they are absent from rawText. (judgment: these are the 2 links the audit counts.)
  • Word count: 1931 raw and 1931 rendered, so no difference. The rendered HTML is 754 bytes larger (273,632 raw, 274,386 rendered).
  • Not covered: the audit gave no list of which links changed beyond the count.

3. Prices, plan limits, contact data, testimonials

Source: URL audit, rawText and renderedText.

ItemResult
PricesNo price text in rawText or renderedText. JSON-LD has Offer price 0 USD, "Invite-only access".
Plan limitsNo plan limits in either text. Free-tool limits are in both: "One URL at a time", "One keyword at a time", "Up to 4 000 words".
Contact dataThe audit found no phone numbers and no emails. Only "Request an invite", "Write" and "Discord" appear, in both rawText and renderedText.
TestimonialsNone in rawText or renderedText.

Other findings:

  • Schema error: the audit flags SoftwareApplication.aggregateRating|review. The visible page has no testimonials or ratings to back it.
  • Schema warnings: Offer.url and ListItem.item.
  • The JSON-LD in the audit output was cut off, so I did not check the whole block.
  • Everything else in the sections above is in both rawText and renderedText.

4. robots.txt per AI bot

Source: URL audit. robots.txt was found. Every bot is allowed by Allow: / in group * (line 2).

BotAllowedWhat it controls
GooglebotyesGoogle Search and AI Overviews
OAI-SearchBotyesChatGPT search
GPTBotyesOpenAI training only
ClaudeBotyesAnthropic training only
Google-ExtendedyesGoogle training only
PerplexityBotyesPerplexity

The audit did not include Claude-SearchBot, so I have no result for Claude search.

5. Does the response change with the Accept header?

I did not test this. The audit tool sends one request and has no Accept-header option, and I have no other tool to send a custom request. The only hint is the vary header: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch. It does not list Accept. That suggests the HTML does not change by Accept, but it only shows what the server declares, not what it does. To verify, request the page with Accept: text/markdown and Accept: text/html and compare.

Not covered

  • Accept-header test (above).
  • Claude-SearchBot robots result.
  • Visible text of the glossary graph link and measured contrast ratios (the audit did not return them).

Appendix: other findings from the same audit

  • axe region (moderate, 5 nodes): targets .pb-20, .home-eyebrow.text-gll-cyan and others in the hero. Put the hero content inside a landmark such as <main>.
  • Images: 22 of 30 have no alt text.
  • Sitemap: the page is not in the sitemap (inSitemap: false).
  • Cache-Control: private, no-cache, no-store.
  • Open axe items: 2 "incomplete" results that need manual review.
B4

Citability review and rewrite plan for one page

A page that should be cited for a set of questions but is not.

/citability*

GLLmolfar tools it calls: semantic_searchaudit_urlget_pagesmeasure_text

You fill in: url, questions

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 57 s · 6 GLLmolfar tool calls · unedited, in English

AI Visibility glossary page: review and rewrite of two sections

Page: https://www.getlooploop.com/glossary/ai-visibility Sources: crawl 32 (https://www.getlooploop.com/, 300 URLs, limit 300, embeddings on) and a URL audit run on 28 Oct 2026 at 14:05 UTC. Judgments are marked (judgment).

The most important changes

  1. Answer "why does ChatGPT not mention my brand" on the page itself. (judgment) The page has no section for it. The only related text is the first "Asked out loud" answer, which begins with "Yes" to a question that is not yes/no. The draft in the rewrite below fits this question at 0.788, against 0.471 for the current page.
  2. Rewrite section 03 so it can be measured and sourced. (judgment) It has no number, no named bot and no steps. The draft raises the fit for "how do I measure my brand in ChatGPT answers" from 0.553 to 0.717.
  3. Move the measurement section up. (judgment, not measured) On the current page it is the 4th passage. The draft only tested the new text in isolation, so I cannot confirm that moving it improves retrieval.

1. Semantic search on crawl 32

QuestionBest pageScoreIs the target first?
What is AI visibilityThe target page, section "GetLoopLoop"0.603Yes (next is /brandscope at 0.498)
How do I measure my brand in ChatGPT answers/brandscope0.608No. The target is 5th at 0.479.
Why does ChatGPT not mention my brand/brandscope0.599No. The target is 3rd at 0.488.

The search returned only one section per page (the top section, mostly the intro). I could not see the page's own section scores there. For section-level scores I used measure_text.

2 and 3. Section audit

Source: URL audit, 28 Oct 2026, rendered text of 1,006 words. Judgments are (judgment).

SectionFirst sentence answers directly?Names its subject?Specific, sourced fact?Stands alone?
IntroYes. It defines the term.YesNo. The only source is the "Google Search Central" label.Yes
01 What it isNo. It describes how search tools work and defines the term only in the last sentence.Partly. It ends with "It is how often…".No. "Relevance, authority" are named without evidence.No, because of "It" at the end
02 What to doYes (a list)YesWeak. "At least three backlinks" has no source.Yes
03 How it is measuredPartly. "No public score" is true but is not a method.YesNo. It names Google AI Search, Copilot and Search Console without a figure or date.Yes
04 Common mistakesYesYesNo. No source.Yes
05 LimitsYesYesNoNo ("It is also different…")
06 Worked examplen/a (an anecdote)"BrandX", an invented brandNo. It is not verifiable.Yes
07 FAQ (6 items)Mostly. Some start "It is not the same" or "Usually".MixedNo sourcesYes
08 Asked out loud (3)No. "Yes, the AI may not…" answers a non-yes/no question. "No, the AI isn't ignoring…" is also unclear.NoNoYes
10 Sourcesn/an/aOne link only, no datesn/a

Other findings from the audit:

  • The audit's headings list shows 10 H2 sections plus H3s. Zero headings are phrased as questions (questionHeadings = 0).
  • All six bots checked (Googlebot, GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended) are allowed by "Allow: /glossary".
  • The page has no author or dateModified in its structured data, and no statistic sentences (statSentences = 0).

4. Rewrite plan by section

  • Intro: keep as is. It is the page's strongest passage for question 1.
  • 01: open with the definition, name "AI Visibility" in the last sentence in place of "It", and source one claim.
  • 02: add the source or reason for each action.
  • 03 (rewritten below): lead with the method, name the metrics, source the facts.
  • 04: attach one source per mistake.
  • 05: replace "It is also different" with the subject name.
  • 06: replace BrandX with a real, dated, sourced case.
  • 08 (rewritten below): start with the cause and name OAI-SearchBot.

5. Rewrites of the two weakest sections

Both sections keep the page's plain-English glossary voice.

03 How to measure AI Visibility in ChatGPT answers

To measure AI Visibility in ChatGPT, ask ChatGPT the questions your buyers ask, then count how many answers name your brand and how many cite your URL. AI Visibility has no public score, so the measure is your own count: brand mentions divided by questions asked, repeated on the same list of questions each week.
Use three readings, and keep them apart:
- Mentions: the share of ChatGPT answers that name your brand. Ask five to ten buyer questions and record yes or no for each.
- Citations: the share of answers whose source list includes a URL of your domain.
- Search Console: Google Search Console shows impressions and clicks for Google Search only. It does not show ChatGPT answers.
Brandscope, a free GetLoopLoop tool, puts five buyer questions to ChatGPT, Claude and Gemini and shows each answer beside your own page. Run the same questions again after every change to your pages, because a citation can fade within days (GetLoopLoop market analysis, 16 October 2026).

08 Why ChatGPT does not mention my brand

ChatGPT does not mention your brand when its search crawler cannot fetch your pages, or when no page of yours answers the question in a passage it can quote. Check these three causes in order.
1. Access. OAI-SearchBot is the crawler that controls ChatGPT search. If robots.txt disallows OAI-SearchBot, ChatGPT search cannot read your pages. GPTBot controls training only and does not decide this. On getlooploop.com, the URL audit of 28 October 2026 shows OAI-SearchBot allowed by "Allow: /glossary".
2. Answer. A page must state the answer in its first sentence and name the brand in it. A page that says "it" or "this" gives the model nothing to quote.
3. Competition. The model may prefer a competitor's page that matches the question better. Compare your best passage with theirs for the same question.
To verify a change, ask ChatGPT the same question again after the page is re-crawled, and run the URL audit again to confirm OAI-SearchBot is still allowed.

6. measure_text results (draft against the current page)

The draft contained only the two new sections (345 words, 2 passages). The current page has 10 passages.

CriterionQuestion 2 (measure)Question 3 (why not mentioned)Verdict
Fit, current → draft0.553 → 0.7170.471 → 0.788Higher for both
Position of the answer4th → 1st in the draft2nd → 2nd in the draftNot shown. The draft has only 2 passages, so its position says nothing about the full page.
New overlapNearest page is /brandscope at 0.77, below the 0.94 cannibalization lineSameNone. The current page's nearest page is /glossary/ai-overview at 0.766.
Passages that need an earlier passage0 (dangling = 0)0OK

The tool also reported "fit-lower". That is for question 1 ("what is AI visibility"): 0.607 on the current page, 0.454 in the draft. I did not rewrite the passage that serves that question, so section 01 and the intro stay in place. (judgment)

Decision (judgment):

  • Keep both rewrites. The fit is higher for questions 2 and 3, and there is no new overlap.
  • The "answer in an earlier passage" test is not met. Moving section 03 higher on the real page is a recommendation that has not been measured.
  • Re-run measure_text with the full revised page, not only the two sections, to get a real position and an overall fit before publishing.

Not covered

  • Section scores for the target page in semantic search. The search returned one section per page, so I used measure_text for per-passage scores.
  • Crawl size. Crawl 32 has 300 URLs (limit 300), and every URL has an embedding. It is a single crawl from 28 Oct 2026, with no comparison to earlier crawls.
  • Not run: Search Console data (not available), and ChatGPT itself. Nothing here shows what ChatGPT answers today.
  • Facts used in the draft that need checking before publishing.
  • The statement that a citation fades within days comes from the title and subtitle of a GetLoopLoop page in the crawl ("citations fade in 11 days"). I did not read the full article.
  • "Five to ten questions" is my suggestion, not a sourced figure.
  • Pages I did not measure: neighbouring pages (/brandscope, /glossary/ai-overview) beyond their nearest-neighbour scores.

Verifying after publishing

  1. Run the URL audit on the page again to confirm the new text is served and OAI-SearchBot is still allowed.
  2. Re-run the three semantic searches in a new crawl.
  3. Run measure_text on the full page. The changes unblock a clearer answer for retrieval. They do not promise citations, rankings or traffic.
B5

Question fan-out coverage test

Planning content for a topic: which questions does the site not answer?

/question-coverage*

GLLmolfar tools it calls: semantic_search

You fill in: topic, audience

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 167 s · 33 GLLmolfar tool calls · unedited, in English

I'm summarising 30 semantic searches on the loaded crawl and writing the report. Crawl 32 was already open and no crawl was running, so I started nothing.

AI visibility tracking: coverage check for getlooploop.com

Sources. [C32] means semantic search on crawl 32 (28 Oct 2026, about 13:33 UTC, 300 pages, all 300 embedded). [J] means my judgment. I did not use URL audit or Search Console.

The 3 changes that matter most

  1. Answer "What is GetLoopLoop?", "vs Profound", "alternatives" and "price" in one place (Q27, Q29, Q12, Q30).
  2. [C32] For "What is GetLoopLoop?" the best page is /legal/terms (0.547), and the homepage is not in the returned list. For "GetLoopLoop vs Profound" the best page is again /legal/terms (0.441).
  3. [J] Add a "What GetLoopLoop is" block to the homepage. Add one comparison page that covers both "vs Profound" and "alternatives". Add a "What is free, what costs money" page.
  4. What this unblocks: a retriever finds a page that answers a brand question, instead of a legal page that only matches the name. Verify: run the same four questions on the next crawl.
  1. Add one page on AI bot access (Q4, Q19, Q22).
  2. [C32] Best scores are 0.516, 0.474 and 0.479, and none has a clear leader. For "Which AI crawlers read my site?" the top page is /glossary/ai-referral-traffic.
  3. [J] Write "Which bot controls which assistant", with one claim per bot: OAI-SearchBot controls ChatGPT search, Claude-SearchBot controls Claude search, Googlebot controls Google Search and AI Overviews. GPTBot, ClaudeBot and Google-Extended are training only. Add a how-to section for each of OAI-SearchBot and Claude-SearchBot.
  4. What this unblocks: a page whose text answers the crawler questions. Verify: re-run the three questions on the next crawl. To check your live robots.txt, run get_ai_readiness or audit_url, which I did not run.
  1. Add one "how to choose" page for the choose-intent questions (Q11, Q13, Q14, Q17, Q18).
  2. [C32] Every one of these has a best score of 0.442–0.521 and a gap under 0.05. /brandscope or /glossary/ai-visibility is top or second in 3 of the 5.
  3. [J] Write one hub page: how to choose an AI visibility tool. Sections: AI visibility tracking vs rank tracking, crawl audit vs prompt sampling, suite SEO tool vs specialised tool, and a small-team path.
  4. What this unblocks: a page that matches comparison questions. Verify: re-run the five questions on the next crawl.

One duplicate to fix.

  • [C32] For Q16, /glossary/ai-overview (0.568) and /glossary/ai-overviews (0.562) are 0.005 apart.
  • [J] These look like two pages for one topic. Merge them or canonicalise one to the other, then run GLLmolfar's cannibalization view to confirm.

How I decided "clearly"

All numbers are [C32].

  • Best scores run from 0.441 to 0.670, a spread of 0.229. The median best score is 0.55.
  • Gaps (best minus second) run from 0.002 to 0.266. The median gap is 0.024.
  • Clearly above = gap of 0.05 or more. That is about the top quartile of gaps and about a fifth of the spread.
  • A (coverage gap) = gap under 0.05 and best score below 0.55. That is 14 questions.
  • Overlap (o) = gap under 0.05 and best score at or above 0.55. Several pages answer, none leads. That is 8 questions.
  • B (cannibalization) = top two are both our pages, within 0.010, on the same intent. That is Q16 and Q30.
  • C (answer only in section 3 or lower) could not be tested. The tool returned one section per page, section 1 for all 30, so no question is flagged. Deeper sections may exist but were not scored.

Eight questions have a clear leader: Q2, Q8, Q9, Q15, Q24, Q25, Q26 and Q28.

Appendix 1: all 30 questions [C32]

Section is §1 for every row. L = learn, C = choose, T = task, B = brand. "Home" is the homepage /.

#QuestionBest pageScoreSecond pageGapFlag
1 LWhat is AI visibility tracking for brands?/glossary/ai-visibility0.639/brandscope 0.6240.015o
2 LHow do AI assistants decide which brands to mention?/news/brands-in-ai-answers-october-2026…0.670/brandscope 0.5530.118clear
3 LSEO vs generative engine optimization?/glossary/generative-engine-optimization0.553/skills/…/seo-image-gen 0.5100.043o
4 LWhich AI crawlers read my site?/glossary/ai-referral-traffic0.516/glossary/ai-cloaking 0.5130.003A
5 LHow does robots.txt affect AI search visibility?/glossary/ai-visibility0.568/glossary/robots-txt 0.5550.014o
6 LWhat metrics measure brand visibility in AI answers?/brandscope0.651/glossary/ai-visibility 0.6270.024o
7 LHow do AI assistants split pages into passages?/vectorscope/claude-skill0.505/glossary/ai-assistant 0.5020.003A
8 LWhy is my brand not in ChatGPT answers?/brandscope0.589/news/brands-in-ai-answers… 0.5270.062clear
9 CBest AI visibility tracking tools/brandscope0.622/glossary/ai-visibility 0.5610.061clear
10 CBest tools to track mentions in ChatGPT and Perplexity/brandscope0.552Home 0.5330.020o
11 CAI visibility tracking vs rank tracking/glossary/ai-visibility0.521/brandscope 0.4810.040A
12 CAlternatives to Profound/brandscope0.451/glossary/ai-visibility 0.4190.032A
13 CBest GEO tools for marketing teams/glossary/generative-engine-optimization0.441/skills/…/seo-image-gen 0.4170.024A
14 CCrawler audit vs prompt sampling/glossary/ai-audit0.477/skills/firecrawl/…/firecrawl-seo-audit 0.4410.036A
15 CFree AI visibility checker/brandscope0.634/notes/ai-reads-your-page… 0.5280.106clear
16 CMonitor citations in Google AI Overviews/glossary/ai-overview0.568/glossary/ai-overviews 0.5620.005o, B
17 CBest AI search platform for a small business/skills/coreyhaines31/…/ai-seo0.442/notes/ai-reads-your-page… 0.4180.024A
18 CSemrush vs specialised AI visibility tools/glossary/ai-visibility0.487/brandscope 0.4640.023A
19 TCheck if my site is blocked for ChatGPT search/news/chatgpt-s-clicks-now-arrive-as-direct-traffic0.474/brandscope 0.4400.035A
20 TAudit a page for AI search readiness/glossary/ai-audit0.625/notes/ai-search-audit-full… 0.6050.020o
21 TTrack my brand mentions in AI answers/news/brands-in-ai-answers…0.575/brandscope 0.5730.002o
22 TAllow OAI-SearchBot and Claude-SearchBot in robots.txt/glossary/robots-txt0.479/vectorscope/claude-skill 0.4680.011A
23 TFind content gaps AI cannot answer from my site/notes/ai-reads-your-page…0.486/skills/…/content-gap-analysis 0.4660.020A
24 TRewrite a page so AI can cite it/glossary/citation0.506/notes 0.4470.059clear
25 TCreate an llms.txt file/glossary/llms-txt0.573/glossary/ads-txt 0.3220.251clear
26 TReport AI visibility to management/glossary/ai-visibility0.591/glossary/ai-overview 0.5090.082clear
27 BWhat is GetLoopLoop?/legal/terms0.547/glossary/agent-loop 0.5390.007A
28 BWhat is GLLmolfar?/gllmolfar0.577/glossary/llms-txt 0.3110.266clear
29 BGetLoopLoop vs Profound/legal/terms0.441/gllmolfar 0.4310.010A
30 BIs Vectorscope free, and what does it cost?/notes/vectorscope-as-an-agent-skill…0.504/vectorscope 0.4970.007A, B

Patterns [C32].

  • /glossary/ai-visibility or /brandscope is the top page for 11 of 30 questions.
  • At 0.670, the strongest match in the whole run is only moderate.

Close calls [J].

  • Q21 (0.002 gap) is a news analysis against a tool page. I read that as overlap, not cannibalization.
  • Q5, Q1 and Q22 have gaps of 0.014, 0.015 and 0.011, just outside the tie band.

Appendix 2: proposals for the 14 coverage gaps [J]

Where one page serves several questions, I merged them to avoid creating new cannibalization.

QuestionsProposal
Q4, Q19, Q22One new page, "Allow ChatGPT and Claude search to read your site". It opens with the bot table from change 2. It has a check section for OAI-SearchBot and a robots.txt snippet section for each of OAI-SearchBot and Claude-SearchBot. It links to the existing robots.txt glossary page.
Q7New first section on /glossary/chunking: "How a retriever cuts your page into passages", with the 26-passage cap and one example. Link to Vectorscope.
Q11, Q13, Q17, Q18One hub page, "AI visibility tools: how to choose". It has sections: vs rank tracking, suite vs specialised, GEO tools for marketing teams, small-team path.
Q14New section on /gllmolfar and the hub: "Site crawl vs prompt sampling: what each can and cannot show".
Q12, Q29One new comparison page, "GetLoopLoop vs Profound, and other alternatives". Competitor facts must come from verified sources.
Q23New how-to page or section: "Find content gaps with semantic search on a crawl". It describes the method used in this report.
Q27New "What GetLoopLoop is" block at the top of the homepage: what it is, who it is for, what it measures.
Q30New "What is free, what costs money" page. Also decide which of /vectorscope and the Vectorscope note owns the question, to resolve the B flag.

Not covered

  • URL limit. Crawl 32 stopped at its 300-URL setting with nothing queued. Earlier crawls (25, 27) reached 500 pages, so some pages are not in this run.
  • Lists cut. Each search returned a list of about 20–30 pages. I recorded only the top two per question.
  • Sections. The tool gave one section per page, so criterion C is untested.
  • Pages without embeddings. None; 300 of 300 are embedded.
  • Tools not used. I did not run get_ai_readiness, audit_url, get_fixes, Search Console or the cannibalization view. Your live robots.txt is unverified.
  • Tool failures. None.
  • Questions. All 30 are my own, not real prompt data. I chose the competitors Profound and Semrush myself, so please confirm them.

I can also turn this into a shareable page if you want to send it to your team.

B8

llms.txt draft

The site wants an llms.txt, or GLLmolfar flagged problems in the existing one.

/llms-txt*

GLLmolfar tools it calls: get_overviewget_pagessemantic_searchget_ai_readiness

You fill in: site

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 62 s · 12 GLLmolfar tool calls · unedited, in English

Google does not use llms.txt. The file is for other agents and tools.

The draft is saved at (work folder)\llms.txt. It has 26 link lines under 9 H2 sections.

Most important points

  1. A live llms.txt already exists (AI readiness probe, 2026-10-28): 33 KB, 32 links, 15 sections, 0 broken links. Compare this draft with it before you replace it. This draft is shorter, with 26 links.
  2. No about, pricing, documentation or contact page is in crawl 32. The page table has no URL for any of them. They are left out, not guessed. The Home page is included. I added a "Site" section for it, plus methodology, questions and legal, which you did not ask for.
  3. Most topics are clusters of agent-skill pages and glossary terms. There are no guide pages for these topics. For "Workflows published" and "Technical SEO" I used the /skills hub and the highest-scoring skill page. For "Ad affiliate" and "Testing variance" the best matches are weak. The scores are 0.52 and 0.37 for Ad affiliate, and 0.52 for Testing variance. Check these two sections by hand.

Sources

  • Crawl 32 (open crawl, 300 pages, embeddings on): topics, semantic search, and the pages table. I kept 294 pages that are status 200, indexable and have a canonical to themselves. Every URL in the draft is among them. Each line comes from that page's title, H1 and description, with no marketing claims added.
  • AI readiness probe (2026-10-28): the current llms.txt data above.
  • My judgment: which page best shows each topic.

AI access

  • OAI-SearchBot, Claude-SearchBot and PerplexityBot: robots.txt allows all paths, and 10 of 10 test pages were fetched without problems.
  • Googlebot was not tested.
  • llms.txt does not unblock any bot. To check changes, run get_ai_readiness again with run_probe.

What I did not cover

  • Crawl 32 stopped at its 300-page limit, so pages beyond it are not in the draft.
  • I ran one semantic search per topic and took only the top results. I did not check each topic's other pages.
  • The 6 pages that are not status 200, not indexable or not self-canonical are excluded. I did not list them.
  • The topic names are GetLoopLoop's cluster labels (such as "Ai getlooploop"). I used them as H2 headings with light capitalization. Rename them before you publish.

Appendix: pages per topic

TopicPages in the crawlLines in the draft
Workflows published1012
Technical SEO551
Ai getlooploop534
Ad affiliate332
Ai news304
Vectorscope ai125
Text robots102
Testing variance51

The "Site" section adds 4 more lines.

Content

B9

Content refresh brief for one page

A page losing clicks, stale, or beaten by a competitor.

/refresh-brief*

GLLmolfar tools it calls: audit_urlget_pagessemantic_searchget_fix_urlsmeasure_text

You fill in: url

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 86 s · 14 GLLmolfar tool calls · unedited, in English

Refresh brief: https://www.getlooploop.com/glossary/ai-visibility

Sources. Crawl 32 of getlooploop.com (28 Oct 2026, 300 of 300 pages, embeddings on) gave the fix list, get_pages data and semantic search. A live URL audit on 28 Oct 2026 at 14:11 GMT gave status, text, headings, JSON-LD and robots.txt. measure_text on the current page text gave passage positions. Anything marked "judgment" is mine.

The 3 most important changes

  1. Add an author and real dates.
  2. Crawl 32: ai.noAuthor and ai.noDate both fail for this page, and get_pages returns empty author, datePublished and dateModified.
  3. URL audit: the visible text says "Updated September 2026" and "Prepared at GetLoopLoop", with no named person. The DefinedTerm JSON-LD has no dates and no author.
  4. Change: show a byline linked to an author page, with a Person that has sameAs. Add datePublished and dateModified to the JSON-LD and show the same dates on the page.
  5. What it unblocks: an assistant can see who stands behind the page and how current it is.
  6. Verify: run audit_url and check that trust.author, trust.datePublished and trust.dateModified are filled. Then re-run crawl 32's checks and confirm the URL no longer appears under ai.noAuthor and ai.noDate.
  1. Move the SEO-difference answer up, and add sections for the questions this page answers worst.
  2. measure_text, current page, 10 passages: the answer to "How is AI visibility different from SEO?" sits at passage 8, although the tool's rule is that the answer should appear by passage 2. Its score is 0.727, so the content is fine and only the position is wrong.
  3. measure_text, current page: the robots.txt question scores 0.464 at passage 6, and the timing question scores 0.470 at passage 3. Both scores are weak.
  4. Semantic search, crawl 32, rank of this page among our pages: see the table in the next part.
  5. Change: add the sections listed in "Sections to add" below.
  6. Verify: run measure_text again with the new draft and the same six queries, and look for scores above the current ones and the SEO answer at passage 2 or earlier.
  1. Source or remove the unsourced numbers, and label the example.
  2. URL audit: the only source is the generic "Google Search Central" link. The page says "at least three high-quality backlinks" and "a few weeks" with no source.
  3. URL audit: the "Worked example" is a made-up BrandX quote written as if it were a real test.
  4. Change: link each figure to its source, or reword it as a judgment. Mark the BrandX example as illustrative.
  5. Verify: audit_url should show trust.statSentences and external content links that match the claims.

Facts and dates to update

  • Visible date. "Updated September 2026". Today is 28 Oct 2026. Update it only after you actually change the content, and put the same date in dateModified.
  • Crawl 32 fix list for this page: titles.below30, ai.noAuthor, ai.noDate, content.lowRatio, headers.insecureCookies, security.no_xcto, security.no_csp, security.no_xfo, security.no_referrer.
  • Title. The title is "AI Visibility — GetLoopLoop", 27 characters. Add the topic.
  • Section 03 (measurement). It names "Google's AI Search or Microsoft Copilot". Check the product names against current ones.
  • Section 03 (measurement). It says "no public score" and does not mention our own tools, Brandscope or Vectorscope. Judgment: say what they measure.
  • Section 08 answers. Some start with "Yes" or "No" and do not answer the question asked. For example, "why isn't my brand showing up?" is answered with "Yes, the AI may not be pulling…".
  • AI access, URL audit of 28 Oct 2026. robots.txt allows Googlebot, GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot and Google-Extended for /glossary (group *, line 17). Bot by bot:
  • OAI-SearchBot: allowed, so ChatGPT search can fetch the page.
  • Googlebot: allowed, so Google Search and AI Overviews can fetch it.
  • ClaudeBot: allowed. It controls training only, and says nothing about Claude search.
  • Claude-SearchBot: not checked, because the tool did not list it.
  • Sitemap. The URL audit reports inSitemap: false. Check sitemap.xml yourself before acting.
  • Alt text. The URL audit reports 6 images with no alt text. Crawl 32 does not list images.missingAlt for this page, so the two sources disagree. Check this.
  • Accessibility, axe-core in the URL audit: two serious violations, color-contrast (3 nodes) and link-in-text-block (the CC BY 4.0 link).

Sections to add

Rank is this page's rank among our pages in semantic search on crawl 32. "Passage" is the best-matching passage number from measure_text on the current page.

QuestionRankScorePassageBest on-site page
What is AI visibility?10.6151this page
How is AI visibility different from SEO?10.5998this page
How do I measure my brand's AI visibility?20.6284/brandscope (0.668)
How do I get my brand cited by ChatGPT and other AI assistants?30.5282/brandscope (0.588)
Which AI crawlers should I allow in robots.txt to appear in AI search?130.4206/glossary/robots-txt (0.550)
How long does it take for changes to show up in AI answers?40.4173/questions (0.486)

What to add:

  • A robots.txt section by bot. Say that OAI-SearchBot controls ChatGPT search, that Claude-SearchBot controls Claude search, and that Googlebot controls Google Search and AI Overviews. Say that GPTBot, ClaudeBot and Google-Extended control training only. This is the weakest question (rank 13).
  • A short section on timing. The current answer, "a few weeks", has no source. Describe what to re-check and when. Do not promise a timeline.
  • A "how to measure" section that names the tools. It should say what Brandscope and Vectorscope show, and link to them. /brandscope currently beats this page on this question.
  • A "how to get cited" section. Cover which passages assistants quote. Judgment: link /news/brands-in-ai-answers-october-2026-a-market-analysis, which scored 0.548 on this question.

Limit of these results. Semantic search returned only the page-level block, headed "GetLoopLoop", for every result, so it could not name which section answers. I used measure_text passage numbers instead. Only passages 1 (intro), 3 (section 02) and 4 (section 03) have previews. The other numbers are positions only.

Sections to merge or remove (judgment, plus one measured fact)

  • Section 08 "Asked out loud" and section 07 FAQ. Both are Q&A blocks that repeat each other, and the FAQ JSON-LD copies all 9 of them. Merge them into one FAQ of roughly 5 questions. Drop the generic ones, "Should we invest now or wait?" and "Is it still relevant after LLM updates?", unless you add specifics.
  • Section 05 and the SEO FAQ answer. Both say AI visibility is different from SEO. Keep the answer once, near the top.
  • "Quick audit checklist" and section 02. Both list the same actions. Keep one.
  • The last sentence of section 01. "It is how often a brand appears…" repeats the definition in the intro.
  • Section 09. It is an alphabetical list of unrelated terms: "Accountability, Action Space, ads.txt…". Replace it with 4 to 5 terms that really relate to this one.
  • Cannibalization. The nearest page is /glossary/ai-overview at cosine 0.766, below the 0.94 cannibalization threshold. This page is not in the crawl 32 cannibal list. No merge is needed.

Internal links to add

  • From the crawl 32 "links" opportunities: I searched all 239 for addLinkOn or linkTo pointing at this URL. There are none that point to it.
  • The only entry involving this page goes outward: add a link from this page to /glossary/ai-overview with the anchor "ai overview" (similarity 0.814).
  • Check. The single-page audit shows inlinks: 0 and linkScore: 0 for this page. That figure comes from the audit, not from the full crawl, so confirm it in crawl 32 before saying nothing links here.
  • Judgment, not from the tool: /brandscope, /glossary/robots-txt, /glossary/share-of-voice and /glossary/ai-referral-traffic are the closest pages by meaning. Link them from the new sections above.

How to verify after publication

  1. Run audit_url on the page. Check author, dates, title length, JSON-LD and the 6 robots.txt verdicts, and add a check for Claude-SearchBot if the tool supports it.
  2. Run measure_text with the final draft and the same six queries. Look for the SEO answer at passage 2 or earlier and higher scores on the robots.txt and timing questions. Confirm that the nearest page stays below 0.94.
  3. Run a new crawl, or audit_url for this page, and confirm the URL is no longer listed under ai.noAuthor, ai.noDate and titles.below30.
  4. Run the semantic searches again and compare ranks with the table above.
  5. Check the Spanish version /es/glossary/ai-visibility. It is linked through hreflang and needs the same date and author changes.

What I did not cover

  • Search Console. There is no Search Console tool in this session, so I have no 90-day queries and no comparison with the previous 90 days.
  • Crawl 32 size. It reached its limit of 300 URLs with 0 queued, so it may not include every page on the site.
  • Semantic search. It gave page-level results only, with no named sections.
  • measure_text baseline. I passed the page text as plain text, so the tool counted 3 passages. The live page measured 10, and I used the live page numbers.
  • Not checked. I did not check Claude-SearchBot in robots.txt, and I did not check llms.txt.
  • Other fixes. The security-header and cookie fixes are low importance and not covered here.

I can publish this as a shareable page if you want to pass it to the content team.

B10

Stale, undated and unsourced content sweep

Quarterly E-E-A-T hygiene.

/stale-content*

GLLmolfar tools it calls: get_overviewget_pagescount_pagesaudit_url

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 113 s · 22 GLLmolfar tool calls · unedited, in English

Stale, undated and unsourced content: crawl 32

Sources:

  • Crawl 32 is the open crawl of getlooploop.com, 28 Oct 2026. It holds 300 pages, all with embeddings, and the URL limit was not hit.
  • URL audit means audit_url runs on 10 pages, 28 Oct 2026 at about 14:13 UTC.
  • No Search Console data was used.

No crawl was running. I did not start one.

Most important changes

  1. Add a visible byline linked to an author profile page, plus a JSON-LD author Person. (crawl 32) 225 of 300 pages fail ai.noAuthor. I audited 10 of them (URL audit). The only Person in their JSON-LD is the site founder, "Olexandr", inside the sitewide Organization block. The skill pages name the publisher repo, such as agricidaniel/claude-seo, as an Organization author. The /questions answers are the exception. They carry a Person author with a LinkedIn URL, not an on-site profile.
  2. The pages are built from templates, so this is a handful of template edits.
  3. I did not check whether /about#author (the founder's @id) resolves to a real page. Check that first.
  4. To verify, re-run the crawl, or run audit_url on one page, and confirm ai.noAuthor no longer lists the URL.
  5. Show a publish or modified date on the page, and put the same date in JSON-LD. (crawl 32) 218 of 300 pages fail ai.noDate.
  6. Every page that fails ai.noDate also fails ai.noAuthor.
  7. On the 10 audited pages, JSON-LD has dateModified on only 2: /ai-volatility (2026-10-28) and /gllmolfar (2026-10-27). /questions has per-question dateCreated in JSON-LD (Aug 2026), but I did not see a visible date for it in the text I read.
  8. On the skill pages the only visible date is "Last read Oct 26, 2026". That is a directory sync date. It is not a publish or modified date, and JSON-LD has none.
  9. Verify with ai.noDate.
  10. Link a source next to each number. (crawl 32) 42 pages fail ai.claims. 36 of them are in Technical seo (24) and Workflows published (14), and these are mostly skill pages.
  11. On the 10 audited pages (URL audit), extContentLinks is 0 on every page, so there are no outbound links inside the content.
  12. On /ai-volatility the figures are the site's own measurement, and a "How do we measure any of this?" section exists. Link that method from the numbers themselves.
  13. Verify with ai.claims.

ai.stale flags 0 pages in crawl 32. That does not show the content is fresh. With 218 pages undated, the checker cannot judge age for them.

Access is not the problem. (URL audit) robots.txt allows Googlebot, OAI-SearchBot and ClaudeBot on all 10 pages. These fixes are on-page.

Pages by topic (crawl 32)

Each page was scored by how many of the 4 fix keys it fails. ai.stale is 0 for every page, so the maximum score is 3. 37 pages score 3.

TopicPagesnoDatenoAuthorclaimsScore 3Score 2Score 1Score 0
Workflows published1015252141240247
Technical seo55444424222229
Ai getlooploop535353005300
Ad affiliate333232003201
Ai news301420321279
Vectorscope ai127811614
Text robots101010001000
Testing variance55500500
No topic11100100

The score columns come from my own set arithmetic over the get_pages lists. They sum to each topic's total.

The topic labels are GLLmolfar's embedding clusters, and they are loose. "Ai news" holds glossary hubs and category pages, not only news. I did not check each cluster.

URL audit of 10 pages

All 10 fail all three of ai.noDate, ai.noAuthor and ai.claims. Another 27 pages tie at the same score, so this is a spread across topics that I chose, not a ranking.

Page (topic)Visible dateJSON-LD date agreesAuthor with profileSource for a number
/ai-volatility (Ai news)"Today · Oct 28" reading label, not a publish datedateModified 2026-10-28 on Dataset, no datePublished. Same day as the label.Missing. Founder only, in sitewide JSON-LD.Own measurement, method section present, 0 external links
/gllmolfar (Technical seo)None in the text I readdateModified 2026-10-27, nothing visible to agree withMissingProduct limits (50,000 / 5,000 URLs) with no source
/questions (Ai news)None seen in the text I readPer-question dateCreated (Aug 2026)Person in answer JSON-LD, LinkedIn URL, no on-site profile12 statistic-like sentences, 0 external links
/voicescope (Vectorscope ai)None in the text I readNo datesMissing12 statistic-like sentences, 0 external links
/skills/agricidaniel/claude-seo/seo"Last read Oct 26, 2026" (sync date)No datesOrganization (repo name) onlyInstall count 9,087, labelled "from the directory"; 0 in-content links
/skills/coreyhaines31/marketingskills/seo-auditSame sync dateNo datesOrganization only238,125 installs, same pattern
/skills/coreyhaines31/marketingskills/content-strategySame sync dateNo datesOrganization only164,414 installs, same pattern
/skills/wshobson/agents/rag-implementationSame sync dateNo datesOrganization only14,011 installs, same pattern
/skills/google/skills/bigquery-ai-mlSame sync dateNo datesOrganization only7,144 installs, same pattern
/skills/yuan1z0825/nature-skills/nature-citationSame sync dateNo datesOrganization only15,696 installs, same pattern

The skill pages already show an install count labelled "from the directory", with a skills.sh link in the text and in the schema. The gap is that this is not a source link attached to the number inside the content. I did not read the pages in full, so the dates and sources marked "none in the text I read" could appear lower on the page.

Plan per topic

  • Workflows published (101 pages) and Technical seo (55 pages). These are mostly skill pages from one template.
  • Add a "Last reviewed" or modified date to the template, and fill dateModified in JSON-LD from the same value. Use the directory sync date only if it is labelled as that.
  • Add a GetLoopLoop reviewer byline linked to a profile page. Keep the skill's publisher in the page as the skill's publisher, not as the page's author.
  • Attach the source link to the install counts and the "+x%" figures. Fix the 36 ai.claims pages first.
  • Verify with a re-crawl and ai.noDate, ai.noAuthor and ai.claims.
  • Ai getlooploop (53) and Ad affiliate (33). All 85 are glossary entries that fail the date and author checks, and none fails ai.claims.
  • Add datePublished and dateModified to the glossary template.
  • Add an author or reviewer line.
  • Fix the template once. One template change covers the whole topic.
  • Verify with a re-crawl, then ai.noDate and ai.noAuthor.
  • Ai news (30). This is the only topic where ai.noAuthor (20) exceeds ai.noDate (14). The news articles and /news have a date but no author.
  • Add a byline to the 5 news articles and /news.
  • Add the date and byline to /ai-volatility, /questions and the three language glossary hubs.
  • Link the method next to the volatility figures.
  • Verify with ai.noAuthor, ai.noDate and ai.claims.
  • Vectorscope ai (12). Add a date and author to /voicescope, /brandscope, /patternscope, /reviewscope, /vectorscope and /methodology. Add a byline to /vectorscope/claude-skill, which already has a date. Source the numbers on /voicescope. Verify with ai.noDate and ai.noAuthor.
  • Text robots (10), Testing variance (5), No topic (1). These are glossary entries. The template fix for the glossary covers them. /glossary/robots-txt and /glossary/llms-txt are the pages where a date matters most, because the topic changes over time. Verify with ai.noDate and ai.noAuthor.

What I did not cover

  • Only 10 of the 37 pages that score 3 were audited. The other 27 are in the ai.claims list. I did not audit any score 2 page or any page from the topics with no claims.
  • audit_url returned only the start of each page's text, so whether a visible date or byline appears further down is unconfirmed.
  • I did not check whether /about exists or has a Person profile.
  • My first ai.noDate and ai.noAuthor calls were too large to print. I re-fetched them with only the columns url and topic, and all 218 and 225 rows came back. The set arithmetic for the table is mine.
  • The shell was unavailable, so I did no scripted analysis of the saved files.
  • The audits also showed schema errors (for example SoftwareApplication.aggregateRating|review) and security-header fixes. I did not report those here.
  • No Jira tasks were created and no Search Console data was used.

I can write the Jira tasks (one per fix key) or publish this as a shareable page if you want either.

B14

Structured data plan

Schema errors, or no schema on key templates.

/structured-data*

GLLmolfar tools it calls: count_pagesget_pagesaudit_urlexplain_fix

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 97 s · 12 GLLmolfar tool calls · unedited, in English

Structured data plan for getlooploop.com

Source: crawl 32, 2026-10-28 (300 pages, health 89). The page-level findings come from URL audits run on 2026-10-28 at about 14:15 UTC. Fix counts come from count_pages. The proposed JSON-LD is my judgment.

Crawl state: no crawl was running. I did not start one.

The 3 most important changes

  1. *Fix the SoftwareApplication block on the /skills/ template.** This one template has 147 of the 156 error pages and 147 of the 161 warning pages.
  2. The error is aggregateRating|review missing.
  3. The warnings are Offer.url, Offer.availability, and Organization.url/logo/sameAs.
  4. The Organization warnings probably come from the inline author, which has only a name.
  5. Don't invent ratings. The pages show install counts, not reviews. Add the missing Offer and author properties and decide separately about the rating error (see Section 3).
  6. Make the news headline match the visible H1 and clean up dateModified.
  7. The headline in the JSON-LD is "Search & AI news, 22–26 Oct 2026: AI Overviews pass 80%". The visible H1 is "AI Overviews pass 80% as the clicks stay thin".
  8. dateModified is 2 ms after datePublished, so it looks auto-generated. The page shows no modified date.
  9. Fix /gllmolfar.
  10. It lacks offers, which is an error.
  11. It also lacks a rating or review.
  12. Its publisher is an inline Organization that lacks logo and sameAs. Point it at the #organization node with an @id reference.
  13. The page says "Preview 0.7.35", but get_status reports the local app as GLLmolfar 0.8.1. Confirm which version is current before you publish softwareVersion.

1. Counts by template (crawl 32)

Fix keyPagesWhere
structured.invalid0none
structured.missing0none
structured.errors156147 /skills/* pages. The other 9 are /, /gllmolfar, /brandscope, /methodology, /patternscope, /reviewscope, /voicescope, /vectorscope and /vectorscope/claude-skill.
structured.warnings161The same 147 /skills/ pages, plus the same 9 non-skill pages, plus /free-tools, /news, /notes and 2 /news/ pages.

Every page has some JSON-LD. The problem is incomplete properties, not absent markup.

2. URL audits (one URL per template)

TemplateURL auditedTypes foundErrorsWarnings
Home/Organization, WebSite, SoftwareApplication, WebPage, FAQPage, ItemList`SoftwareApplication.aggregateRating\review`Offer.url, ListItem.item
Product/gllmolfarOrganization, WebSite, SoftwareApplicationSoftwareApplication.offers, `aggregateRating\review`Organization.logo, Organization.sameAs
Skill/skills/agricidaniel/claude-seo/seo-schemaOrganization, WebSite, SoftwareApplication, WebPage`aggregateRating\review`Organization.url/logo/sameAs, Offer.availability, Offer.url
News post/news/ai-overviews-pass-80-as-the-clicks-stay-thinOrganization, WebSite, NewsArticle, BreadcrumbList, FAQPagenoneNewsArticle.image

3. Proposed JSON-LD

Facts in the snippets come from the audited pages. Anything marked TODO needs a real value from you.

Home (/)

The Organization already exists, and its sameAs lists only X and Discord. Add real profiles you own, such as a company LinkedIn page or GitHub org. Don't add a profile that doesn't exist.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.getlooploop.com/#organization",
      "name": "GetLoopLoop",
      "url": "https://www.getlooploop.com",
      "logo": "https://www.getlooploop.com/brand/getlooploop-logo.jpg",
      "sameAs": [
        "https://x.com/Looploopnow",
        "https://discord.gg/Z6cRuhprMa"
        /* TODO: add company LinkedIn / GitHub URLs if they exist */
      ],
      "founder": { "@id": "https://www.getlooploop.com/about#author" }
    }
  ]
}

In the existing home SoftwareApplication, add "url" to the Offer. Use the page that explains invite-only access, which is a TODO. In the ItemList, give each ListItem an item as well as url:

{ "@type": "ListItem", "position": 1, "name": "Vectorscope",
  "item": "https://www.getlooploop.com/vectorscope" }
  • I only saw the first part of the home JSON-LD. The tool output cut it off partway through the ItemList. Re-check the rest after the change.
  • The home Offer says price 0 with LimitedAvailability. The visible text says "Invite-only". Make sure the markup says the same.
  • Don't add a date to the home page. The only date I saw on it belongs to an article card.

Posts (/news/*)

There are no errors. Change the headline, drop or correct dateModified, and add an image:

{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "@id": "https://www.getlooploop.com/news/ai-overviews-pass-80-as-the-clicks-stay-thin#article",
  "headline": "AI Overviews pass 80% as the clicks stay thin",
  "datePublished": "2026-10-26T18:18:47.010Z",
  "dateModified": "2026-10-26T18:18:47.010Z",
  "image": ["TODO: https://www.getlooploop.com/<real article image>"],
  "author": {
    "@type": "Person",
    "@id": "https://www.getlooploop.com/about#author",
    "name": "Olexandr",
    "url": "https://www.linkedin.com/in/olexandr-tsyrkin-07460539"
  },
  "publisher": { "@id": "https://www.getlooploop.com/#organization" },
  "mainEntityOfPage": "https://www.getlooploop.com/news/ai-overviews-pass-80-as-the-clicks-stay-thin"
}
  • Headline: the new text matches the visible H1.
  • Dates: datePublished matches the visible "26 October 2026". Only set dateModified to a later time if the page shows a real update.
  • Word count: the current wordCount of 2847 differs from the crawler's count of 3161 words. I left it out. Add it back only if it is computed from the rendered text.
  • Author: "Olexandr" matches the visible author line.

Product (/gllmolfar)

Use SoftwareApplication. Product doesn't apply to a desktop app.

{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "@id": "https://www.getlooploop.com/gllmolfar#software",
  "name": "GLLmolfar",
  "url": "https://www.getlooploop.com/gllmolfar",
  "applicationCategory": "SEO software",
  "operatingSystem": "Windows 10 or later, macOS on Apple silicon",
  "softwareVersion": "TODO: confirm (page says 0.7.35, local app is 0.8.1)",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD",
    "url": "https://www.getlooploop.com/gllmolfar",
    "availability": "https://schema.org/InStock"
  },
  "publisher": { "@id": "https://www.getlooploop.com/#organization" }
}
  • Offer: the page's visible text says "50,000 URLs per crawl, free with an account". price: 0 agrees with that. If paid levels get their own offers, add them.
  • dateModified: the existing markup says 2026-10-27. I found no visible date to match it, so drop it unless the page shows one.

Skills (/skills/*)

Keep the existing SoftwareApplication, WebPage and BreadcrumbList. Change the author and the Offer:

"author": { "@type": "Organization", "name": "agricidaniel/claude-seo",
            "url": "TODO: the publisher's real URL shown on the page" },
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD",
            "availability": "https://schema.org/InStock",
            "url": "https://www.getlooploop.com/skills/agricidaniel/claude-seo/seo-schema" }
  • Generate these fields from the template data, so every skill page gets its own publisher and URL.
  • The name seo-schema and the 7,079 installs agree with the visible page.
  • Rating or review error: you have two choices.
  • Add a real aggregate rating or review only if you collect and show them.
  • Otherwise accept the error as "not applicable". I can't tell from the crawl whether the rating-or-review property is required for rich results, so check the current Google documentation.

4. Google changes the rich result types

Google changes the rich result types. Check the current Google documentation before you depend on one. The seo-schema skill page on your own site, a data point from the crawl, says Google retired several types in 2025. FAQPage is one that its text flags as having no Google SERP rich result benefit.

5. Verify

  • Run audit_url on each representative page after the change. The page is clean when its structured.errors and structured.warnings keys no longer list it.
  • Run a new crawl to confirm the full templates.
  • Check the markup against Google's current documentation or Rich Results Test. This change only unblocks eligibility and does not promise a rich result.

6. What I did not cover

  • Crawl limit: crawl 32 hit its limit of 300 pages. A larger skills directory or other sections may exist.
  • Pages I audited: only 4 pages, one per template. I did not audit /methodology, /brandscope, /patternscope, /reviewscope, /voicescope, /vectorscope, /free-tools, /news and /notes. They may differ from my samples.
  • Home JSON-LD: truncated in the audit output, as noted above.
  • Lists: I saw all 156 error URLs and all 161 warning URLs. I cut none.
  • Tools and sources: no tool failed. I did not use Search Console or the Rich Results Test. Embeddings were not relevant to this task.

Appendix: pages per template with warnings or errors

The full URL lists are in get_fix_urls for structured.errors (156) and structured.warnings (161). The /skills/* group has about 60 publisher folders. The largest are claude-seo (25 pages), affaan-m/ecc (11), google/skills (10), marketingskills (9), aaron-he-zhu/seo-geo-claude-skills (8) and wshobson/agents (8).

B18

Writing prompts for a page type (reverse prompts)

Briefing writers or a model to produce more pages like the best one.

/reverse-prompts*

GLLmolfar tools it calls: reverse_prompts_readreverse_prompts_buildreverse_prompts_get

You fill in: url, page_type

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 114 s · 4 GLLmolfar tool calls · unedited, in English

Brief for a product landing page (reverse prompting)

Source: reverse prompting of https://www.getlooploop.com/gllmolfar, run mvs7769j56e7de7a, 2026-10-28. Build status: built, 13 blocks from 15 candidates. This is my reading of the page (judgment), not crawl or audit data.

get_status showed no crawl running (crawl 32 loaded, idle). I did not start one.

Three things to know first

  1. The page opens with the result, then admits it is a preview. Hero first, then a block saying the build is unfinished and unsigned. Keep that order: candour comes early, before the feature detail.
  2. Every claim comes with a limit. Scores, similarity and AI-readiness are described as leads for human review, never as rank or traffic promises. Copy this pattern in each feature block.
  3. The build passed on the second try. The first build listed 6 overlap problems (lines repeating 6+ words from the page). I fixed only those lines and rebuilt.

Page profile

  • Language: en
  • Fictional example product: Sitelens, a desktop auditor that scans a site, shows how assistants read it, and ranks repairs.
  • Page type: product landing page for a downloadable, preview-stage desktop tool.
  • Audience: SEO specialists, content teams, freelance consultants and site owners who must decide what to repair first.
  • Awareness: comparing_solutions.
  • Tone: candid, precise, technical but plain; formality 3; second person.
  • Promise: {product} gives {audience} a clear, evidence-backed list of what to repair next, without guessing, spreadsheet juggling or sending page text to a cloud service.
  • Logic: result and download, then preview limits, views, method, evidence, data boundary, answers, honest rival table, closing download.
  • Threads:
  • each finding links to the exact pages behind it;
  • analysis runs on the user's machine;
  • limits are stated openly;
  • a score is a lead for review.

Block prompts

Each prompt starts "Write a … block for {product}, aimed at {audience}. Write in English." Below are the job and the structure, with word counts as the build gives them.

#BlockTypeJobStructure (words)
1HeroheroSay what the tool does and offer a download for both systems, with the limits stated.Headline 8–12 (three short imperatives, no product name); intro 30–40; two download buttons 5–9 and 8–11; terms notice 6–10; limits note 28–40
2Preview disclosureotherSet the expectation that this is a preview.Headline 5–8; statement 18–26; 4 caveats of 8–24; reassurance 6–10; changelog link 4–7
3Unsigned build guideotherGet the visitor past the security warning.Headline 7–11; explanation 30–40; 3 options (h3 3–5, p 15–35); command hints 8–12
4Audience stripotherName the roles in one line.Lead-in 3–5; 4 role chips of 1–3
5View galleryfeaturesOne scan opens into many views, with the AI-access view highlighted.Headline 5–9; intro 22–28; 4 groups (label 2–4, 5 view names); question 8–11; answer 34–42
6Scan walkthroughhow_it_worksMake each crawler step and the entry modes visible.Headline 6–9; intro 24–30; 4 steps (h3 3–6, p 20–45); modes headline 5–7; 4 modes (h4 2–3, p 14–26)
7Signal cataloguefeaturesList the signal families and the crawler's conduct rules.Headline 4–7; intro 22–26; 4 families (h3 2–4, p 18–25); conduct note 80–95
8Capability cataloguefeaturesMap the whole workspace from findings to decisions to automation.Headline 5–9; intro 22–28; 15 cards (h3 1–5, p 25–110)
9Local analysis explainerotherShow that meaning analysis runs locally and how to read it.Headline 5–8; method 28–34; depth modes 75–90; 3 similarity cues; disclaimer 10–14
10Data boundaryotherMake clear what stays local and what is sent.Headline 5–8; local storage 30–40; no cloud AI 18–24; telemetry 40–50; 5 data-flow rows
11QuestionsfaqAnswer scope, method, limits and updates.Headline 3–5; intro 6–10; 10 Q&As (question 4–11, answer 35–135)
12Honest comparisoncomparisonCompare with two unnamed rivals and concede where they do more.Headline 3–5; intro 18–22; legend 5–7; 20 rows (name 2–9, cells 20–60); source note 25–30; footnotes 20–25
13Final downloadctaRepeat the download offer and the consent and link-validity notes.Headline 5–7; offer 15–19; two buttons; terms notice 6–10; link note 6–9

Techniques that recur across blocks

  • Put the result before the mechanism, and the mechanism before the numbers.
  • Open each answer or card with the direct point, then one concrete detail, then a limit.
  • Give each caveat its own plain sentence.
  • Mark every comparison row with a symbol and a short qualifier, and concede rows where rivals do more.
  • Avoid: superlatives, ranking or citation promises, naming rivals, apologetic wording.

What I did not cover

  • Dropped candidates: b01 (navigation, tool menu and footer links) and b12 (two placeholder release notes). The brief also excluded one 13-word overlay.
  • Truncated source text: several long paragraphs in the brief end in "…". My word ranges for those blocks rest on the brief's counts, not the full text.
  • Build warnings: the build flagged 7 example lines as outside the stated range by more than 20%. The blocks are fine, and these are example texts only:
  • Signal family 1 paragraph: 14 words against 18–25.
  • Conduct note: 51 words against 80–95.
  • Depth modes paragraph: 45 words against 75–90.
  • Local storage paragraph: 30 words against 40–50.
  • FAQ answer 1: 23 words against 35–135. It is only just outside the 20% tolerance and sits under the lower bound.
  • Comparison headline: 7 words against 3–5.
  • Comparison row 1 cell: 7 words against 20–60.
  • Fix: lengthen or shorten those example lines, or widen the ranges, then rebuild.
  • Names removed: the brand, rival and tool names are replaced with generic wording, as the rules require, so the examples contain no real product names.
  • Not run: no crawl, semantic search, URL audit or Search Console data. Nothing here is a ranking or traffic claim.

To verify the changes, rebuild with the corrected example lines and check that reverse_prompts_build returns no warnings.

B16

Competitor passage comparison

“Why are they cited and we are not?”

/competitor-passages*

GLLmolfar tools it calls: list_crawlsopen_crawlsemantic_searchstart_crawlwait_for_crawlaudit_url

You fill in: competitor, questions

No example yet: this skill needs your code repository, a competitor's site or a Search Console tool in the agent.

Links and cannibalization

B6

Cannibalization cleanup

The cannibal check appears, or two pages split one query in Search Console.

/cannibalization*

GLLmolfar tools it calls: get_fixesget_fix_urlsget_pagesaudit_urlsemantic_search

Show a real answer

Claude Code (Sonnet) on a crawl of getlooploop.com, 300 pages, 28 October 2026 · 40 s · 12 GLLmolfar tool calls · unedited, in English

Cannibalization report: crawl 32 (getlooploop.com)

Source: crawl 32, 300 URLs crawled, 300 with embeddings. The crawl is loaded and idle, so I started no new crawl. The date and any URL limit were not in get_status. The account limit is 1,000,000 URLs, so it did not cut anything. I did not use Search Console.

The 3 changes that matter most

  1. Fix the title and H1 template on /skills/ pages (crawl 32 + my judgment).
  2. Every page reads "X — {Topic}, an agent skill published by {publisher}", and the first section of each page repeats the same sentence.
  3. That template is why these 14 pages score 0.74–0.82 against each other.
  4. The pages differ only in skill name and publisher. Adding a line that says what each skill does, and how it differs from its neighbours, is the single change that helps every pair below.
  5. To verify, re-crawl and check that cannibal no longer lists these URLs.
  6. Same skill, three publishers: the Lark meeting-summary and standup-report pages (6 URLs).
  7. Each skill has three listings: larksuite/cli, open.larksuite.com and open.feishu.cn. The nearest-page scores are 0.78 and 0.74 (meeting-summary) and 0.79 and 0.76 (standup-report).
  8. Same intent. Pick one canonical listing per skill after a person checks whether the three have the same source. Install counts from the crawl are 809,000 for open.feishu.cn, 466,168 for larksuite/cli and 6,936 for open.larksuite.com.
  9. A canonical on the small open.larksuite.com listing removes it from the index. It unblocks the other two from competing with it. It does not guarantee any ranking.
  10. Same skill, two repos: firecrawl-crawl.
  11. firecrawl/cli has 80,778 installs and firecrawl/skills has 5,700. They score 0.79–0.80 against each other, with the same intent.
  12. Keep both, because they are separate repos. Give each a different angle: which repo it comes from and how it is installed. If a person confirms the two are identical copies, use a canonical to firecrawl/cli instead.

Pairs and recommendations

Scores are cosine similarity from semantic_search, a search on the H1 of the first page. Each page has only one embedded section, and that section is the title sentence. So "best matching sections" here compares the title boilerplate, not the body text. The intent verdicts are my judgment from skill names and publishers.

PairScoreSame intent? (my judgment)Action
claude-seo/seo ↔ seo-technical0.765Partly. The first is a general entry point and the second is technical checks.Keep both. Angle: overview and router vs technical checks only.
claude-seo/seo-audit ↔ seo-technical0.783Partly. An audit includes technical checks.Keep both. Angle: full-site audit report vs technical-fix checklist.
claude-seo/seo ↔ seo-audit0.756No.Do nothing beyond the template fix.
firecrawl/cli ↔ firecrawl/skills firecrawl-crawl0.786–0.800YesKeep both with different angles, or set a canonical (see change 3).
gws-workflow ↔ gws-workflow-file-announce0.746No. The first is the parent hub and the second is one task.Keep both. Angle: hub that lists workflows vs file announcements.
gws-workflow ↔ gws-workflow-weekly-digest0.743No. Same hub-versus-task relationship.Keep both. Angle: hub vs weekly digest.
larksuite/cli ↔ open.larksuite.com ↔ open.feishu.cn, lark-workflow-meeting-summary0.744–0.778YesSet a canonical (change 2).
Same three, lark-workflow-standup-report0.759–0.793YesSet a canonical (change 2).

The nearest page for each of the six pages in the two Lark skills came from the sibling searches. I did not search the four open.* pages separately.

What I did not cover

  • Search Console: no Search Console tool is available here. I could not check which pairs share clicks on a query, so I have not marked any pair.
  • Body content: the pages have one embedded section each, so I could not compare body text. Pages with the same name but different publishers, and the hub-versus-task pairs, need a person to read them before the canonical or merge steps.
  • Searches run: 10 of 14. The 4 open.* pages were covered through their sibling pages, as noted above.
  • Fix list: the cannibal fix has 14 URLs and all 14 were returned, so nothing was cut. I did not call explain_fix. I did not create Jira tasks.

Appendix: the 14 URLs and their nearest page

  • /skills/agricidaniel/claude-seo/seo → seo-technical (0.765)
  • /skills/agricidaniel/claude-seo/seo-audit → seo-technical (0.783)
  • /skills/agricidaniel/claude-seo/seo-technical → seo (0.764)
  • /skills/firecrawl/cli/firecrawl-crawl → firecrawl/skills/firecrawl-crawl (0.787)
  • /skills/firecrawl/skills/firecrawl-crawl → firecrawl/cli/firecrawl-crawl (0.798)
  • /skills/googleworkspace/cli/gws-workflow → gws-workflow-email-to-task (0.754). That page is not in the cannibal list, but file-announce (0.744) and weekly-digest (0.742) are the next nearest.
  • /skills/googleworkspace/cli/gws-workflow-file-announce → gws-workflow (0.746)
  • /skills/googleworkspace/cli/gws-workflow-weekly-digest → gws-workflow (0.743)
  • /skills/larksuite/cli/lark-workflow-meeting-summary → open.larksuite.com (0.778). I read this one from the open.larksuite.com search, where it scored 0.7784 against its own H1.
  • /skills/larksuite/cli/lark-workflow-standup-report → open.larksuite.com (0.793). I read this one from the open.larksuite.com standup-report search, where it scored 0.793.
  • /skills/open.feishu.cn/lark-workflow-meeting-summary, .../lark-workflow-standup-report, /skills/open.larksuite.com/lark-workflow-meeting-summary and .../lark-workflow-standup-report → the same-name page on larksuite/cli, from the sibling searches.
B17

Search Console × crawl: quick wins

Quick wins with real demand behind them (needs a Search Console tool in the agent).

/gsc-opportunities*

GLLmolfar tools it calls: semantic_searchget_pagesaudit_url

You fill in: min_impressions

No example yet: this skill needs your code repository, a competitor's site or a Search Console tool in the agent.

* How slash commands look, and whether they appear at all, depends on the agent you connect, not on GLLmolfar. Copying the text works in every agent.

Ideas adapted from open-source SEO, GEO and AEO skills (MIT and Apache-2.0); every text is written for GLLmolfar in simplified technical English.

What changed
in this preview.

The app shows the same notes when a new version is out, so you can see what changed before you update.

  • Sitemap changes, under Projects: list any sites, and the app reads their public sitemaps on a schedule, counts the pages and shows what is new or removed since the last check
  • Exporting the pages of a sitemap needs a signed-in account; checking and the counts work without one
  • The neuro-pipeline animates the fragments again whenever they are being made, not only when something slows the run
  • Semantic search: a result's title and address are readable again

Know what to
expect.

Scope, method and limits of the current preview.

Downloading means you accept the GLLmolfar Preview Terms.

What does a crawl do?

It requests URLs from the website you choose, follows the discovery method and scope you set, records each response, and extracts page and link data for the reports. It does not change pages on the site.

How does it help with AI search, GEO and AI Overviews?

It checks the ground floor: whether each AI crawler may fetch the site under robots.txt, whether llms.txt exists, and whether pages split into passages an assistant can quote on their own. Semantic search and the passage view show which pages answer a question by meaning. It does not measure whether assistants actually cite or mention you.

How does Spider + sitemap differ from Spider only?

Spider follows links it discovers in page HTML. Spider + sitemap also reads XML sitemap files and records which discovered pages are listed there. Sitemap-only starts from sitemap URLs; List mode checks only URLs you provide.

What happens when JavaScript rendering is enabled?

In Auto mode, pages with fewer than 100 words in their original HTML are opened in a bundled browser and checked again after JavaScript runs. You can also render all pages or switch rendering off. This is a crawl diagnostic, not a guarantee that every site's bot defences or browser behaviour will match Google.

How does the topic analysis work?

The app splits page text into passages, turns them into vectors with a local embedding model, then compares those vectors to group related pages and passages. Cluster labels are based on distinctive terms. The model does not write recommendations or page copy.

Does it identify keyword cannibalization?

Two ways. From the crawl, it flags unusually similar same-language pages by meaning and shows the evidence side by side — a content-overlap lead to investigate. With Search Console connected, it lists the queries for which Google actually showed two or more of your pages, each with a real share of the impressions, the page with the most clicks first. The first needs no Google data; the second is what search really did.

How does Search Console connect, and what does it see?

Sign in to the app with Google, open Search Console on the rail and press Connect Search Console. Only that same Google account can be connected, and only with read-only access to Search Console. getlooploop.com keeps the access grant, encrypted; the reports travel from Google to your computer and are saved there, so the last one is shown, with its date, offline or signed out. Pressing Disconnect or signing out of the app deletes the grant, not the reports.

What stays on my computer?

Crawl records and saved crawl history are stored in a local SQLite database. Embeddings are calculated on your computer after the model is downloaded. The app still sends ordinary web requests to the site you crawl; optional external-link checks request those URLs too, and a domain record asks public RDAP, WHOIS and DNS services. At start it reads one public version file from getlooploop.com to tell you about updates, and it sends anonymous usage statistics: a random install ID the app makes up, the app version, the Windows or macOS version, the interface language, and when the app opened and closed. Never a URL, a domain or anything from a crawl. Both can be switched off in Settings. With Search Console connected, the app reads Google's API directly; getlooploop.com keeps only the encrypted access grant.

What are the current limits?

Without an account a crawl reads up to 5,000 URLs; with a free account, 50,000; paid levels go up to 1,000,000, the app's own ceiling. That is how it works now, an intention rather than a promise: the limits can and will change. The sitemap can contain more URLs than the crawl limit; the crawl cap limits fetched pages, not the number of sitemap entries read for membership.

How do updates work?

While the app is open it checks for a new version every half hour. On Windows it downloads the update in the background, checks its SHA-256 against the published file, and shows a red restart button in the title bar; the update installs when you restart, with crawls and settings kept. On a Mac it tells you about the new version and opens the download page. Checking for updates can be switched off in Settings.

Where it stands,
honestly.

Two well-known SEO crawlers, unnamed, side by side with GLLmolfar's free preview. Where they do more, the table says so.

YesPartly — see the noteNoGLLmolfarCompetitor 1Desktop crawlerCompetitor 2Desktop & cloud auditor
Getting started
Free version5,000 URLs per crawl, 50,000 with a free account**500 URLs per crawlNo14-day trial only
Largest crawlUp to 1,000,000 URLs on paid levels**No fixed cap*Up to 10 million URLs (cloud)
Runs on your computerYesYesYes
Windows and MacWindows 10+, Mac with Apple siliconWindows, macOS, UbuntuWindows 10/11, macOS Sonoma+
Technical SEO
Broken links, redirects, titles, directives, hreflangYesYesFree version tooYes
JavaScript renderingYesAutomatic for thin pagesYesPaid versionYes
Crawl history and comparisonYesYesPaid versionYes
Scheduled crawlsYesBuilt inYesPaid versionYes
Search Console and AnalyticsPartly — see the noteSearch Console, nine reports, free when signed in; no AnalyticsYesPaid versionYes
Google's index status, page by page (URL Inspection)YesKept on your computer; Google's 2,000 a day, in portionsYesPaid versionYesTop 2,000 HTML URLs a day, by internal links
Accessibility auditPartly — see the noteFrom the HTML of every page; no colour contrast yetYesPaid versionYes
Export to Google SheetsYesTo your own Drive; the app sees only the files it createsYesYesAutomatic upload on Pro
AI bots, each with its own robots.txt groupYesGPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot and PerplexityBot presetsPartly — see the noteAny agent you type; no AI presets documentedPartly — see the noteAny agent you type; presets for search engines only
The crawl's user agent and public IP on screenYesLive during the crawl and on the project cardNoPartly — see the noteIP address under Settings › Logging
Meaning and AI search
Topics grouped by meaningYesBuilt in, freePartly — see the notePaid, with your own AI provider keyNoNot offered
Cannibalization by meaningYesBuilt in, freePartly — see the notePaid, with your own AI provider keyNoNear-duplicates by wording only
Page text stays on your computer during AI analysisYesLocal embedding modelPartly — see the noteOnly with a local AI server you runNoAI works in a chat assistant on exported data
Search Console query chartsYesQuery words as a treemap, position and CTR chartsNoPartly — see the noteClicks and CTR by position, brand split
Attention map on a page screenshotYesA forecast from layout, labelled as oneNoNo
AI agents over MCPYesLocal server; can start crawlsYesPaid; can run crawlsPartly — see the noteReads finished audits; does not start crawls
A fix as a Jira taskYesA button on each fix, and for agentsNoPartly — see the noteThrough its MCP skill in your AI assistant

Competitors are not named. Their marks come from their own feature pages and documentation, read in October and November 2026; features change, so check the vendor before you decide.

* Limited by the computer's memory and storage.

** GLLmolfar's limits as they work now: an intention, not a promise. They can and will change.

Trace the issue.
Understand the site.

Leave your email, accept the preview terms, and download the build for Windows or Mac straight away.

Downloading means you accept the GLLmolfar Preview Terms.

A personal link, valid for 7 days.