VisibilityProof

GEO audit example — a real AI visibility report

A real GEO and SEO audit of our own site, with the scores, answer-engine citations and fixes exactly as the product produces them. Switch plans to see what each one includes.

A real audit of https://top-izbira.si/apple-airpods-pro-2-usb-c-vrhunsko-dusenje-hrupa-v-kompaktnih-slusalkah/, run on 2026-08-07. Nothing here is a mock-up — it is our own site, measured by the product, with the same numbers a customer would get.
Show me what I get on
Prices exclude VAT, which is added at checkout.
◖ SEO surface64
4 pillarsclassic search
GEO surface ◗35
AI answersanswer engines
Another way to read the same audit
Content51
what you wrote
Technical89
how it is built
Report card
Grades by category
🔒
On-Page SEO
premium
C
Performance
75/100
Links
100 ≤
A
Crawlability
100/100
C
Security
71/100
A
Mobile
90/100
A
Structured data
100/100
🔒
Backlinks
premium
AI answer engines ◗ GEO
Mentioned, cited, and positioned — per engine
Deep analysis
Kw
Keywords & content
Primary keyphrase, density & placement, and 12-month search demand
Warn · 65
How this score is made65 of 100 points, 1 of 3 checks lost something
  • Keyphrase placement40 / 40
    primary phrase "apple airpods pro" appears in title, H1, URL slug, meta description
    The four places a search engine and an extractive answer engine both look for what a page is about. Weighted by where each carries most signal (title and H1 above slug above meta description), and the slug leaves the denominator on a root URL, which has no slug to hold a phrase.
  • Keyphrase density25 / 25
    the primary phrase sits inside the target density band
    Our judgement: a 40–300% share of words is the long-standing convention for "present without stuffing". Google publishes no density target, but keyword stuffing IS a documented spam policy, so the band is defensible in both directions.
  • Search position0 / 35
    this page does not appear in the first 10 organic results for the phrase it targets
    A measured zero, not an absence: the search ran and the page was not there. Ranking nowhere for your own declared phrase is the single most consequential on-page finding, which is why the module cannot reach a passing score without it.

This page does not rank for “apple airpods pro”, the phrase it targets. That is why this card cannot exceed 65: the position is worth 35 of 100 and it earned none of it. The ceiling is the finding — placement and density can both be perfect and the number will still sit here, because the page is doing the on-page work and not yet winning the search.

928
words analysed
hard
readability
4
terms in title
Primary keyphraseapple airpods pro
TitleH1SlugMetaH2/H31st ¶AltAnchors
Volume & difficulty · Slovenia · Slovenian
#PhraseCountDensity % of wordsPlacementVolumeAd competition not SEO difficulty
1apple airpods pro9
2.91%
THUM
2dušenje hrupa10
2.16%
THUM
3usb-c17
1.83%
THUM
4vrhunsko dušenje hrupa0
0%
THUM
5prostorski zvok9
1.94%
THUM
6kompaktnih slušalkah0
0%
THUM
7aktivno dušenje hrupa7
2.26%
THUM
8odpravljanjem šuma5
1.08%
THUM
9usb-c vrhunsko dušenje hrupa0
0%
THUM
10brezžične slušalke2
0.43%
THUM
Search demand — 12-month Google Trends for apple airpods pro · Slovenia · Slovenian
Nothing to report — it was not checked on this audit. Nothing is estimated in the meantime.
Advice Keyword opportunities · Slovenia · Slovenian
Nothing to report — it was not checked on this audit. Nothing is estimated in the meantime.
Search position · Slovenia · Slovenian
Nothing to report — it was not checked on this audit. Nothing is estimated in the meantime.
No issues found in the checks that ran — but search demand, keyword opportunities and search position were not checked on this audit, so this is not a clean bill for the whole area.
Mt
Meta & tags
Title, description, headings and social tags
Pass · 100
How this score is made6 of 6 checks clean — nothing wrong here
  • Title length25 / 25
    title is 41 characters
    Google truncates titles past roughly 60 characters in the result and one under 30 wastes the strongest on-page field. Binary — inside the band or not.
  • Meta description25 / 25
    description is 144 characters
    Google rewrites descriptions outside roughly 110–155 characters, so a non-conforming one forfeits control of the snippet rather than failing outright. Weighted level with the title because losing the snippet costs clicks even when ranking is unaffected.
  • Canonical URL15 / 15
    a canonical URL is declared
    Google Search Central: a canonical consolidates duplicate URLs (tracking parameters, print views, trailing-slash variants) onto one indexed address. Binary.
  • Open Graph tags15 / 15
    Open Graph tags are present
    Open Graph protocol — what every social platform reads when the page is shared. Our judgement on the weight: it costs nothing in search and everything in how a share looks.
  • Twitter card tags10 / 10
    Twitter card tags are present
    Our judgement, weighted below Open Graph because X falls back to the OG tags, so their absence is rarely visible to a reader.
  • Viewport meta10 / 10
    a viewport meta tag is set
    Required for mobile rendering, and Google indexes mobile-first. Low weight only because it is nearly universal; when it IS missing the page is broken on a phone, which the Mobile card grades directly.
