Read Your Chrome History thumbnail

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.

SystemPath
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 2 and 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.

  1. Quit Chrome completely. On Windows, also check the system tray, since Chrome can keep running in the background.
  2. Copy History to your Desktop.
  3. If you see History-journal next to it, copy that too.
  4. 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

TableWhat it holds
urlsOne row per unique web address, with its title, visit count and last visit time
visitsOne row per individual visit, linked to urls
keyword_search_termsWords you typed into the address bar to search
downloadsFiles you downloaded, with where they came from and where they were saved
downloads_url_chainsThe full chain of redirect URLs for each download
segmentsData 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.

Similar Posts

One Comment

Comments are closed.