How to View Your Chrome History File (It’s SQLite)
Chrome’s history page is fine for a quick look. But it hides a lot. You can’t easily see how often you visited a site, what you searched for months ago, or export everything to a spreadsheet.
Behind the scenes, Chrome keeps your browsing history in a SQLite database. It’s a single file called History, with no extension. Once you know where it is and how its tables work, you can open it, search it and export it in minutes.
This guide shows you where to find the Chrome History file on every system, how to open it safely, and the queries that turn Chrome’s odd timestamps into real dates.
Where is the Chrome History file?
It’s inside your Chrome profile folder. The exact path depends on your system.
| System | Path |
|---|---|
| Windows | %LOCALAPPDATA%\Google\Chrome\User Data\Default\History |
| Mac | ~/Library/Application Support/Google/Chrome/Default/History |
| Linux | ~/.config/google-chrome/Default/History |
A few notes:
- Default is your first Chrome profile. Extra profiles live in folders called
Profile 1,Profile 2and so on. - The file is simply called
History. There’s no .db or .sqlite ending. - On Windows, paste the path into the File Explorer address bar. On Mac, press Cmd, Shift and G in Finder and paste it.
Microsoft Edge, Brave and other Chromium browsers use the same format. For Edge on Windows, look in %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\History.
Step 1: Close Chrome and copy the file
Chrome keeps the History file open and locked while it runs. If you try to open it directly, you’ll get a “database is locked” error or stale data.
- Quit Chrome completely. On Windows, also check the system tray, since Chrome can keep running in the background.
- Copy
Historyto your Desktop. - If you see
History-journalnext to it, copy that too. - Reopen Chrome if you like. You’ll work on the copy.
If you still get lock errors, see our guide to the database is locked error.
Step 2: Open the copy
Open our free online SQLite viewer and drop the copied History file onto the page. In the file dialog, you may need to switch the type filter to “All files,” since the file has no extension.
Your history stays on your computer. The viewer runs inside your browser and never uploads the file. That’s important, because your browsing history is very personal.
You’ll see a list of tables in the sidebar. Here are the ones that matter.
The tables inside Chrome History
| Table | What it holds |
|---|---|
| urls | One row per unique web address, with its title, visit count and last visit time |
| visits | One row per individual visit, linked to urls |
| keyword_search_terms | Words you typed into the address bar to search |
| downloads | Files you downloaded, with where they came from and where they were saved |
| downloads_url_chains | The full chain of redirect URLs for each download |
| segments | Data used for the “most visited” tiles |
Most people start with urls. It’s the simplest overview of every site you’ve visited.
Step 3: Convert Chrome’s timestamps
Chrome doesn’t use normal Unix time. It counts microseconds since January 1, 1601. That’s why you see huge numbers like 13372000000000000.
To turn them into readable dates, divide by one million to get seconds, then subtract 11644473600, which is the number of seconds between 1601 and 1970:
datetime(last_visit_time / 1000000 - 11644473600, 'unixepoch')The result is in UTC. To show your local time instead, add the 'localtime' modifier:
datetime(last_visit_time / 1000000 - 11644473600, 'unixepoch', 'localtime')Useful queries
Paste these into the Run SQL tab.
Most visited sites
SELECT title, url, visit_count
FROM urls
ORDER BY visit_count DESC
LIMIT 50;Recent history with readable dates
SELECT datetime(last_visit_time / 1000000 - 11644473600, 'unixepoch', 'localtime') AS last_visit,
title, url
FROM urls
ORDER BY last_visit_time DESC
LIMIT 100;Every single visit
The urls table shows only the last visit for each address. For every visit, join visits to urls:
SELECT datetime(v.visit_time / 1000000 - 11644473600, 'unixepoch', 'localtime') AS visited,
u.title, u.url
FROM visits v
JOIN urls u ON u.id = v.url
ORDER BY v.visit_time DESC
LIMIT 200;Note that the url column in visits holds the id of a row in urls, not the address itself.
History for one website
SELECT datetime(last_visit_time / 1000000 - 11644473600, 'unixepoch', 'localtime') AS last_visit,
title, url, visit_count
FROM urls
WHERE url LIKE '%youtube.com%'
ORDER BY last_visit_time DESC;Your address bar searches
SELECT k.term, u.url
FROM keyword_search_terms k
JOIN urls u ON u.id = k.url_id
ORDER BY u.last_visit_time DESC
LIMIT 100;Downloads
SELECT datetime(start_time / 1000000 - 11644473600, 'unixepoch', 'localtime') AS started,
target_path, tab_url, total_bytes
FROM downloads
ORDER BY start_time DESC;Chrome’s schema changes from time to time. If a column name doesn’t exist in your file, check the Structure tab for that table and adjust the query.
A worked example: which sites did I use most this month?
Here’s a practical question you can answer in a couple of minutes. We’ll count visits per website for the last 30 days.
The trick is to pull out the domain from each URL. SQLite doesn’t have a built-in function for that, but we can use substr and instr to cut the address after “//” and before the next “/”:
SELECT
substr(u.url, instr(u.url, '//') + 2,
instr(substr(u.url, instr(u.url, '//') + 2), '/') - 1) AS site,
COUNT(*) AS visits
FROM visits v
JOIN urls u ON u.id = v.url
WHERE v.visit_time / 1000000 - 11644473600 > strftime('%s', 'now', '-30 days')
GROUP BY site
ORDER BY visits DESC
LIMIT 25;Run it and you get a ranked list of your 25 most visited sites for the month. Export it as CSV and make a bar chart in Excel or Google Sheets.
This kind of query is why the SQLite file is more useful than Chrome’s built-in history page. You can ask questions Chrome’s interface was never designed to answer.
Reading a History file from another computer
You can copy a History file from one computer and open it on another. This is handy if you’re helping a family member, or checking an old laptop before you wipe it. The file doesn’t depend on the computer it came from. The same queries work everywhere.
Just remember that this is someone’s private browsing record. Only do it with their permission, and delete the copy afterwards.
Step 4: Export your history
Once a query shows what you want, click Export CSV. You can open the file in Excel or Google Sheets, sort it, filter it and make charts. Our SQLite to CSV guide and SQLite to Excel guide cover the details, including date formats.
Why some history is missing
You might notice gaps. Common reasons:
- Chrome deletes old history. Chrome keeps roughly the last 90 days of visit history by default.
- You cleared history. Deleted history is removed from the database.
- Incognito windows never write to the History file.
- Other profiles and devices have their own files. Synced history from other devices may not all be in your local file.
- Recent visits in the journal. If you copied the file while Chrome was running, the latest visits may be missing.
Chrome’s other SQLite files
The History file isn’t the only one. Your profile folder holds several SQLite databases:
- Cookies stores cookies. Values are encrypted, so you’ll see names and sites but not readable values.
- Login Data stores saved passwords, also encrypted.
- Web Data holds autofill entries.
- Top Sites and Shortcuts support the new tab page and address bar.
Treat all of these as private. Don’t share copies with anyone you don’t trust.
Privacy tips
- Work on a copy, never the live file.
- Delete your copies when you’re done.
- Don’t upload your History file to websites that process it on a server. Our viewer keeps it on your device.
- If someone else uses your computer, remember that anyone with access to your user account can read this file.
Want the technical detail? See the official SQLite date and time functions reference.
Frequently asked questions
Can I open Chrome history without closing Chrome?
Copy the file first. Opening a copy usually works even while Chrome runs, though the very latest visits may be missing.
Why is the History file so big?
It stores many tables and indexes, plus free space left after deletions. Size alone doesn’t mean much.
How do I read Edge or Brave history?
The same way. They use the same Chromium History format. Only the folder path is different.
Is there a way to see history older than 90 days?
Only if you have an older copy of the History file, for example from a backup. Chrome removes older visits over time.
Summary
Chrome stores your browsing history in a SQLite file called History in your profile folder. Close Chrome, copy the file, and open the copy in our free online SQLite viewer. Use the urls and visits tables, convert timestamps with the 1601 formula, and export anything you need to CSV. To learn more about exploring files like this, read how to view the contents of a SQLite database.








One Comment
Comments are closed.