Title 41 chars
Apple AirPods Pro 2 (USB-C): vrhunski ANC
Meta description 144 chars
Apple AirPods Pro 2 z USB-C prinašajo dvakrat boljše dušenje hrupa, prostorski zvok in do 30 ur poslušanja. Preverite ceno in ključne lastnosti.
1
H1
9
H2
17
H3
CheckResultStatus
No issues found in this area.
Performance & Core Web Vitals
Mobile and desktop, scored separately
Warn · 75
How this score is made75 of 100 points, 1 of 1 checks lost something
  • Lighthouse performance75 / 100
    Lighthouse scores this page 75 of 100 on lab data
    Google's own published composite of First Contentful Paint, Speed Index, Largest Contentful Paint, Total Blocking Time and Cumulative Layout Shift, at Google's weights. Taken whole rather than re-derived from the vitals we hold — a second computation would disagree with the number Lighthouse published, and this card exists to report Google's verdict.

This card shows one number deliberately. The Lighthouse performance score is already Google's own weighted composite of five metrics, at Google's weights — splitting it into per-metric rows would look like more working while producing a figure that disagrees with the one Google published. One measurement reported whole beats three that imitate arithmetic.

The individual vitals sit below it as facts rather than as a second score, and the mobile run is the half that feeds your Technical pillar, because Google indexes mobile-first.

How the mobile score is made90 of 100 points, 1 of 3 checks lost something
  • Viewport meta tag25 / 25
    a viewport meta tag is declared
    Mere PRESENCE of the tag — the weakest of the three signals, which is why the Lighthouse judgement below is weighted higher: a viewport tag can be declared and still be wrong.
  • Mobile-optimised viewport35 / 35
    Lighthouse judges the viewport genuinely mobile-optimised
    Lighthouse's `viewport-insight` audit — its judgement that the tag is configured for a phone rather than merely present. Weighted above the tag itself because it is the one that can disagree with it.
  • Mobile Core Web Vitals30 / 40
    mobile Core Web Vitals score 75 of 100
    The three Core Web Vitals as measured on the MOBILE run (web.dev thresholds), and the heaviest weight here because it is the only continuous, richly-informative signal of the three — the other two are booleans about configuration.
