Home About Pricing Compare Sign in Start free trial
Changelog

What's new in SEO App

Every improvement, new feature and fix we ship, newest first. Updates go live as soon as they are released.

Listicle gap analysis for AI

  • New Listicle gap (AI), under Reports: finds the "best" and "top 10" lists that ChatGPT, Claude, Gemini, Perplexity and Google AI Overviews cite for your searches, opens each one, and shows who is listed. Lists that name your competitors but not you are your gaps.
  • New Listicle gap: who is on the most lists (you against your competitors), a next step for each list (pitch the author, use the submission form, claim a directory listing), the prompts where AI leans on lists, and a CSV for outreach. Optional live Google searches for "best ..." queries. Save it or share it to the client portal.

Rank dropout protection: 5 checks

  • Improved Rank dropout protection: a keyword on pages 1-2 that suddenly shows as not in the top 100 keeps its last found position until 5 checks in a row miss it. It used to show the drop after 2 checks. Days where no ranking came back at all (an API outage) do not count as misses.
  • Improved The same rule now applies everywhere: the keyword table, the client portal, dashboard counts, history charts, reports, Why did this drop?, the API and webhooks. Clients no longer see the "?" mark on held positions; your team still does, with how many checks missed it.
  • Fixed The monthly rank check on the 2nd no longer gets stuck on one project that cannot be checked (no mobile or desktop keywords, or a DataForSEO error), which left every project after it unchecked for the day.
  • Fixed The monthly rank check no longer jumps over the next project each time it checks one.
  • Improved The Refresh Rankings queue and the monthly check for projects with over 100 keywords are now on the admin status board.

Content cleanup

  • New Content cleanup: choose what to scan (all pages, blog posts only, pages only, or one folder), how many pages, and how many index checks.
  • Improved Content cleanup: starting a new scan no longer hides the last report. The last 10 scans of each project are kept, and you can open any of them, download its CSV, or save and share it.
  • Improved Content cleanup: scans of different projects run side by side, a running scan can be cancelled, and a project open in two tabs no longer does the same work twice.
  • New Content cleanup: a background job (cronjob/content_cleanup_cron, every 5 minutes) carries scans on after their page is closed.
  • New Content cleanup (Reports): scans every page of a site from the sitemap, Search Console and Google Analytics, checks with Google which pages without impressions are indexed, and sorts each page into what to do: not in Google and no visits, in Google but no traffic in 12 months (delete and redirect, or merge, with a suggested target page), seen but not clicked (repurpose), old and barely visited (refresh), tag and archive pages (noindex), broken or redirecting (fix), and keep. Pages with traffic, leads or first-page rankings are always kept, and pages that rank for tracked keywords are never marked for deletion. Save it, share it to the client portal, or download every page as a CSV.
  • Fixed Adding a Google Analytics property no longer says "Site is already exist" when the property is not in the list: an old hidden connection (Universal Analytics) or one left on a deleted project is reused and linked to the chosen project. If the property really is connected to another project, the message says which one. Search Console says which site a project is already connected to.

Sign-in limits, error and slow page alerts, setup checklist

  • Fixed Dashboard Needs attention: "no rank check since" and "latest results not saved yet" now go by each project's newest saved rank check, so projects checked hours ago are no longer flagged when the daily ranking summary is behind.
  • New Error alerts: crashes and error pages on seoapp.io and the client portal are recorded and emailed to the admin, grouped per error with how many times it happened. An error that keeps happening is emailed again at most every 6 hours. See them all under Admin > Errors and slow pages.
  • New Slow page alerts: any page taking longer than 3 seconds is recorded, and a page that is slow 3 or more times in an hour is emailed (at most once a day per page) with its average and worst load time.
  • New Setup checklist on the projects list: each project shows Setup 5/8 with what is missing (keywords, rank checks, Search Console, Google Analytics, category, uptime monitor, URL map, logged work) and a Fix link for each. Needs setup now follows the first six steps.
  • Improved Sign-in is now limited: after 5 wrong passwords for an account in 15 minutes it pauses for 15 minutes (3 and 30 minutes with the strict policy), and an address that gets 30 wrong passwords across any accounts is paused too. A correct sign-in resets the count, and the account owner gets a notification the first time it pauses. This covers the team sign-in, the two-factor code step, password reset emails and the client portal.

