A repository of favicons for the top domains on the internet, automatically updated on a weekly basis.
This repository hosts a collection of favicon images for the world's most popular domains, sourced from Google's favicon service. The collection is refreshed weekly and available in several formats:
- Individual PNG files in the
assets
branch - Compressed archives of various sizes in the Releases section
- Custom builds via manual workflow triggers
Individual favicons are stored in the assets
branch and are named according to their domain name:
google.com.png
for google.comgithub.com.png
for github.com
Access patterns:
https://raw.githubusercontent.com/xixu-me/favicons/refs/heads/assets/favicons/DOMAIN_NAME.png
For better performance and global availability, you can access the favicons through jsDelivr CDN:
https://cdn.jsdelivr.net/gh/xixu-me/favicons@refs/heads/assets/favicons/DOMAIN_NAME.png
Pre-built archives are available in the Releases section:
- Navigate to the Releases page
- Find the desired release (named by date and domain count)
- Download the
archive.tzst
file - Extract using the tzst:
# Install tzst if you don't have it
pip install tzst
# Extract the archive
tzst x archive.tzst
Archives are available with the following domain counts:
- 200
- 500
- 1,000
- 2,000
- 5,000
- 10,000
- 20,000
- 50,000
- 100,000
- 200,000
-
Click the Fork button at the top right of this repository
-
Clone your forked repository:
git clone https://github.com/xixu-me/favicons.git cd favicons
This workflow requires a Cloudflare API token to access the domain ranking data:
- Go to your fork's Settings > Secrets and variables > Actions
- Create a new repository secret:
- Name:
CLOUDFLARE_API_TOKEN
- Value: Your Cloudflare API token with Radar access
- Name:
- Go to the Actions tab in your repository
- Select "The Workflow" from the list of workflows
- Click "Run workflow"
- Select the desired domain count from the dropdown
- Click "Run workflow" to start the build
The workflow will:
- Validate your input
- Fetch the top domains from Cloudflare Radar
- Download favicons for each domain
- Commit the favicons to the
assets
branch - Create a compressed archive
- Create a release with the archive
You can modify the run.yml file to change:
- The schedule (currently weekly on Sundays)
- The favicon source URL
- The error handling logic
- The naming conventions
Favicons are named using the domain name:
example.com
→example.com.png
subdomain.example.com
→subdomain.example.com.png
This ensures unique filenames for all domains and preserves the complete domain information.
The workflow includes:
- Timeout handling (15 seconds per favicon)
- Retry logic (3 attempts)
- Generic/default favicon detection
- Empty file detection
- High failure rate detection (stops if >80% of downloads fail)
The favicon images are the property of their respective domain owners. This repository simply provides an aggregation service for easier access and does not claim ownership of any favicon images.
This repository fetches favicons from Google's favicon service, which may impose rate limits. If you're running your own build and encounter high failure rates, try reducing the domain count or adding delays between requests.
The top domains list is provided by Cloudflare Radar and represents their assessment of domain popularity. Domain rankings change over time and may not reflect the most current web traffic patterns.
Running your own builds requires:
- A Cloudflare account
- API access to Cloudflare Radar
- A valid API token with appropriate permissions
This project's code is licensed under the MIT License. This license applies only to the code in this repository and not to the favicon images themselves.
- Cloudflare Radar for providing domain ranking data
- Google's favicon service for providing the favicon images
- tzst for efficient compression
Note: This project is not affiliated with or endorsed by Cloudflare, Google, or any domain owners whose favicons are collected.