📱 Mobile75
Scored — this half feeds your Technical & Core Web Vitals score, because Google ranks mobile-first.
5.2s
LCP
n/a
INP
0
CLS
1.7s
FCP
58ms
TTFB
196ms
TBT
No field data for mobile — too little real-user traffic in CrUX for this device, so lab figures are shown. Never back-filled from the other device.
Top opportunity (mobile)Est. saving
Reduce unused JavaScript1.1 s
Reduce unused CSS0.5 s
🖥 Desktop98
Measured and shown, but not scored.
1.2s
LCP
n/a
INP
0
CLS
0.4s
FCP
16ms
TTFB
10ms
TBT
No field data for desktop — too little real-user traffic in CrUX for this device, so lab figures are shown. Never back-filled from the other device.
Top opportunity (desktop)Est. saving
Reduce unused JavaScript0.2 s
23-point gap between devices — this page scores 98 on desktop and 75 on mobile. Mobile is the slower of the two and the one your ranking is based on, so fix it there first.
Im
Images
Alt text, formats and dimensions
Pass · 100
How this score is made4 of 4 checks clean — nothing wrong here
  • Alt text40 / 40
    every image has alt text
    WCAG 2.2 SC 1.1.1 (Non-text Content) requires a text alternative, and Google Images uses alt text to understand a picture. Saturates at ALL images missing it — the worst case is a page no screen reader or image index can read.
  • Dimensions declared25 / 25
    every image declares width and height
    Undeclared dimensions are a direct cause of layout shift, and CLS is a Core Web Vital with a 0.1 'good' threshold (web.dev/cls). Weighted below alt text because a single image rarely dominates CLS.
  • Modern formats25 / 25
    all images use a next-gen format
    Our judgement, not a standard: Lighthouse flags 'Serve images in next-gen formats' as an opportunity rather than an audit failure, so it costs page weight rather than correctness.
  • Sized for display10 / 10
    no image is larger than its display box
    Our judgement, weighted lowest: oversized images waste bandwidth but render correctly, and on a fast connection the reader never notices.
16
images
0
missing alt
0
not next-gen
0
no dimensions
0
oversized
No issues found in this area.
In
Internal links
Link graph, depth and broken links
Pass · 100 ≤ 2 of 3
How this score is made2 of 2 checks clean — nothing wrong here
  • Broken internal links45 / 45
    no broken links among the 30 checked
    Google's own guidance treats broken internal links as wasted crawl budget and a dead end for readers. Saturates at 10% of the sample: past that the navigation is broken as a whole rather than in places.
  • Orphan pagesnot measured
    the site-wide link graph was not built on this audit
  • Click depth25 / 25
    no page sits deeper than 3 clicks
    Three clicks is our judgement, and a long-standing SEO convention rather than a Google rule: depth correlates with crawl frequency because each level dilutes internal links. Saturates at a quarter of the links being deep.

This is an upper bound: the checks above are all we could take, and the ones we could not can only lower it. It is the ceiling for this page, not its score.

The ≤ on this score means orphan pages was not measured. Building the site-wide link graph needs a fuller crawl than this audit took. That check left the denominator rather than passing by default, so the number above is a CEILING — measuring it could only have lowered it, never raised it.

35
internal links
n/a
orphan pages
0
deep (>3 clicks)
0
broken
We checked the first 30 of 35 internal links — the counts above are for those 30.
Broken & orphan link list
The exact URLs that are broken or orphaned, and how to fix each — the Starter plan opens it.
No issues found in this area.
Ex
External links
Outbound links, rel attributes and safety
Pass · 100 ≤ 2 of 3
How this score is made2 of 2 checks clean — nothing wrong here
  • Broken outbound links45 / 45
    no broken links among the 9 checked
    A dead outbound link is a broken promise to the reader and a stale-content signal. Saturates at 15% of the sample — higher than the internal threshold because link rot on other people's sites is partly outside the owner's control.
  • Safe new-tab links30 / 30
    every new-tab link sets rel=noopener
    target=_blank without rel=noopener gives the opened page access to window.opener — the tab-nabbing hole (OWASP; MDN rel=noopener). A security defect, so it saturates at ALL such links rather than a percentage.
  • Outbound authoritynot measured
    no backlink provider ran on this audit, so link authority was never fetched