Why did this drop?, Traffic drop check, bulk keyword import

  • Improved URL maps (was Keyword File Map): anyone who can open a project can now add a map. Paste keyword and page pairs in any order (or copy two columns from a spreadsheet), upload a CSV or Excel file, or start from the project's tracked keywords with the page each ranks on now. Each map shows Right page, Wrong page ranks, Not ranking yet and Not tracked per keyword, checked against the same rankings as the keyword report, with search, filters, Excel download and a working delete.
  • New Campaign timeline: work is now measured with Google Analytics too (visits from Google search and leads on the pages the work touched), next to keyword rankings and Search Console clicks. Search Console and Analytics also cover the pages the AI linked.
  • Improved Campaign timeline in plain English: each piece of work starts with a sentence like "This looks like it helped: its 2 keywords moved up about 2 spots on Google...", results read Helped / Hurt / No clear change / Too soon to tell / Can't measure yet, the top shows which data is connected, and "How we judge each piece of work" explains the method.
  • New Campaign timeline: Analyze on each piece of work. AI reads the task, its note and time entries next to your tracked keywords and ranking pages, then says what was done, which pages and keywords it touched, how much it can move the campaign and how to read what moved afterwards. The pages and keywords it links are used to measure the work too (switch that off per item). Analyze the rest reads every item on the page in one go.
  • Improved Campaign timeline: a new Campaign pulse at the top shows how first page % moved over the range, how many pieces of work improved things, where the hours went by kind of work, the work that moved the needle most and what needs a look.
  • Fixed Campaign timeline and Google setup: task titles, notes and other text are now always escaped, so text containing HTML shows as text.
  • New SERP sensor: a Clients by category list shows every client grouped by category, with search and a quick category change on each client. Clients without a category are listed first, since they are left out of the sensor readings.
  • Improved What's new in the top bar turns into a gold "N new" button when there are updates you haven't seen, and the new items are highlighted when you open it.
  • New Campaign timeline (the project's Timeline button): work done for the client, from PeakKR or added by hand, alongside keyword changes, Google updates, downtime and automatically detected ranking and traffic shifts. Each piece of work shows what moved after it, and every shift lists the possible causes from the 30 days before.
  • New API v2: work-events endpoints so PeakKR can send completed tasks and time entries.
  • New Why did this drop? on any keyword (keyword report, keyword history, client portal): the search results before and after side by side, who moved above you, whether your ranking page changed, new search features and map pack changes, Google updates in between, and a plain-English summary.
  • New Traffic drop check (Reports): compares two periods across Google Analytics, Search Console, rankings, Google Maps, AI Overviews, downtime and Google updates, and says where a traffic drop most likely comes from. It can be shared to the client portal and printed.
  • New Bulk keyword import: paste or upload keyword, city and device rows. The preview flags duplicates, unknown or ambiguous locations, mismatched cities and bad devices before anything is added.
  • Improved Page 1 opportunities: filter by project and sort by closest to page one, volume, keyword or project.
  • Improved Location search offers states (e.g. Arkansas) before the towns in them.
  • Fixed Projects list: the + under Users opens Assign users. Client portal: the cannibalization card, rank distribution and Shared Reports load again.
  • Fixed Adding keywords: an account can reach its exact keyword limit.

Reliable daily rank checks and one set of ranking numbers

  • Fixed Rank checks no longer get stuck: a failed check used to lock the project so it was never checked again. Failed checks now retry, and a nightly repair unsticks any project and fixes frozen "last checked" dates.
  • Fixed Projects that never had a check schedule (for example some added without keywords or imported) are now checked daily.
  • Improved Rank Distribution, period and monthly reports, the ranking email, the success report, client portal cards and the API now count positions exactly like the keyword table.
  • Fixed Client portal summary cards could count a competitor's ranking as the client's. The consolidated report's "in top 10" now counts page one only.
  • Fixed Dashboard Search Console totals counted earlier months again; each site now counts once.
  • Fixed Keyword history shows one location at a time when a keyword is tracked in several cities of the same country.
  • Fixed The "Rankings dropped" notification no longer fires because a single check missed a keyword.
  • Improved Needs attention counts missed weekday checks only and says when a check is stuck.
  • Improved The same confirmation box on every page; deleting an uptime monitor, domain or DNS monitor refreshes the list again.

Have a question about an update? Contact us. Machine-readable version: changelog.json.