Along with Xovi, the SISTRIX tool is the most widely used analysis program in Germany in the area of SEO. The visibility index has established itself as a quasi-standard for the visibility of a page in Google search. The parameters that are included in its calculation are, for example , explained here and here and here and here and here , but an exact calculation formula is not officially published. The following are the results of my six-month personal research, which do not claim to be complete or correct.
With
- \(A_l\): SISTRIX keyword set (sorted amount of firmly defined keywords for a specific country, set contains constant - based on traffic based on a 12-month average - and smaller varying proportion)
- \(\vert A_l \vert\) : Thickness of \(A_l\) with \(A_l\) \(\vert A_{DE} \vert = 1.000.000\) (status: 01.10.2021)
- \(k \in A_l\): Keyword off \(A_l\)
- \(u\): URL (to be interpreted as a domain, subdomain, directory, individual URL, depending on the format)
- \(r_{uklgt}\) : Ranking of the URL \(u\) in the organic search results of the search engine Google for the keyword \(k\) in the country \(l\) on the device type \(g\) at the time \(t\)
- \(s_{klgt}\) : Search volume (average search queries per month with data from SISTRIX, not from Google Keyword Planner , but, according to our own statement, accumulated from over a dozen mostly external data dealers) for the keyword \(k\) im Country \(l\) on the device type \(g\) at time \(t\)
- \(c_{uklgt}\) : Estimated clicks on the URL \(u\) for the keyword \(k\) in the country \(l\) on the device type \(g\) at the time \(t\)
- \(l \in L=\{DE;...;JP\}\) : Country with \(\vert L \vert=30\) (as of: 01.06.2021)
- \(g\in\{D;M\}\): Device type (desktop / mobile)
- \(t\): Time (date at 00:00:00 a.m.)
- \(S_{ulgt}\) : SISTRIX visibility index of the URL \(u\) the country \(l\) on the device type \(g\) at the time \(t\)
- \(W_S = \, \mathbb{Q}^{+}_{0}\) values \(W_S = \, \mathbb{Q}^{+}_{0}\)
is applicable
$$S_{ulgt} = \sum_{k=1}^{\vert A_l \vert} f(r_{uklgt}, c_{uklgt})$$
with
$$\begin{multline} \mathbb{N_0} \times \mathbb{Q}^{+}_{0} \to \, \mathbb{Q}^{+}_{0}, f(r, c) = ((1-\text{sgn}(r - 1)^2) \cdot ((1-\text{ceil}(0.5 \cdot \text{sgn}(c-34{,}4796))) \cdot 0{,}0194 + \\ (\text{ceil}(0.5 \cdot \text{sgn}(c-34{,}4796))) \cdot ((1+\text{floor}(0.5 \cdot \text{sgn}(c-378{,}325))) \cdot 0{,}125 - \\ (\text{floor}(0.5 \cdot \text{sgn}(c-378{,}325))) \cdot (0{,}0004 \cdot c + 0{,}0119)))) + (\text{sgn}(r-1)^2 \cdot \\ ((1-\text{sgn}(r - 2)^2) \cdot ((1-\text{ceil}(0.5 \cdot \text{sgn}(c-17{,}418))) \cdot 0{,}0136 + \\ (\text{ceil}(0.5 \cdot \text{sgn}(c-17{,}418))) \cdot ((1+\text{floor}(0.5 \cdot \text{sgn}(c-230{,}6839))) \cdot 0{,}125 - \\ (\text{floor}(0.5 \cdot \text{sgn}(c-230{,}6839))) \cdot (0{,}0006 \cdot c + 0{,}0035)))) + (\text{sgn}(r-2)^2 \cdot \\ ((1-\text{sgn}(r - 3)^2) \cdot ((1-\text{ceil}(0.5 \cdot \text{sgn}(c-11{,}0236))) \cdot 0{,}0098 + \\ (\text{ceil}(0.5 \cdot \text{sgn}(c-11{,}0236))) \cdot ((1+\text{floor}(0.5 \cdot \text{sgn}(c-231{,}3121))) \cdot 0{,}125 - \\ (\text{floor}(0.5 \cdot \text{sgn}(c-231{,}3121))) \cdot (0{,}0006 \cdot c + 0{,}0025)))) + (\text{sgn}(r-3)^2 \cdot \\ ((1-\text{sgn}(r - 4)^2) \cdot ((1-\text{ceil}(0.5 \cdot \text{sgn}(c-8{,}8619))) \cdot 0{,}0077 + \\ (\text{ceil}(0.5 \cdot \text{sgn}(c-8{,}8619))) \cdot ((1+\text{floor}(0.5 \cdot \text{sgn}(c-219{,}6195))) \cdot 0{,}125 - \\ (\text{floor}(0.5 \cdot \text{sgn}(c-219{,}6195))) \cdot (0{,}0006 \cdot c + 0{,}002)))) + (\text{sgn}(r-4)^2 \cdot \\ ((1-\text{sgn}(r - 5)^2) \cdot ((1-\text{ceil}(0.5 \cdot \text{sgn}(c-8{,}0684))) \cdot 0{,}0068 + \\ (\text{ceil}(0.5 \cdot \text{sgn}(c-8{,}0684))) \cdot ((1+\text{floor}(0.5 \cdot \text{sgn}(c-249{,}3706))) \cdot 0{,}125 - \\ (\text{floor}(0.5 \cdot \text{sgn}(c-249{,}3706))) \cdot (0{,}0006 \cdot c + 0{,}0017)))) + (\text{sgn}(r-5)^2 \cdot \\ ((1-\text{sgn}(r - 6)^2) \cdot ((1-\text{ceil}(0.5 \cdot \text{sgn}(c-5{,}357))) \cdot 0{,}0058 + \\ (\text{ceil}(0.5 \cdot \text{sgn}(c-5{,}357))) \cdot ((1+\text{floor}(0.5 \cdot \text{sgn}(c-133{,}2103))) \cdot 0{,}1011 - \\ (\text{floor}(0.5 \cdot \text{sgn}(c-133{,}2103))) \cdot (0{,}0007 \cdot c + 0{,}0015)))) + (\text{sgn}(r-6)^2 \cdot \\ ((1-\text{sgn}(r - 7)^2) \cdot ((1-\text{ceil}(0.5 \cdot \text{sgn}(c-4{,}3643))) \cdot 0{,}0049 + \\ (\text{ceil}(0.5 \cdot \text{sgn}(c-4{,}3643))) \cdot ((1+\text{floor}(0.5 \cdot \text{sgn}(c-90{,}3704))) \cdot 0{,}0727 - \\ (\text{floor}(0.5 \cdot \text{sgn}(c-90{,}3704))) \cdot (0{,}0008 \cdot c + 0{,}0013)))) + (\text{sgn}(r-7)^2 \cdot \\ ((1-\text{sgn}(r - 8)^2) \cdot ((1-\text{ceil}(0.5 \cdot \text{sgn}(c-3{,}3292))) \cdot 0{,}0039 + \\ (\text{ceil}(0.5 \cdot \text{sgn}(c-3{,}3292))) \cdot ((1+\text{floor}(0.5 \cdot \text{sgn}(c-87{,}6123))) \cdot 0{,}0706 - \\ (\text{floor}(0.5 \cdot \text{sgn}(c-87{,}6123))) \cdot (0{,}0008 \cdot c + 0{,}0011)))) + (\text{sgn}(r-8)^2 \cdot \\ ((1-\text{sgn}(r - 9)^2) \cdot ((1-\text{ceil}(0.5 \cdot \text{sgn}(c-2{,}944))) \cdot 0{,}0029 + \\ (\text{ceil}(0.5 \cdot \text{sgn}(c-2{,}944))) \cdot ((1+\text{floor}(0.5 \cdot \text{sgn}(c-75{,}6014))) \cdot 0{,}0515 - \\ (\text{floor}(0.5 \cdot \text{sgn}(c-75{,}6014))) \cdot (0{,}0007 \cdot c + 0{,}0012)))) + (\text{sgn}(r-9)^2 \cdot \\ ((1-\text{sgn}(r - 10)^2) \cdot ((1-\text{ceil}(0.5 \cdot \text{sgn}(c-2{,}4797))) \cdot 0{,}0019 + \\ (\text{ceil}(0.5 \cdot \text{sgn}(c-2{,}4797))) \cdot ((1+\text{floor}(0.5 \cdot \text{sgn}(c-36{,}7911))) \cdot 0{,}0199 - \\ (\text{floor}(0.5 \cdot \text{sgn}(c-36{,}7911))) \cdot (0{,}0005 \cdot c + 0{,}0005)))) + (\text{sgn}(r-10)^2 \cdot 0)))))))))) \end{multline}$$
This formula was predominantly extracted by reverse engineering with predominantly the help of the official SISTRIX A PI . The basic idea was: Reduce the problem to simple examples (find URLs with a positive visibility index with only one / two / three / ... keywords) and then try to reproduce more complex cases.
Properties of the visibility index:
- Only the keywords of the "permanent keyword set" of 1,000,000 keywords are included in the visibility index, not the keywords of the constantly expanding "complete database" (which adapts to current events and circumstances), which currently comprises 100,000,000 keywords (As of October 1st, 2021). The respective keyword groups can easily be filtered by selecting a value under "Date" or by setting the value extended to 0 in the API. The standard data or historical data are constant and have been collected on a weekly basis since 2008, now on a daily basis.
- AMP hits are not included in the visibility index.
- It is advisable to start with the analysis in recently created countries such as Romania, Croatia, Slovenia & Bulgaria or by creating your own visibility index. The reason for this is that SISTRIX carries with it "historical ballast" in countries like Germany, which means that keywords that used to be given a higher weighting are currently being used even more than one would expect, despite (also for a long time) a low search volume. According to the support, the whole thing should be gradually adjusted and no longer visible in the long term.
- Contrary to my original assumption, the search volume only plays an indirect role for the visibility index. Instead, the clicks to be expected are crucial. The relationship between search volume and estimated clicks is mainly based on the estimated search intention , which is also indicated. SISTRIX itself points this out explicitly .
- The expected clicks are the driving factor of the visibility index. Their effect is capped upwards and downwards, so that the visibility index is always between an upper and lower limit and linear between them.
- The clicks cannot be accessed via the official API, but only via the web interface or via a manual CSV export. In both cases, the values are rounded, but the DOM of the "Keywords" view also contains the original values:
The following formula can also be used in Excel or Google Sheets; It calculates the visibility index for a worksheet in which each row contains a keyword with its position in column A and its expected clicks in column B.:
=SUMME(WENN(A1:A999999=1;WENN(B1:B999999=378,32500379436;0,125;(0,00037306471297181*B1:B999999+0,011944496557952))); WENN(A1:A999999=2;WENN(B1:B999999=230,68394113271;0,125;(0,00055449577110866*B1:B999999+0,0035350976909409))); WENN(A1:A999999=3;WENN(B1:B999999=231,31214231278;0,125;(0,00059715499256153*B1:B999999+0,0025455442270028))); WENN(A1:A999999=4;WENN(B1:B999999=219,61948739302;0,125;(0,00063710437878404*B1:B999999+0,0020405503130787))); WENN(A1:A999999=5;WENN(B1:B999999=249,37064996217;0,125;(0,00058906284391034*B1:B999999+0,0017391721053351))); WENN(A1:A999999=6;WENN(B1:B999999=133,21031841331;0,1011;(0,00074744619531311*B1:B999999+0,0015021940435474))); WENN(A1:A999999=7;WENN(B1:B999999=90,370431493381;0,0727;(0,00078977592541601*B1:B999999+0,0012962057526498))); WENN(A1:A999999=8;WENN(B1:B999999=87,612293584114;0,0706;(0,00079399080394233*B1:B999999+0,0010648385910406))); WENN(A1:A999999=9;WENN(B1:B999999=75,601377547472;0,0515;(0,00066458507066795*B1:B999999+0,0011972721128791))); WENN(A1:A999999=10;WENN(B1:B999999=36,79114711734;0,0199;(0,00052397754322654*B1:B999999+0,00053850952142599))); 0)))))))))))
This allows the following results to be produced:
Country | Device | Date | \(S_{echt}\) | \(S_{berechnet}\) | \(\Delta\) | \(\Delta_{\%}\) | Url / directory |
SI | M. | 29.10.21 | \( 0{,}1348 \) | \( 0{,}1348 \) | \( 0{,}0000 \) | \( 0{,}00% \) | https://support.google.com/youtube/?hl=sl |
SI | M. | 29.10.21 | \( 0{,}2156 \) | \( 0{,}2155 \) | \( 0{,}0001 \) | \( 0{,}05% \) | https://Me.twitter.com/youtube |
SI | M. | 29.10.21 | \( 0{,}3746 \) | \( 0{,}3740 \) | \( 0{,}0006 \) | \( 0{,}16% \) | https://sl.m.wikipedia.org/wiki/YouTube |
SI | M. | 29.10.21 | \( 0{,}6771 \) | \( 0{,}6760 \) | \( 0{,}0011 \) | \( 0{,}16% \) | https://m.facebook.com/youtube/ |
SI | M. | 29.10.21 | \( 0{,}6836 \) | \( 0{,}6830 \) | \( 0{,}0006 \) | \( 0{,}09% \) | https://x2convert.com/en117/download-youtube-to-mp3-music |
SI | M. | 29.10.21 | \( 0{,}7636 \) | \( 0{,}7555 \) | \( 0{,}0081 \) | \( 1{,}06% \) | https://www.youtubekids.com/ |
SI | M. | 29.10.21 | \( 0{,}8749 \) | \( 0{,}8730 \) | \( 0{,}0019 \) | \( 0{,}22% \) | https://www.4kdownload.com/products/youtubetomp3/6 |
SI | M. | 29.10.21 | \( 4{,}0020 \) | \( 3{,}9980 \) | \( 0{,}0040 \) | \( 0{,}10% \) | https://ytmp3.cc/en23/ |
SI | M. | 29.10.21 | \( 8{,}0520 \) | \( 8{,}0520 \) | \( 0{,}0000 \) | \( 0{,}00% \) | https://support.google.com/youtube/ |
SI | M. | 29.10.21 | \( 11{,}6600 \) | \( 11{,}6100 \) | \( 0{,}0500 \) | \( 0{,}43% \) | https://m.facebook.com/events/ |
SI | M. | 29.10.21 | \( 19{,}7000 \) | \( 19{,}6890 \) | \( 0{,}0110 \) | \( 0{,}06% \) | https://minecraft.fandom.com/wiki/ |
SI | M. | 29.10.21 | \( 32{,}5900 \) | \( 32{,}5890 \) | \( 0{,}0010 \) | \( 0{,}00% \) | https://hr.m.wikipedia.org/wiki/ |
RO | M. | 29.10.21 | \( 0{,}1516 \) | \( 0{,}1516 \) | \( 0{,}0000 \) | \( 0{,}00% \) | https://lol.fandom.com/wiki/LCK/2021_Season/Summer_Season |
MR | M. | 29.10.21 | \( 0{,}2191 \) | \( 0{,}2190 \) | \( 0{,}0000 \) | \( 0{,}00% \) | https://starwars.fandom.com/wiki/Mandalorian |
BG | M. | 03.11.21 | \( 0{,}3703 \) | \( 0{,}3702 \) | \( 0{,}0001 \) | \( 0{,}03% \) | https://leagueoflegends.fandom.com/wiki/List_of_champions |
The difference between the real and the calculated values is caused by rounding errors and the limited data set on which the training of the model is based. The above statements can serve as a basis for further refining the formula and, for example, calculating the relationship between search volume and expected clicks. If you are interested in the scripts that arose during my research, please feel free to contact me .