The Maintain Continuous Rank History setting (also known as MCH) controls how we handle rank display and movement for keywords on days when they are not found or not scraped.
This article explains what the setting does, how it affects what you see in Rank and Movement columns, how it behaves when a keyword drops out of the Top 20, and when to use it.
What Does “Maintain Continuous Rank” Do?
This setting determines whether we should fill in missing days using the last known rank, or only show rank data when it was actually scraped.
You can toggle this setting from your table view or report filters.
🟢 MCR = ON (Maintain Continuous Rank = Enabled)
With this setting enabled:
The system fills missing days with the last known rank
The chart line appears continuous
The movement column is calculated using the filled ranks
You get a smoother, more readable rank history
This is helpful if you want:
A clean visual for clients
Stable rank lines in charts
Fewer blanks or gaps in reports
Here is an example of a keyword with MCR=ON
Compared to when,
🔴 MCH = OFF (Maintain Continuous Rank = Disabled)
With this setting disabled:
The system only shows ranks on days where we have actual scan data
If a keyword wasn’t found or scraped, the rank will be blank or show OTR (Out of Tracked Range)
The movement column will show N/A unless both days have data
Charts will show gaps where the rank was missing
This is helpful if you want:
Maximum transparency
To see only what was scraped and confirmed
Here is the same keyword with MCH=OFF:
Out of Tracked Range OTR) means that the keyword was scraped, but was not found within the tracked range for that day.
For example, If the daily scan covers Top 20, but the keyword ranked #21 or higher, it will be marked as OTR.
Important:
⚠️ OTR is not the same as “>100 (unranked)”
“>100” means we scraped the Top 100 and the keyword wasn’t found at all.
OTR just means the keyword may still be ranking between 21 - 99, but outside the range you’re currently tracking.
What happens when a keyword drops out of range?
Let’s say these are the scraped results for keyword: "best EV car for 2025"
Day | Scraped Rank | Scan Type |
Mon | #16 | Top 100 |
Tue | #16 | Top 20 |
Wed | #16 | Top 20 |
Thu | Not Found | Top 20 |
Fri | Not Found | Top 20 |
Sat | Not Found | Top 20 |
Sun | Not Found | Top 20 |
Next Mon | #21 | Top 100 |
Next Tue | Not found | Top 100 |
If 🟢 MCH = ON:
If the keyword was ranking >20 on a Top 100 day, we will fill the gap each day with the Top100 value.
If the keyword was previously in the Top 20, we do not fill the last known rank when we’ve scraped and confirmed the keyword is no longer in the Top 20.
Instead, we show:
OTR (Out of Tracked Range) in the rank column, and
N/A in the movement column because we do not have a confirmed rank to compare against
So, this is what your Ranking Table and chart will look like for keyword: "Best EV cars for 2025"
Day | Scraped Rank | Scan Type | Ranking Table "Rank" Value | 1d Movement value |
Mon | #16 | Top 100 | #16 | - (no change) |
Tue | #16 | Top 20 | #16 | - (no change) |
Wed | #16 | Top 20 | #16 | - (no change) |
Thu | Not Found | Top 20 | OTR | N/A |
Fri | Not Found | Top 20 | OTR | N/A |
Sat | Not Found | Top 20 | OTR | N/A |
Sun | Not Found | Top 20 | OTR | N/A |
Next Mon | #21 | Top 100 | #21 | N/A |
Next Tue | Not found | Top 20 | #21 | - (no change) |
Chart will look like this
If 🔴 MCH = OFF:
We will not fill the gap each day with the Top100 value.
Instead, we show:
OTR (Out of Tracked Range) in the rank column, and
N/A in the movement column because we do not have a confirmed rank to compare against
So, this is what your Ranking Table and chart will look like for keyword: "Best EV cars for 2025"
Day | Scraped Rank | Scan Type | Ranking Table "Rank" Value | 1d Movement value |
Mon | #16 | Top 100 | #16 | - (no change) |
Tue | #16 | Top 20 | #16 | - (no change) |
Wed | #16 | Top 20 | #16 | - (no change) |
Thu | Not Found | Top 20 | OTR | N/A |
Fri | Not Found | Top 20 | OTR | N/A |
Sat | Not Found | Top 20 | OTR | N/A |
Sun | Not Found | Top 20 | OTR | N/A |
Next Mon | #21 | Top 100 | #21 | N/A |
Next Tue | Not found | Top 20 | OTR | N/A |
Chart will look like this
⚠️ We will never display a rank or movement that we know is no longer valid, while still maintaining filled values when the keyword wasn’t scraped at all.




