Favicon Not Showing in Google Search: Find the Cause and Fix It
Google shows your favicon only when the home page's head contains a link tag Google reads (icon, shortcut icon, apple-touch-icon or apple-touch-icon-precomposed) pointing to a square image of at least 8 by 8 pixels, in a supported raster format, that Googlebot and Googlebot-Image can both crawl at a stable URL. After you fix it, expect several days to several weeks before the result changes.
Google's favicon page for Search was last updated on October 27, 2026, and it contains no "multiple of 48 pixels" rule, although that line still circulates in checklists and forum answers. The current size rule is a square that is "at least 8x8px", with a recommendation to go "larger than 48x48px" so the icon looks good on various surfaces (Google Search Central, favicon in search). A 64 by 64 or 180 by 180 square passes; a 200 by 100 logo does not, however sharp it looks.
That page also ends with a warning worth reading before you spend a day on this: "A favicon isn't guaranteed to appear in Google Search results, even if all guidelines are met." The part you control is getting every condition into a passing state, proving it with checks you can repeat, and then leaving the URL alone while Google catches up.
The Conditions, Written as Pass or Fail
Google's guidelines are short, so each one can be turned into a test with a yes or no answer. The quoted wording comes from the Search Central page cited above; the "fails when" column is the concrete situation each rule rules out.
| Condition | Google's wording (short) | Fails when |
|---|---|---|
| Link tag on the home page | "Add a <link> tag to the header of your home page" | The tag is only on inner pages, or the home page redirects to a page without it |
| A rel value Google reads | icon, shortcut icon, apple-touch-icon, apple-touch-icon-precomposed | The only icon is declared as rel="mask-icon" or only inside a web app manifest |
| One per hostname | example.com and news.example.com can each have one; example.com/news cannot | You expect a subfolder (a blog, a shop path) to show its own icon |
| Googlebot can reach the page | Googlebot must crawl the home page and "follow any redirects" to the page with the tag | robots.txt, a login, or a firewall blocks the home page or a hop in its redirect chain |
| Googlebot-Image can reach the file | "Googlebot-Image must be able to crawl the favicon file" | robots.txt disallows the icon path for Googlebot-Image, or a server rule refuses it |
| Square, at least 8 by 8 | "a square (1:1 aspect ratio) that's at least 8x8px" | The file is a wide logo, or a tall crop |
| Supported format | BMP, GIF, ICO, PNG, JPEG, PPM, TIFF | The only declared icon is SVG, WebP or AVIF |
| Stable URL | "don't change the URL frequently" | Each deploy or redesign renames the file |
| Represents the brand, appropriate | The favicon "should visually represent your brand"; inappropriate imagery is replaced with a default icon | The image is unrelated to the brand, or is something Google classes as inappropriate |
Two of these surprise people. First, SVG, WebP and AVIF are all missing from Google's format list. A modern build that declares only an SVG favicon looks perfect in Chrome's tab and offers Google nothing it lists as supported. Second, the hostname rule means "www.example.com" and "example.com" are separate hostnames with separate home pages. If your results show www URLs, the www host's home page and its robots.txt are the ones that matter.
Symptom to Cause: The Diagnostic Table
Start from what you actually see. Each row pairs a symptom with a cause that produces it and names the one check that confirms or rules out that cause. Several symptoms have more than one row, because the same missing icon can come from different faults.
| Symptom | Cause to suspect | Confirming check | Fix |
|---|---|---|---|
| Icon shows in the browser tab, not in Google | Only an SVG, WebP or AVIF icon is declared | Read the link tags in the home page HTML | Add an ICO or PNG link; keep the SVG for browsers |
| Icon shows in the tab, not in Google | Icon path blocked for Googlebot-Image | Test the icon URL against robots.txt for the Googlebot-Image token | Allow the path for that token |
| Icon shows in the tab, not in Google | Link tag added by client-side script only | Compare the served HTML with the rendered HTML in URL Inspection | Put the tag in the server-rendered head |
| No icon after weeks, everything "looks right" | Home page redirects (language, geo, http to https) to a page without the tag | curl -sIL on the home page and read every hop | Put the tag on the final page in the chain |
| No icon, your site lives in a subfolder | Subdirectory home pages are not supported | Look at the hostname in the result URL | Use the hostname's own home page, or a subdomain |
| No icon, the file is a logo | Not square | file icon.png shows the pixel dimensions | Export a square canvas |
| No icon, file "exists" | The URL returns HTML (a 404 page, or an SPA fallback at status 200) | curl -sI shows the status and content-type | Serve the image at that path, or fix the href |
| No icon, file "is an ICO" | A renamed PNG or JPEG, or a broken file | file icon.ico reports what the bytes are | Re-export in the format you declare |
| Old icon still showing | You changed the favicon URL, or Google has not recrawled yet | Compare today's href with the one before the redesign | Keep one URL; wait; request indexing once |
| Old icon still showing after a framework upgrade | A build tool appends a content hash to the href | Read the href in the deployed HTML | Accept the one change, then leave it alone |
| Icon on one hostname, not another | Each hostname needs its own home page tag and crawlable file | Run the checks against both hosts | Fix the host that fails |
| Icon hosted on a CDN, not showing | The CDN host's robots.txt or firewall blocks Googlebot-Image | Fetch the CDN host's robots.txt | Allow the path there, or host the file on your own domain |
| Generic icon replacing yours | Imagery Google treats as inappropriate | Look at the image honestly; Google names pornography and hate symbols as examples | Replace the image |
| Everything passes, still nothing | Google does not guarantee display | All checks below pass | Request indexing once, then use the favicon feedback form if it persists |
Each entry in the "Confirming check" column is a command or a Search Console screen you can run in a few minutes. Checks 1 to 6 run in the order that rules out the most causes first.
Check 1: Which Hostname Is the Result On?
Search for your site and look at the URL under the result, not the title. If it says www.example.com, every check below runs against https://www.example.com/, its HTML, its robots.txt and its icon paths. Google's rule is "one favicon per site, defined by hostname", and its own example treats example.com and news.example.com as two sites.
This is also where the subfolder case ends. A store at example.com/shop or a blog at example.com/blog uses example.com's favicon in Google. The page says it plainly: home pages in a subdirectory are not supported. If the business behind the subfolder needs a different icon in search, the only route is its own hostname.
Note the protocol as well. robots.txt "rules apply only to the host, protocol, and port number" where the file sits, according to Google's robots.txt specification, so http://example.com/robots.txt does not govern https://example.com/ (Google robots.txt specification).
Check 2: Read the Home Page HTML Google Receives
Your browser's view source shows what your browser got. Google's view can differ when a server varies output by user agent, by cookie, or by country. Search Console's URL Inspection tool shows Google's side.
- In Search Console, inspect the exact home page URL, including the trailing slash your server uses.
- Click Test live URL. Google's help describes it as a test where "the tool fetches and examines the URL in real time" (Search Console Help, URL Inspection tool).
- Open View tested page, then the HTML tab, and search for "icon".
What you are looking for is at least one link element with rel set to icon, shortcut icon, apple-touch-icon or apple-touch-icon-precomposed, pointing at a raster file. If the tags appear in your local source but not in the tested HTML, something between your build and Google removed them or never sent them.
One limit to keep in mind: the live test fetches as Google-InspectionTool, a separate crawler. Google's crawler list says it is used by URL Inspection and the Rich Results Test and "has no effect on Google Search", and it answers to the robots.txt tokens Google-InspectionTool and Googlebot (Google common crawlers). A pass here proves the HTML is fine; it does not prove Googlebot-Image can fetch the icon. That is check 5.
The help page also lists a "Crawl allowed?" field for the inspected page. It reports robots.txt blocking of the page itself. Google's help does not say it reports a blocked icon file, so do not read a "Yes" there as clearance for the favicon.
Check 3: Fetch Every Icon URL and Read the Headers
Take each href from the tags you found and request it with curl. The -I flag asks for headers only, and -A sets a user agent string so your request is not mistaken for a scraper. (Flag meanings are from curl 8.5.0's built-in help, curl --help all.)
curl -sI -A "favicon-check/1.0" https://example.com/favicon.ico
Three lines in the response settle most cases:
- Status. It must be 200. A 404, 403 or 5xx means Google has no file. A 301 or 302 is followed by browsers, but every hop is one more place for a block.
- content-type. Google's favicon page does not list a required content-type, so treat this as a sanity check rather than a published rule. The failure it catches is serious: a response of text/html means the server sent a web page, usually an error page or a single-page-app fallback, in place of an image. MDN lists the expected types as image/vnd.microsoft.icon for .ico, image/png, image/gif, image/jpeg, image/bmp and image/tiff (MDN, common MIME types).
- x-robots-tag. If one appears on the icon response, find out what set it. Google's favicon page does not mention this header, so its effect on favicons is not documented, but a header you did not plan for usually means a server rule you did not know about.
Here is what the check returned for this site on November 13, 2026, measured from our own requests:
| Requested path | Status | content-type | cache-control |
|---|---|---|---|
| /favicon.ico (with its build hash query) | 200 | image/vnd.microsoft.icon | public, max-age=86400 |
| /icon.png (with its build hash query) | 200 | image/png | public, max-age=86400 |
| /apple-icon.png (with its build hash query) | 200 | image/png | public, max-age=86400 |
| /favicon.svg (not declared on this site) | 404 | text/html | no-store, max-age=0 |
The last row is the useful one. A path that does not exist came back with status 404 and content-type text/html. On a host that serves its home page for every unknown path, the same request would come back 200 with text/html, which looks like success in a quick status check. That is why content-type sits next to status in every row of this table.
Check 4: Check the Bytes, Not the File Name
A file called favicon.ico can contain anything. A PNG renamed to .ico, a JPEG saved with an .ico extension, or a truncated upload will all keep their misleading name on the server. The Unix file command reads the first bytes and reports the real format and dimensions:
curl -s -o icon.bin https://example.com/favicon.ico
file icon.bin
Run against this site's files on November 13, 2026, it reported:
- favicon.ico: "MS Windows icon resource - 7 icons", the first being 16x16 PNG image data. Reading the ICO directory in a short Python script showed the seven entries as 16, 24, 32, 48, 64, 128 and 256 pixels, every one stored as PNG data, 29,767 bytes in total.
- icon.png: "PNG image data, 512 x 512".
- apple-icon.png: "PNG image data, 180 x 180".
All three are square and all are in formats on Google's list. A file result reading "HTML document" or "ASCII text" points straight back to check 3. A result like "PNG image data, 400 x 120" fails the square rule however the browser tab renders it.
An ICO holding only 16 and 32 pixel images satisfies Google's 8 by 8 minimum. It falls short of the "larger than 48x48px" recommendation, and Google does not say which image inside a multi-size ICO it uses. If your ICO is small, also declare a larger square PNG, such as the 180 pixel apple-touch-icon, so Google has a bigger supported option in the same head. The favicon sizes and formats guide sets out which files cover which surfaces, so this extra tag is usually one you should already have.
Check 5: Test robots.txt for Both Crawlers
Google needs two crawlers to succeed: Googlebot on the home page and every redirect hop, and Googlebot-Image on the icon file. Its crawler list says Googlebot-Image answers to two robots.txt tokens, Googlebot-Image and Googlebot, and that "you need to match only one crawler token for a rule to apply". The same entry says its crawl preferences affect "all features in Google Search where images, logos, and favicons are presented". Blocking Googlebot-Image to keep photos out of Google Images also blocks the favicon.
How a crawler picks its rules, from Google's robots.txt specification:
- It follows "the group with the most specific user agent that matches", and ignores the others. A crawler with no specific group falls back to the * group.
- Within a group, the rule with the longer path wins; on a tie, "Google uses the least restrictive rule".
- Paths are case-sensitive, * matches any run of characters, and $ marks the end of the URL.
- The user-agent value itself is case-insensitive.
Search Console has a robots.txt report that shows, for the top 20 hosts of a property, which robots.txt file Google fetched, when, its status and size (Search Console Help, robots.txt report). Use it to confirm Google is reading the file you think it is. On this site, the deployed robots.txt on November 13, 2026 was not the file in our source tree: the host served a longer list of named crawlers than the repository copy contains. Test the live file at /robots.txt, never the one in your project folder.
Google also caches robots.txt, generally for up to 24 hours, so a fix to the file is not seen immediately, and a robots.txt that answers with a 5xx error stops crawling of the site for the first 12 hours.
Robots.txt Rules That Block a Favicon
These six robots.txt files show the rule interactions that most often catch an icon. The icon in each case sits at /static/favicon.png unless the row says otherwise. Results apply the group and precedence rules quoted in check 5.
| # | robots.txt (groups separated by semicolons) | Googlebot-Image fetches the icon? | Why |
|---|---|---|---|
| A | User-agent: * / Disallow: /static/ | No | No Googlebot-Image or Googlebot group, so the * group applies, and /static/ matches |
| B | User-agent: * / Disallow: /static/ ; User-agent: Googlebot / Allow: / | Yes | Googlebot is one of Googlebot-Image's tokens, so the more specific Googlebot group applies instead of * |
| C | User-agent: Googlebot-Image / Disallow: / | No | The most specific group blocks everything for that crawler, favicon included |
| D | User-agent: Googlebot-Image / Disallow: / / Allow: /static/favicon.png | Yes, for that one path | The Allow path is 19 characters long, the Disallow path is 1; the longer path wins |
| E | User-agent: * / Disallow: /*.ico$ , icon at /favicon.ico | No | /*.ico$ matches any path ending in .ico |
| F | Same as E, but the href is /favicon.ico?v=3 | Yes | $ means end of URL; Google's spec shows /*.php$ not matching /filename.php?parameters |
Row B depends on reading two statements together: Googlebot-Image answers to the Googlebot token, and a crawler follows the most specific group that matches it. Google does not print row B as a worked example, so if your file looks like it, the safest fix is an explicit group (or an explicit Allow line) for Googlebot-Image.
Row D is the fix for sites that want photos out of Google Images but still want a favicon in Search. Add an Allow line for each declared icon path. Rows E and F show why that Allow line should not end in $ when your build adds a query string to the href: Allow: /favicon.ico$ would stop matching the moment a build writes /favicon.ico?hash.
Google measures specificity "based on the length of the rule path", which is why row D works: "/static/favicon.png" is 19 characters including the leading slash, against 1 for "/". The same rule means a broad Allow: / cannot rescue the icon from a longer Disallow: /static/ in the same group.
Check 6: Follow the Redirect Chain From the Home Page
Google's wording here is precise: Googlebot must "crawl the home page, follow any redirects from there to the page where the favicon is specified". Language and country redirects are the usual trap. A visitor at / is sent to /en-us/, the template for /en-us/ has the icon tags, and the template for / is a bare redirect stub. That works. The trap is the reverse: tags in the root template, and a redirect to a localized page whose template lacks them.
curl -sIL -A "favicon-check/1.0" https://example.com/
The -L flag follows redirects and -I prints the headers of every hop. Read each Location line. For this site, requesting the http version of the home page took one redirect to https://lucky.graphics/ and ended with status 200, which we measured by printing curl's num_redirects and url_effective values. Every hop must be allowed for Googlebot in that host's robots.txt, and the final page must carry the tags.
Interstitials and consent walls deserve the same scrutiny. If the HTML at the end of the chain is a cookie gate or a login form served to crawlers, the tags must be in that HTML, or the gate must not apply to crawlers.
One Script for Checks 2 to 4
The checks above are easy to run by hand once. When you are fixing several hostnames, a short shell script saves typing. This one reads the home page, pulls each icon href out of rel values containing "icon", fetches each file, prints status, content-type and what the bytes are, then prints the user-agent and disallow lines from robots.txt. It is 608 bytes; we measured that with wc -c.
#!/bin/sh
# usage: sh favcheck.sh https://example.com
site="$1"
curl -s -L -o home.html "$site/"
grep -o '<link[^>]*rel="[^"]*icon[^"]*"[^>]*>' home.html | sed -n 's/.*href="\([^"]*\)".*/\1/p' | sed 's/&/\&/g' > hrefs.txt
while read -r href; do
case "$href" in http*) url="$href" ;; /*) url="$site$href" ;; *) url="$site/$href" ;; esac
code=$(curl -s -o icon.bin -w '%{http_code} %{content_type}' "$url")
echo "$href"
echo " status/type: $code"
echo " file says: $(file -b icon.bin | cut -c1-70)"
done < hrefs.txt
curl -s "$site/robots.txt" | grep -i -E '^(user-agent|disallow)' | head -20
Run against https://lucky.graphics on November 13, 2026, it printed three icon entries: /favicon.ico with a build hash query (200, image/vnd.microsoft.icon, "MS Windows icon resource - 7 icons"), /icon.png (200, image/png, 512 x 512) and /apple-icon.png (200, image/png, 180 x 180). The robots.txt section showed user-agent lines and no disallow lines.
Limits of the script, stated plainly. It sees the HTML your machine receives, not Google's, so check 2 still matters. It matches double-quoted attributes only, and assumes rel comes before href in the tag, which is how most frameworks print it. It does not evaluate robots.txt rules; it only prints them for you to read against the table above. It also matches rel="mask-icon", which Google does not read, so ignore that line if it appears.
When Google Keeps Showing the Old Icon
A changed favicon is a different problem from a missing one. Google has a working icon on record and has not replaced it yet. Two things decide how long that lasts: whether Google has recrawled, and whether you kept the URL.
Google asks for a stable favicon URL. Renaming /favicon.ico to /favicon-v2.ico to beat browser caches is a sensible habit for the browser tab, and it is the one change Google's page tells you to avoid doing frequently. Replace the file's contents at the same path, and let HTTP revalidation handle browsers.
Frameworks can change the URL for you. Next.js documents its favicon output as a plain /favicon.ico and its icon and apple-icon output with a generated query (href="/icon?<generated>") (Next.js, app icons). This site's Next.js 16.2.9 build printed all three with a query, including the ICO: /favicon.ico?favicon.2i8uu9jjr0uoe.ico. In the 16.2.9 metadata image loader source, which we read in this site's node_modules, that query is built from the file's content hash, so it changes only when the image changes. One change per redesign is not "frequently", but it is a URL change, so expect the full recrawl wait after each one rather than assuming a same-path swap.
If the old icon belongs to a previous owner of the domain, or to an old platform's default, the same logic applies. Make sure the current tags point at your file, make sure no old link tag survives in a template partial, and wait for the recrawl.
What You Can Speed Up and What You Cannot
Once the checks pass, the remaining time is Google's. Three Google pages describe that wait in slightly different words, and none promises a date.
| Action | Does it help? | What Google says |
|---|---|---|
| Request indexing of the home page in URL Inspection | Yes, once | The favicon page says you "can request indexing of your site's home page"; you must be an owner or full user of the property |
| Requesting it again the next day | No | "requesting a recrawl multiple times for the same URL won't get it crawled any faster" (Ask Google to recrawl) |
| Request indexing of the icon file itself | Not a documented route | Google's favicon steps name the home page, not the image |
| Submitting a sitemap | Not for this | Google suggests sitemaps for "large numbers of URLs", not a single home page |
| Renaming the favicon to force a refresh | Harmful | Conflicts with the stable URL rule and restarts the wait |
| Fixing robots.txt, then asking Google to recrawl it | Yes, after a robots fix | The robots.txt report lets you request a recrawl of the file; otherwise caching is "up to 24 hours" |
| Waiting | The main factor | Favicon page: "several days to several weeks". Recrawl page: "a few days to a few weeks" |
| Favicon feedback form | Last resort | Google links a feedback form from the favicon page and notes it doesn't guarantee individual action |
The URL Inspection help adds that there is a daily limit on indexing requests and that a request does not guarantee inclusion. It says indexing "typically takes only a day or so, but can take much longer in some cases". That figure is about indexing a page, not about refreshing the favicon shown with it, which is why the favicon page's own range, days to weeks, is the one to plan around.
A sensible sequence after a fix: run all six checks, request indexing of the home page once, note the date, and leave the favicon URL alone for at least a few weeks before concluding anything. If the icon is still missing after that, rerun the checks (a deploy in the meantime may have changed something) before you open the feedback form.
Host and Framework Traps
Some causes are not in your markup at all. They come from how the site is built or served.
Single-page-app fallbacks. Static hosts and Workers can be set to answer unknown paths with index.html so client-side routing works. A mistyped icon href then returns status 200 with text/html, which passes a status-only check. Check 3's content-type column catches this.
Icons injected by script. Some themes and tag managers add the favicon link with JavaScript after load. Google renders pages, but its favicon instructions say to add the tag to the header of the home page, and the served HTML is the version you can verify everywhere. Put the tag in the server-rendered head.
Icons on another host. Google allows the href to point anywhere, including a CDN. The file then sits under the CDN host's robots.txt, which may be a file you have never read. Because robots.txt applies per host, protocol and port, your own robots.txt does not cover it. Fetch https://cdn-host/robots.txt and test the icon path against it.
Firewall and bot rules. Google's guideline covers blocking by robots.txt "or by other means". Rate limits, country blocks, bot challenges and hotlink protection can all refuse an image crawler while letting a browser through. If your server logs show requests claiming to be Googlebot-Image, verify them the way Google describes: a reverse DNS lookup on the IP should return a name in googlebot.com, google.com or googleusercontent.com, and a forward lookup on that name should return the same IP (Verifying Googlebot). Then check what your server answered.
Staging leaks. A staging robots.txt that disallows everything, copied to production, blocks the home page and the icon in one line. Diff the deployed /robots.txt against what you intended after any infrastructure change.
Wrong format from a generator. An image pipeline that converts every upload to WebP or AVIF can convert the favicon too, because both formats are small. Both are fine for page images, which the image format comparison covers, but neither appears on Google's favicon format list. Keep a PNG or ICO for the icon.
An SVG that never gets a raster partner. An SVG favicon is a good browser icon, and trimming it for size helps tabs load it quickly. It still needs an ICO or PNG declared beside it for Google.
For a site that also ships install icons for phones, those manifest sizes are a separate set from the Search favicon; the app icon sizes guide for iOS, Android and PWAs lists them. If every check here passes and you are rebuilding the icon set anyway, start from the minimum file set in the favicon sizes and formats guide, which already includes a square raster larger than 48 pixels for Google.
Favicon in Google Search: Questions and Answers
How long does it take for a favicon to update in Google?
Google's favicon page says crawling "can take anywhere from several days to several weeks". Requesting indexing of the home page in URL Inspection queues it once; repeating the request does not speed it up. If you changed the favicon URL, the wait starts again from the change.
Why does my favicon show in the browser tab but not in Google?
Browsers accept formats and fallbacks Google does not. The usual causes are an SVG-only declaration, an icon path blocked for Googlebot-Image in robots.txt, or a link tag added by script. Check 3 and check 5 above separate them.
Does a favicon for Google have to be a multiple of 48 pixels?
Not under the current guidelines. Google's page, updated October 27, 2026, requires a square of at least 8 by 8 pixels and recommends larger than 48 by 48. Sizes such as 64, 180 or 512 pixels are all fine.
Can I use an SVG favicon for Google Search?
Not as the only icon. Google lists BMP, GIF, ICO, PNG, JPEG, PPM and TIFF. Keep the SVG for browsers and declare an ICO or PNG as well.
Can a site in a subfolder have its own favicon in Google?
No. Google supports one favicon per hostname, and its page says home pages in a subdirectory, such as example.com/news, are not supported. A separate subdomain can have its own.
Does blocking Googlebot-Image hide my favicon?
Yes. Google's crawler documentation says Googlebot-Image preferences apply to favicons in Search. Add an Allow rule for each declared icon path if you block that crawler elsewhere.
Sources Checked November 13, 2026
- Google Search Central, "Define a favicon to show in search results" (last updated October 27, 2026), https://developers.google.com/search/docs/appearance/favicon-in-search: link tag on the home page header, supported rel values, one favicon per hostname, subdirectory home pages unsupported, Googlebot and Googlebot-Image crawling and redirects, square and at least 8x8px, larger than 48x48px recommended, supported formats, stable URL, default icon for inappropriate imagery, no guarantee, several days to several weeks, URL Inspection, feedback form. Checked November 13, 2026.
- Google Crawling Infrastructure, "Google's common crawlers" (last updated October 30, 2026), https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers: Googlebot-Image tokens and its effect on favicons, Google-InspectionTool tokens and use. Checked November 13, 2026.
- Google Crawling Infrastructure, "How Google interprets the robots.txt specification" (last updated October 23, 2026), https://developers.google.com/crawling/docs/robots-txt/robots-txt-spec: group selection, precedence, wildcards and examples, case rules, host and protocol scope, status code handling, 24 hour caching. Checked November 13, 2026.
- Google Search Central, "Ask Google to recrawl your URLs" (last updated December 10, 2025), https://developers.google.com/search/docs/crawling-indexing/ask-google-to-recrawl: owner or full user requirement, quota, repeat requests, timing, sitemaps for many URLs. Checked November 13, 2026.
- Google Crawling Infrastructure, "Verifying Googlebot and other Google crawlers" (last updated March 20, 2026), https://developers.google.com/crawling/docs/crawlers-fetchers/verifying-googlebot: reverse and forward DNS steps and domains. Checked November 13, 2026.
- Search Console Help, "URL Inspection tool", https://support.google.com/webmasters/answer/9012289: live test, View tested page, Crawl allowed field, Request indexing limits and timing. Checked November 13, 2026.
- Search Console Help, "robots.txt report", https://support.google.com/webmasters/answer/6062598: top 20 hosts, fetch status, checked-on time, recrawl request. Checked November 13, 2026.
- MDN Web Docs, "Common media types" (last modified October 6, 2026), https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/MIME_types/Common_types: image types for .ico, .png, .gif, .jpg, .bmp, .tiff, .svg, .webp, .avif. Checked November 13, 2026.
- Next.js documentation, "favicon, icon, and apple-icon" (last updated March 3, 2026), https://nextjs.org/docs/app/api-reference/file-conventions/metadata/app-icons: generated link output and query. Checked November 13, 2026.
- curl 8.5.0, built-in help (curl --help all): meanings of -I, -L, -A, -o, -s and -w. Checked November 13, 2026.
The header table, the file output, the ICO directory listing, the redirect count, the script output and its 608 byte size were measured by this site's editorial team on November 13, 2026 against https://lucky.graphics. The six robots.txt cases are our own application of the quoted specification rules, not examples printed by Google.