This is an upper bound: the checks above are all we could take, and the ones we could not can only lower it. It is the ceiling for this page, not its score.

The ≤ means outbound authority is missing from this score: no backlink provider ran on this audit, so we never fetched the authority of the domains you link to. That check left the denominator rather than passing by default, and it could only have lowered the number — this is the ceiling, not the result.

9
external links
9
nofollow
0
broken
0
missing noopener
n/a
low authority
No issues found in this area.
Bl
Backlinks & authority
Referring domains and off-page authority — a trust signal search + AI weigh heavily
locked
Cr
Crawlability & indexation
robots, sitemap, status codes and AI crawlers
Pass · 100
How this score is made7 of 7 checks clean — nothing wrong here
  • robots.txt12 / 12
    robots.txt is served
    Google's crawler requests /robots.txt on every visit; its absence is not an error but it forfeits all crawl direction. Binary — the file is present or it is not.
  • XML sitemap15 / 15
    sitemap found, listing 68 URLs
    Google Search Central lists a sitemap as the primary discovery aid for pages that are weakly linked internally. Binary, and weighted above robots.txt because it adds discovery rather than only restricting it.
  • Redirecting pages11 / 11
    no redirects among the pages crawled
    A sitemap-listed URL that redirects spends crawl budget to reach a page the sitemap could have named directly. Saturates at 20% — our judgement, the most forgiving threshold here because a redirect still serves the reader correctly.
  • noindex on listed URLs10 / 10
    no crawled page is marked noindex
    A sitemap asks Google to index a URL the page itself refuses — a direct self-contradiction, and Search Central calls out the mismatch explicitly. Saturates at 5%: our judgement, strict because the site is arguing with itself.
  • Pages returning 4xx20 / 20
    no 4xx responses among the pages crawled
    A 404 on a sitemap-listed URL is a page the site claims exists and does not. Saturates at 10% of pages crawled — our judgement, set low because a sitemap should not list dead URLs at all.
  • Pages returning 5xx20 / 20
    no server errors among the pages crawled
    A 5xx is a fault on our side of the wire, and Google backs off crawling a host that returns them. Saturates at 2% — far stricter than 4xx, because any server error is an outage symptom.
  • Canonical consistency12 / 12
    no canonical conflicts among the pages crawled
    A canonical pointing somewhere unexpected tells Google to index a different URL than the one it fetched (Search Central, consolidate duplicate URLs). Saturates at 15% — our judgement.
robots.txt presentyes
XML sitemap presentyes
llms.txt presentyes
AI answer-engine crawlers allowedyes
1
XML sitemaps
68
URLs in sitemap
30
indexable (sampled)
0
4xx errors
0
5xx errors
0
redirects
0
canonical issues
0
noindex leaks
We crawled 30 of the 68 URLs this site lists — the counts above are for those 30.
Crawl & indexation issues is not part of your plan. The Pro plan opens it. See Pro
No issues found in this area.
Se
Security & TLS
HTTPS, TLS, mixed content and every key security header — explained, pass or fail
Warn · 71
How this score is made71 of 100 points, 2 of 5 checks lost something
  • HTTPS45 / 45
    the page is served over HTTPS
    Chrome marks plain HTTP as Not Secure and Google has confirmed HTTPS as a ranking signal. Binary, and the largest weight here because every other transport signal is meaningless without it.
  • No mixed content15 / 15
    no insecure subresources
    Browsers block active mixed content outright and flag passive mixed content, so a single insecure subresource can break the page or strip the padlock. Binary — the page is clean or it is not.
  • HSTS0 / 12
    no Strict-Transport-Security header
    HSTS closes the first-request downgrade window that HTTPS alone leaves open (OWASP Secure Headers). Weighted below mixed content because it hardens an already-working HTTPS setup rather than fixing a visible fault.
  • TLS 1.38 / 8
    the host negotiates TLS 1.3
    TLS 1.3 (RFC 8446) removes the legacy cipher suites and cuts a round trip from the handshake. Our judgement, weighted low: TLS 1.2 correctly configured is not a vulnerability, so this is hygiene rather than a defect.
  • Security headers3 / 20
    1 of 6 recommended security headers are set
    The six are the OWASP Secure Headers baseline (CSP, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, X-Frame-Options, COOP). Linear rather than saturating: each header closes a distinct class, so the fifth is worth as much as the first.

