Locator Upgrade - Nginx CMS Steps
Table of Contents
Store finder pages on Nginx
Search engines and AI assistants often cannot see your store finder. When they visit the page, your stores are not on it yet: they only appear later, on the visitor's screen. So your stores can be missing from search results and from the answers AI assistants give.
After these steps, every store finder page arrives with its stores already on it, with names, addresses and opening hours. Search engines and AI assistants can find each of your stores and show it. Your visitors see the same store finder as before.
It takes four steps.
What you need
Access to your Nginx configuration, or someone who has it
Your render token, from Uberall
Your locator key: the data-key of the store finder snippet already on your page
<div id="store-finder-widget" data-key="YOUR_LOCATOR_KEY"></div>
Step 1: Connect your server to Uberall
Open your site's configuration file, usually in /etc/nginx/sites-enabled/ or /etc/nginx/conf.d/.
Paste this inside the server { ... } block, and replace YOUR_RENDER_TOKEN with your token:
location /api/locator-fragments/ {
internal;
proxy_pass https://uberall.com;
proxy_ssl_server_name on;
proxy_ssl_verify on;
proxy_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
proxy_pass_request_headers off;
proxy_set_header x-uberall-render-token "YOUR_RENDER_TOKEN";
proxy_connect_timeout 2s;
proxy_read_timeout 6s;
proxy_intercept_errors on;
error_page 400 401 403 404 405 408 413 414 429 431 500 502 503 504 /empty-fragment;
}
location = /empty-fragment {
internal;
return 200 "";
}
The token stays on your server. Visitors never see it.
The certificate file lists the authorities your system trusts, and where it is depends on the system:
| System | File |
| Debian, Ubuntu, Alpine | /etc/ssl/certs/ca-certificates.crt |
| Red Hat, CentOS, AlmaLinux, Rocky, Amazon Linux | /etc/pki/tls/certs/ca-bundle.crt |
| openSUSE | /etc/ssl/ca-bundle.pem |
If yours is not there, openssl version -d shows the folder where OpenSSL keeps it.
Step 2: Turn on includes for the store finder
In the same file, find the location block that serves your store finder, for example location /store-locator/ { ... }, and add one line inside it:
location /store-locator/ {
ssi on;
# ... what was already here stays as it is
}
Step 3: Add two lines to the store finder page
Open the HTML of your store finder page and add the two include lines shown below. Replace YOUR_LOCATOR_KEY with your locator key.
<head>
<!-- ... your head stays as it is ... -->
<!--# include virtual="/api/locator-fragments/head?key=YOUR_LOCATOR_KEY&path=$request_uri" wait="yes" -->
</head>
<body>
<!-- ... -->
<div id="store-finder-widget" data-key="YOUR_LOCATOR_KEY">
<!--# include virtual="/api/locator-fragments/body?key=YOUR_LOCATOR_KEY&path=$request_uri" -->
</div>
<script src="https://locator.uberall.com/locator-assets/storeFinderWidget-v2.js"></script>
</body>
The first line goes just before </head>. The second goes inside the store finder's div. Keep path=$request_uri at the end of each line.
If your snippet has data-language or data-widgetoriginurl
Add the same values to both include lines, before &path=:
| Your snippet has | Add to both lines |
data-language="de" |
&lang=de |
data-widgetoriginurl="https://www.example.com/store-locator" |
&widgetOriginUrl=https://www.example.com/store-locator |
With both, the first line reads:
<!--# include virtual="/api/locator-fragments/head?key=YOUR_LOCATOR_KEY&lang=de&widgetOriginUrl=https://www.example.com/store-locator&path=$request_uri" wait="yes" -->
Without them, the store finder uses the language and address set up for it at Uberall.
Step 4: Restart and check
Restart Nginx:
sudo nginx -t && sudo nginx -s reload
Open your store finder in the browser, right click, and choose View page source. Search the source for __ubSfSsr. If you find it, it works.
If it does not work
| What you see | What to do |
nginx -t reports an error |
Check that the location blocks from step 1 are inside server { ... }, and that the certificate file exists |
The source still shows the <!--# include ... --> lines |
ssi on; is missing from the store finder's location, or is in the wrong one |
| The page comes from an application, and nothing changes | Add proxy_set_header Accept-Encoding ""; to the store finder's location too |
__ubSfSsr is not in the source |
Check the token and the key, and step 3 if your snippet has a language or an address. Then contact Uberall |
The store finder keeps working in every case. If Uberall cannot send the content, because it cannot be reached, does not answer in time or answers with an error, the page loads as it did before.