When a Shopify favicon shows in the browser tab and is missing from Google, either Google cannot fetch the image file or Google has not processed it yet. One test in Google Search Console tells you which, and it takes about a minute. Run it before you spend more weeks waiting.
On our own store the file was blocked for more than two months. It was called checkoutworks-favicon.png, and Shopify's generated robots.txt blocks every file whose name starts with checkout. After we renamed it to favicon-checkoutworks.png, the same test reported the file as available, and four days later the favicon was in Google's results. The same rules block file names that start with orders or account.
![]()
Our home page in Google on 12 October 2026, with the default globe icon where the favicon belongs.
Test Whether Google Can Reach the Favicon
- Open your home page, view the page source, and search for
rel="icon". Copy the image URL from that tag. If the tag is missing, select a favicon in the theme editor under Theme settings first. - In Google Search Console, paste the URL into URL Inspection and click Test live URL.
- Open Page availability and read Crawl allowed? and Page fetch.
URL Inspection is built for pages, so URL is not on Google on the first screen is normal for an image. Read the live test result:
| Live test result | Meaning | Next step |
|---|---|---|
| Blocked by robots.txt | Google is not allowed to fetch the file | Check the file name, below |
| Not found (404) | The theme points to a file that no longer exists | Select the favicon again in Theme settings |
| URL is available to Google | Google can fetch the file | Check the tag and wait, further down |
![]()
The live test for our original file. Crawl allowed? reports No: blocked by robots.txt.
We saw the first and third results on our store. The 404 row is a possibility we did not reproduce.
Blocked by robots.txt: Check the File Name
Google shows a favicon only when Googlebot-Image can crawl the image file. On 12 October 2026, the robots.txt that Shopify generated for our store contained these rules:
User-agent: *
Allow: /
Disallow: /checkout
Disallow: /*/checkout
Disallow: /*/orders
Disallow: /*/account
Disallow: /*/cart.js
The * stands for any path. The rule /*/checkout is written for localized checkout URLs such as /fr/checkout. A robots.txt rule matches every URL that begins with its pattern, and this one does not end with $, the marker that would stop the match at that point. So it also covers any URL where a folder or file name begins with checkout. Uploaded files live under /cdn/shop/files/, so /cdn/shop/files/checkoutworks-favicon.png matched. When an Allow and a Disallow rule both match, Google follows the longer one, and /*/checkout is longer than /.
Four of these rules reach file names:
| Rule | Blocks file names that start with | Examples |
|---|---|---|
/*/checkout |
checkout |
checkout-trust-badges.png, checkouts-banner.jpg
|
/*/orders |
orders |
orders-page-header.jpg |
/*/account |
account |
account-icon.svg, accounts-hero.png
|
/*/cart.js |
cart.js |
A theme asset named cart.js
|
Only the start of the name matters, and the match is exact. Google crawled about-checkoutworks.png on our store without a problem. order-confirmation.png is not matched, because the rule says orders, and cart-icon.svg is not matched either. We verified the checkout rule in Search Console. The other three are written the same way, and we did not test them.
Open yourstore.com/robots.txt and search for /*/checkout. Some Shopify stores still serve an older file that has Disallow: /checkout without the wildcard version. If yours has no wildcard rule, or your file name starts with another word, look for a custom robots.txt.liquid template in the theme.
The Crawl stats report confirms the pattern. Open Settings > Crawl stats and choose Image under By file type. Our export listed 245 image requests between 31 July and 10 October 2026. None was for a file whose name starts with checkout, although a badge with such a name appears on every page of our site.
Rename the File and Update Every Reference
- Choose a name that does not start with
checkout,orders, oraccount. Putting the brand name last works:favicon-yourbrand.png. - Rename the file in Content > Files, or upload a copy under the new name.
- In the theme editor, open Theme settings and select the renamed file as the favicon.
- Run the live test on the new URL and confirm URL is available to Google.
- Inspect your home page URL and click Request indexing once. Google finds the favicon through the home page, and Search Console rejects an indexing request for the image URL itself.
![]()
The same image under its new name, tested 29 minutes after the first screenshot.
A renamed file gets a new URL. On our store the old URLs returned 404 afterward, and every place that still used an old name showed no image. The theme editor's image pickers are easy to review. These places are easy to miss:
-
Custom Liquid blocks and sections that name the file in code, such as
{{ 'old-name.svg' | file_url }}. - The same image used in several templates. We had one badge in twelve templates and the footer.
- Blog posts and pages with the file's CDN URL pasted into the content.
Renaming is simpler than editing robots.txt. A short rule such as Allow: /cdn/ loses to the longer /*/checkout, and a custom robots.txt.liquid template is one more file to maintain. We did not test that route.
Other Files the Rule Blocks
-
The logo. Our theme lists the logo URL in the home page's Organization structured data. That file name also started with
checkout, so Google could not fetch the logo it was told to use. -
Theme assets. A stylesheet or script in the theme's
assetsfolder is served from/cdn/shop/t/…/assets/, and its name is matched the same way. We renamed our custom stylesheet for this reason without testing it in Search Console first. - Other images. A blocked image still displays for visitors. It stays out of Google Images.
Product, collection, page, and blog post handles have their own Allow rules in the same file, such as /products/checkout, so a page whose handle starts with checkout can still be crawled. Files have no such exception.
Available to Google: Check the Tag, Then Wait
When the live test shows the favicon as available, compare your setup with Google's favicon guidelines:
- Google can crawl the home page, and the page contains the
rel="icon"tag. - The image is square. Google accepts 8×8 and recommends larger than 48×48. Our Horizon theme's original tag requested 32×32, and we changed it to 192×192.
- The favicon URL stays the same. Each new file restarts the process.
Then request indexing for the home page once and wait. Google's documentation says a favicon change can take from several days to several weeks to appear after the home page is crawled again.
Ours took less than that. We saw the favicon in Google on 16 October 2026, four days after we renamed the file and requested indexing of the home page.
![]()
The same search result on 16 October 2026, with our favicon in place.
Several fixes that circulate in forums are not needed on Shopify: adding /favicon.ico (Shopify returns a 404 for that path, and a URL redirect does not change it), converting the icon to .ico, hosting it on your own domain, and uploading a 512×512 image. Google reads the rel="icon" tag, supports PNG, and accepts a favicon URL on a CDN.
For other Search Console statuses that Shopify causes by default, see our guide to Shopify pages not indexed in Google Search Console.
How We Tracked It Down
We set the favicon in early August 2026 and waited, because Google and nearly every forum thread say a favicon can take weeks. In September we raised the size in the tag and tried a URL redirect for /favicon.ico. Nothing changed.
On 12 October we checked everything again. The tag was in place, the file returned a 200 response, and a search of robots.txt for /cdn/ found no rule about images. Then we pasted the favicon's URL into URL Inspection, expecting nothing, and the live test answered Blocked by robots.txt.
The home page passed the same test, and so did an article image under /cdn/shop/articles/. Two image URLs on the same domain, one blocked and one allowed, left the file name as the difference. The rule was /*/checkout. We had read past it because it is plainly a rule about checkout pages, and our brand name starts with the same eight letters.
The lesson we kept: test what Google sees with Google's own tools. A request you send yourself returns a 200 even when robots.txt tells crawlers to stay away.
When to Stop and Get Help
Stop when the live test still reports a robots.txt block after the rename, or when images are missing and you cannot find what still uses the old name. The cause is then in theme code, a custom robots.txt.liquid template, or an app.
Bugs like this one pass every checklist, and they are the kind of work we take on. If your store has a problem that makes no sense after the obvious checks, our Shopify Bug Fix service covers tracing it to its cause and fixing it. Whether and when Google shows a favicon stays with Google, even when every guideline is met.