Only 1 of the six recommended security headers are set. Each closes a distinct class of attack rather than adding to one score, which is why they are counted linearly — the fifth is worth as much as the first, and they are usually a few lines of server configuration.

CheckStatusWhat it does
HTTPSpassEncrypts every request. A ranking and trust baseline — plain HTTP is flagged by browsers.
Mixed contentpassSub-resources (images/scripts) loaded over http on an https page — browsers block or warn.
TLS 1.3passThe current TLS version — faster handshakes and modern ciphers.
HTTP protocolHTTP/2HTTP/2+ multiplexes requests — older HTTP/1.1 slows many-asset pages.
Strict-Transport-Security (HSTS)FAILTells browsers to ALWAYS use https for this site — defeats downgrade attacks.
Content-Security-Policy (CSP)passWhitelists where scripts/styles may load from — the main defence against XSS.
X-Content-Type-OptionsFAIL“nosniff” stops browsers guessing file types — blocks a class of injection tricks.
X-Frame-Options / frame-ancestorsFAILStops other sites embedding yours in an iframe — prevents clickjacking.
Referrer-PolicyFAILControls how much URL information leaks to other sites when visitors click away.
Permissions-PolicyFAILSwitches off browser features you don't use (camera, mic, geolocation) for embedded content.
Sd
Structured data
schema.org / JSON-LD for rich results & AI
Pass · 100
How this score is made3 of 3 checks clean — nothing wrong here
  • Organization or Person schema25 / 25
    the publisher is identified in schema
    schema.org/Organization is how a site states who publishes it — the entity Google and the answer engines resolve a brand to. Binary.
  • Content schema25 / 25
    the page's content type is declared in schema
    Google's rich-result eligibility is per TYPE (Article, Product, FAQPage): without one the page can be indexed but cannot win an enhanced result. Binary.
  • Valid schema blocks50 / 50
    every schema block validates
    Google's Rich Results Test rejects a block missing its required properties outright, so an invalid block buys nothing while looking like it does. Saturating: one malformed block is a different problem from ten, and past a few the markup is simply unreliable. The heaviest weight because a broken block is worse than an absent one — it claims a capability the page does not have.
5
schema types
0
errors
OrganizationWebSiteBreadcrumbListFAQPageBlogPosting
Structured-data blocks is not part of your plan. The Pro plan opens it. See Pro
No issues found in this area.
Tc
Technical SEO checks
Canonical, indexing rules, render-blocking resources, structured-data @id integrity, pagination and URL form
not scored

These checks did not run on this audit — re-run it to capture them.

No duplicate titlesclean
No duplicate meta descriptionsclean
No redirect loopsclean
hreflang alternates point backclean
hreflang alternates resolve directlyclean
The canonical URL servesclean
The canonical stays on this domainclean
Missing pages return 404, not 200clean
Tech stack
CMS, theme, framework, server, CDN, libraries and plugins — with versions where the markup exposes them
not scored

None of this is graded — which CMS or server you run is a fact about how the site is built, not a measure of how well it is built. It is here because knowing the stack is what makes the rest of this report actionable: the fixes elsewhere are written for the platform we detected.

A CDN was detected (LiteSpeed). It serves your files from a location near each visitor, which is mostly a latency win for an audience spread across regions.

We report the libraries the markup exposes. We do NOT check their versions against known vulnerabilities, so treat this as an inventory rather than a security review.

