Changelog
Product updates, fixes, and improvements as GEO Tracker evolves.
- Improved
“What changed” feed — less noise, no more contradictory alerts
The visibility timeline on Overview was flapping when you ran several scans in a row, surfacing both “Visibility declined” and “Visibility recovering” unread side-by-side. Four polish passes turn it into a clean audit log of meaningful movement.
- Contradictory trend pairs no longer co-exist as unread. When a new scan triggers “Visibility declined”, any unread “Visibility recovering” from the previous 24 hours is automatically dismissed (and vice-versa) — your inbox always reflects the current direction, not back-and-forth swings.
- Sample-aware thresholds. With fewer than 10 tracked queries a single result swing represents 10–20 percentage points and used to trigger noisy trend alerts. The threshold now scales with sample size: 30pp for <10 results, 25pp / 20pp for 10–19, original 20pp / 15pp for 20+.
- Stale unread (>14 days) collapses into an “Older unread” section that you can expand on demand. Forgetting to mark a 3-week-old alert as read no longer crowds out fresh signal.
- Clearer roles between feeds: “What changed” is now your audit log of movements (what + why), while concrete next steps live exclusively in the Actions tab. Each timeline entry has a “View action plan →” link that jumps you straight to the Actions view.
- Improved
Smarter content audit — sharper errors, multi-language sites, faster re-runs
Four polish passes on the page audit pipeline based on real testing across vercel.com, netlify.com, and a few sites behind Cloudflare. Same engine, sharper feedback, fewer wasted fetches.
- Specific guidance for failed fetches: 403 explains the WAF / Cloudflare angle, 429 talks about rate limits, 401 calls out auth-walled content, 404 / 410 flags dead links in your sitemap, 5xx pins the time of audit so you can grep your logs. Generic “Page fetch failed” is gone.
- Empty-body insight rewritten for client-rendered SPAs: instead of a vague hint we recommend SSR (Next.js App Router, Astro static, Remix loader) or a <noscript> fallback so non-Google AI engines can still read your page.
- Multi-language sites: the audit now reads <xhtml:link rel="alternate" hreflang="…"> entries from your sitemap. Foundation for filtering translation siblings (e.g. keep /en/pricing, drop /de/pricing) so one site does not eat all 10 audit slots with translations.
- Sitemap URL caching: once we successfully discover your sitemap, we remember the URL and use it on every subsequent audit. Re-runs are now ~6× faster (live test on netlify.com: 1070 ms → 166 ms) and the weekly cron uses noticeably less compute.
- Sitemap probe also covers /sitemap-0.xml (Astro convention) and tries both bare and www. host variants — finds sitemaps on Netlify-style sites that previously fell through to “1 page audited”.
- Improved
Dashboard reorganized — Visibility / Page health / Actions
Until now the Overview dashboard was one long scroll: hero, metrics, weekly actions, Discovery Readiness, more metrics, the trend chart. We split it into three focused tabs so you find what you need without scrolling past everything else.
- A new tab switcher under the GEO Score hero divides the dashboard into Visibility (metrics, trend chart, recent scans, engine breakdown), Page health (AI Discovery Readiness), and Actions (your weekly to-do list).
- The active tab is reflected in the URL (e.g. /dashboard?view=actions) so you can bookmark a specific view, share a deep link with a teammate, and use the browser back button as expected.
- A single “Re-run audit” button on the hero refreshes both Page health and the multi-page Content Audit in one pass — no more juggling two triggers that did almost the same thing.
- Page health and Content Audit now share one scrape pass, so the homepage row in the audit list and the 4-D Discovery Readiness scores can never disagree.
- New
Bulk JSON-LD generator — fix ten pages in one paste
Generating schema for one page at a time was fine when you had two missing schemas. With ten, it was a chore. Bulk mode batches everything.
- Tick the checkboxes next to any audit rows you want to fix and the bulk action bar appears with a “Generate JSON-LD (N)” button.
- The dialog produces one snippet per selected page, each typed for its URL pattern (Product for /pricing, AboutPage for /about, BlogPosting for /blog/*, TechArticle for /docs/*, Service for /enterprise…) and filled in with that page’s real title, description, OG image and canonical URL.
- “Copy all” bundles every snippet with an HTML comment naming the page — paste into a single doc, split per file, ship.
- Pages we refuse to generate (missing description, missing title) are listed separately in amber with the exact reason — same honest-blank-over-misleading-schema rule we apply elsewhere.
- New
Readiness trend per page — see your fixes pay off
Every audit run now appends a snapshot to history, so you can watch a page’s readiness score climb as you ship fixes.
- Click any page in the Content Audit list to open the detail drawer — the new Readiness trend section shows a mini line chart of that page’s score over time.
- Once a page has at least two snapshots the chart appears with the change highlighted (e.g. “+25 pts (50 → 75)”). Before that, you see a friendly “re-run audit to start building history” message.
- History is append-only and survives audit re-runs. The current snapshot in the audit list keeps using the replace-pattern so the UI stays fast; the trend chart pulls from a separate history table on demand.
- New
Onboarding boost — homepage audit kicks in immediately after your first scan
New users used to see their first Content Audit and Page health scores on Monday. That gap was painful. Now we run a homepage audit in the background as soon as your first scan completes.
- When your first AI scan finishes, we kick off a homepage scrape on a background task (Next.js “after” API — no extra latency on your scan flow).
- Page health and the homepage row in Content Audit are populated within ~10 seconds of finishing the scan.
- You can still wait for Monday’s weekly cron, or hit “Re-run audit” to refresh on demand — but the first impression is no longer empty.
- Improved
Domains list links straight into Page health
Page-level audits used to be reachable only from the Discovery Readiness widget on Overview. Now the Domains list deep-links into them too.
- On /dashboard/domains, the hostname column is now an internal link to the Page health audit; the external “open the live site” link sits next to it as an icon.
- Each row also has a dedicated “Page health” button in the actions column for unambiguous discovery.
- New
Multi-page content audit — every important page on your site, weekly
Until now we only graded your homepage. Most AI engines do not just cite your homepage — they cite pricing, customer stories, docs, and feature pages. The new content audit tracks all of those automatically.
- Every Monday we scan up to 10 pages on Pro and 25 pages on Business — picked from your sitemap by importance, not by accident. Pricing, customers, about, enterprise, integrations, changelog, and key docs come first.
- Each page gets a 0–100 readiness score, ranked worst-first so you see the actionable issues at the top. Pages that are already great show with a green “OK” badge so you have proof of what is working.
- Click any page to open the detail drawer with all insights, the metadata we scraped (title, description, OG, H1, lang, robots), and which schema types are detected.
- Need a result faster than Monday? Hit “Run now” to refresh on demand — same engine, instant results.
- New
Copy-ready JSON-LD generator — paste once, get cited
When the audit finds a page without schema, you now get a working JSON-LD snippet generated from your real page content. No more staring at schema.org docs trying to figure out the right type.
- We pick the right schema type from the URL pattern: pricing → Product, /about → AboutPage + Organization, /blog/post → BlogPosting, /docs → TechArticle, /enterprise → Service.
- The snippet uses your real metadata — title, description, OG image, canonical URL, brand name — not generic boilerplate. Paste it into <head> and you are done.
- Switch between alternative types (e.g. Service vs Organization for a sales page) with one click; each type comes with a one-line explanation of why it suits the page.
- Honest by default: when key metadata is missing (no description, no title), the generator refuses and tells you what to fix instead of producing a misleading schema.
- New
What to do this week — concrete actions pulled from your scans
Your dashboard now tells you exactly what to fix this week, with a one-line first step you can act on today. No more generic SEO advice — every recommendation is grounded in your latest AI answers.
- A new “What to do this week” panel on Overview shows up to three prioritized actions based on your most recent scans.
- The highest-impact action is also pinned next to your GEO Score, so you always know the single thing to fix first.
- Each action shows where it came from — which query, which engine, when — so you can trust the recommendation before you act.
- Mark actions as done and they stop nagging you. Your progress persists between sessions.
- Improved
Sharper competitor signals — less noise, more truth
When AI engines cite legal advisories, news wires, or academic sources alongside your competitors, those used to clutter your “who you are competing against” view. Now they are filtered out automatically.
- Competitor chips no longer surface law firms, regulatory blogs, news outlets, or generic encyclopedias as if they were rivals.
- The “sharpen your why-us” action now picks the dominant rival in the answer (the one cited first and most often), not a random competitor.
- Listicle outreach targets only real publications that actually rank for your category, so your pitches land with the right editors.
- Fixed
Copy-ready FAQ schema that never lies for you
When you click “Copy JSON-LD,” what you paste into your site has to be true. We tightened how the FAQ answer is built so you only ever publish content that genuinely matches your brand.
- If the AI response actually mentions your brand in a complete sentence, that sentence becomes your FAQ answer — ready to paste into <head>.
- If the response is generic or only cites competitors, you now get a clean editable placeholder instead of misleading text. Better an honest blank than a confident lie.
- Mid-sentence cuts, section headings (“Step 1: …”), and citation noise no longer leak into your answer text.
- Improved
More reliable scheduled monitoring
Automated monitoring now follows a clearer schedule model across saved queries.
- Daily pulse and weekly deep checks are handled separately.
- Recurring tracking is easier to configure.
- Plan limits are shown more directly when you set up monitoring.
- Improved
Clearer plan structure across the app
Free, Pro, and Business use the same labels in pricing, checkout, and the product.
- Tier names stay consistent before and after you subscribe.
- Plan changes are easier to read in account and billing screens.
- Improved
Improved recurring query tracking
Each query supports off, daily pulse, or weekly deep within your plan limits.
- Pulse slots and weekly deep quota are counted separately.
- Schedule types are labeled plainly in the query list.
- New
GEO Tracker is live
Domains, stored queries, scans, and dashboard views now sit in one continuous workflow.
- Add a domain, save queries, run scans, and review results from the dashboard.
- Pro and Business monitor ChatGPT and Perplexity; Free runs Perplexity checks within weekly limits.
- Pro and Business add GEO Score, answer snippets, and AI suggested questions.