ComponentDetected
CMS / platformwordpress 7.0.2
Themekadence
Framework
ServerLiteSpeed
CDNLiteSpeed
LibrariesjQuery 0.2.3
Plugins2 detected

What this tells you. None of it is graded — which CMS or server you run is a fact about how the site is built, not a measure of how well it is built. It is here because knowing the stack is what makes the rest of this report actionable: the fixes elsewhere are written for the platform we detected — yours is wordpress, so you get its step-by-step paths.

  • CDN — serves your files from a location near each visitor. We detected LiteSpeed.
  • Serverreported as LiteSpeed. Useful mainly when a fix elsewhere needs a config file, since the file and its syntax depend on it.
  • Framework & librarieswhat the page loads to run. We report what the markup exposes; we do not check versions against known vulnerabilities, so treat this as an inventory rather than a security review.
  • Plugins2 detected. Each one is code you did not write running on every page, so the inventory is worth reviewing periodically for things you no longer use.
Full plugin & theme inventory
Every detected plugin, with version where exposed — the Pro plan opens it.
Analytics & trackers
Analytics, ad pixels, tag managers and consent
Pass · 100
How this score is made4 of 4 checks clean — nothing wrong here
  • Analytics installed40 / 40
    a web analytics tool is installed
    Our judgement, and the largest weight here: without analytics none of the other fixes in this report can be measured for effect. A measured zero — we read the page and found none — so it is a real fail with a finding, not an absence.
  • Consent before non-essential tags30 / 30
    a consent platform was detected alongside the ad and social pixels
    GDPR/ePrivacy require prior consent for non-essential tracking in the EU, and Google Consent Mode v2 is the mechanism Google itself requires for ad tags. Binary, and weighted second because it is a legal exposure rather than a measurement gap.
  • Tag manager wiring15 / 15
    no tag-manager misconfiguration was detected
    A container with no visible GA4 tag may be collecting nothing at all, which is worse than no analytics because it looks installed. GA4 and GTM together is the recommended setup and earns full marks here.
  • No duplicate or retired tools15 / 15
    no duplicate or retired analytics tools
    Our judgement, weighted lowest and saturating at both issues present: overlapping trackers fragment data and add page weight, but they do not stop measurement the way the three faults above do.
Google Analytics 4analytics
Measures visits, sources and behaviour.
Google AdSenseads
Ad delivery / conversion measurement.
Complianzconsent
Cookie-consent management (GDPR).
highThe same tracking tag is loaded more than once

We found: Google Analytics 4 measurement ID G-EZXJNMPTSX appears 8 times in the page source. A tag loaded twice reports every event twice — double the pageviews, double the conversions, and a bounce rate computed over a denominator that is wrong. Nothing looks broken from the outside, which is why this usually survives for years. Remove the duplicate: most often a tag added directly to the theme AND through the tag manager, or a plugin adding the one you already had.

mediumA tracker is not consent-blocked in the page source

You run a consent platform, and these tracker scripts carry none of the blocking attributes consent platforms normally add: Google AdSense (https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=). WHAT WE CHECKED: the page's HTML source, for the conventions CMPs write onto a parked tag — type="text/plain", data-cookieconsent, data-cmp, data-consent, data-ot / the optanon class, and data-usercentrics. WHAT WE CANNOT SEE: we do not run the page's JavaScript, so we cannot observe whether these tags actually fire before consent is given — a platform may block them at runtime by another mechanism. Treat this as a prompt to verify your setup, not as a finding that you are non-compliant. If your CMP blocks these another way, nothing here needs changing.

Tracker IDs & configuration fixes
Your exact tag IDs, missing or misconfigured trackers, GDPR consent gaps and how to fix each — the Pro plan opens it.
Social presence
Linked profiles and share-ready Open Graph / Twitter cards
Warn · 60
How this score is made60 of 100 points, 1 of 6 checks lost something
  • Preview image20 / 20
    og:image is set
    The Open Graph protocol makes og:image the field that turns a shared link into a card rather than a line of text, and Facebook, LinkedIn and X all read it. The largest share-readiness weight for that reason.
  • Preview title15 / 15
    og:title is set
    Open Graph protocol, required property. Weighted below the image because the fallback (the <title> tag) is usually acceptable, whereas there is no fallback for a missing image.
  • Preview description10 / 10
    og:description is set
    Open Graph protocol, optional but universally consumed. Our judgement on the weight: it fills the card's body text, and its absence degrades the preview rather than breaking it.
  • Canonical share target10 / 10
    og:type and og:url set
    og:url is what makes shares of tracking-parameter variants consolidate onto one canonical target; og:type tells the platform what kind of object it is. Both Open Graph protocol; low weight because most platforms guess acceptably without them.
  • X / Twitter card5 / 5
    twitter:card is declared
    Our judgement, the smallest weight here precisely because X reads Open Graph as a fallback, so its absence is rarely visible to a reader.
  • Linked profiles0 / 40
    no social profiles are linked from this page
    Our judgement: linked profiles are how a reader and an entity-resolver both confirm the brand is the same one, and schema.org sameAs exists for exactly that. Full credit at 3 networks rather than all eight — three is enough to establish identity, and more is a marketing choice rather than a technical one.
No social profiles are linked from this page. Visitors can't find your Facebook, Instagram, LinkedIn or other channels — add profile links (usually in the footer).
Not linked
FacebookInstagramTikTokThreadsX (Twitter)PinterestLinkedInYouTube
Open Graph titleyes
Open Graph descriptionyes
Open Graph image (link preview)yes
Twitter / X cardyes

This page links to no social profiles at all. That is the whole of the profile half of the score — the share-readiness half can be perfect and the card will still sit around 60, which is what the arithmetic above is showing you. Linking your profiles is also how schema.org's sameAs property gets its value: it is what tells Google and the answer engines that the brand on those profiles and the brand on this site are the same entity.

The Open Graph set is complete, so a shared link renders as a proper card with your title, description and image on every platform that reads it — including the ones you have not linked to.

What this card checks is the page — which profiles it links to, and whether the tags that build a share preview are present. It does not check what happens ON those profiles: follower counts, how recently you posted, or whether an account is still active. We would rather name that than imply we looked.

GB
Google My Business
Business profile presence, rating and reviews
locked
Prioritized fixes
Judge-ranked — expand for platform-specific steps with a plan
Almost never cited in AI answers
Absent from answers to your own category questions.
geocitation
critical
Backlink authority is low
Few referring domains vs competitors.
seoauthority
high
Crawl & indexation hygiene
Redirect chains and 4xx pages waste crawl budget.
seotech
medium
Rivals own the AI share of voice
Competitors are named where you aren't on comparison prompts.
geosov
medium
Unlock the fixes for top-izbira.si
Step-by-step fix instructions for your exact platform, backlink & keyword intelligence, and CSV/PDF export.
Pay now to unlock →
Unlock more
Technical SEO checks is a premium feature

Upgrade to Starter to analyze the Technical SEO checks live data for visibilityproof.com.

Upgrade to Starter
Fix-it answers is a premium feature

Upgrade to Pro to analyze the Fix-it answers live data for visibilityproof.com.

Upgrade to Pro
Step-by-step fixes for your platform is a premium feature

Upgrade to VisibilityProof to analyze the Step-by-step fixes for your platform live data for visibilityproof.com.

Upgrade to VisibilityProof
Backlink intelligence is a premium feature

Upgrade to Pro to analyze the Backlink intelligence live data for visibilityproof.com.

Upgrade to Pro
Competitor share-of-voice is a premium feature

Upgrade to VisibilityProof to analyze the Competitor share-of-voice live data for visibilityproof.com.

Upgrade to VisibilityProof
Keyword volume & difficulty is a premium feature

Upgrade to Starter to analyze the Keyword volume & difficulty live data for visibilityproof.com.

Upgrade to Starter
AI answer-engine tracking is a premium feature

Upgrade to Starter to analyze the AI answer-engine tracking live data for visibilityproof.com.

Upgrade to Starter
Keyword trends is a premium feature

Upgrade to Pro to analyze the Keyword trends live data for visibilityproof.com.

Upgrade to Pro
Google My Business is a premium feature

Upgrade to VisibilityProof to analyze the Google My Business live data for visibilityproof.com.

Upgrade to VisibilityProof
AI keyword demand is a premium feature

Upgrade to Pro to analyze the AI keyword demand live data for visibilityproof.com.

Upgrade to Pro
Search position & top-5 is a premium feature

Upgrade to VisibilityProof to analyze the Search position & top-5 live data for visibilityproof.com.

Upgrade to VisibilityProof
ChatGPT citations & fan-out is a premium feature

Upgrade to VisibilityProof to analyze the ChatGPT citations & fan-out live data for visibilityproof.com.

Upgrade to VisibilityProof
Keyword opportunities is a premium feature

Upgrade to VisibilityProof to analyze the Keyword opportunities live data for visibilityproof.com.

Upgrade to VisibilityProof
Not measured in this audit
These signals could not be measured for this audit. They are shown as not available — never filled with an estimate or a plausible-looking number.
  • INP (no CrUX field data — site has insufficient traffic)
  • Core Web Vitals field data (showing lab data from Lighthouse)
  • Orphan pages (requires a full-site crawl)

The same finding, at both fix-it depths

AI answer enginesno AI engine currently cites this site; only 40-59% of content is in the server HTML. Both answers below are the real ones from this audit, not examples of them.

Pro
What to change, and why
Expand your server-rendered HTML content by adding 200–500 words of unique, keyword-rich text to your homepage and key landing pages; avoid hiding content behind JavaScript or accordions that crawlers cannot easily index. Install the Yoast SEO plugin and use its Content Optimization tool to ensure each page targets a primary keyword with sufficient word count and semantic variations. Submit your sitemap to Google Search Console and Bing Webmaster Tools, then monitor the Coverage report to confirm all pages are indexed; if pages are blocked, check your robots.txt file (via Settings → Reading in WordPress) and ensure it does not disallow important content.
VisibilityProof
Which screen, which field, what to type
This is not about adding more words to the page - it means AI tools and some crawlers only see the empty 'shell' of your page because the actual content is being drawn in afterwards by JavaScript (a scripting language that runs in the visitor's browser, not on the server). 1. First confirm this: right-click your homepage in a normal browser tab and choose 'View Page Source' (or press Ctrl+U). Use Ctrl+F to search for a sentence you know is on the page. If you cannot find it in this raw source view, that content is JavaScript-injected and invisible to AI crawlers. 2. In WordPress admin, go to Plugins -> Installed Plugins and identify anything described as a 'headless front-end', 'React app', 'single-page app', or a page builder module marked 'dynamic/AJAX loaded content' — these are the usual culprits. 3. If a page builder (e.g. Elementor, Divi) is used, open that page in the builder and look for widgets marked 'Dynamic Content' or 'Load via AJAX'; switch these to their static/non-AJAX equivalent widget where the option exists. 4. If the content comes from a custom theme or a developer-built section, this requires a developer to change how the content is produced: they need to move the content-generating code out of client-side JavaScript files (commonly in the theme's /assets/js/ folder or a separate React build folder) and into the PHP template files (e.g. page.php, template-parts/content.php) so the text is written directly into the HTML the server sends out, or set up server-side rendering / static generation for that section. 5. To check it worked, repeat the 'View Page Source' test from step 1 after the change goes live — the sentence should now appear directly in the raw HTML. 6. Publish/deploy the change through your normal WordPress update or your developer's deployment process, then re-test the source code as in step 5.
This is Free.
See the plans →