In Google Chrome, is there a built-in method to make an HTML file I can save to my local machine, like the file for bookmarks?

If not, is there an extension that does the same?

  • Bear in mind that today (Feb 2018), and for quite a few months now, Chrome allows you to link a device's data (history, bookmarks, etc), with an account. So, you can sync a google account with a device and then you can access all that information from any other device using that account. I know the question was about exporting it but there is REALLY no need to do that (I was obviously making myself the same question today, which got me here, but then I thought that there should be a better way, this is it). – newbie Feb 28 at 11:20
up vote 25 down vote accepted

It's even simpler than using an extension: the History page in Chrome is already an HTML page, as are all the other panes and pages in Chrome.

Simply right-click on an empty part of the page, select Save As... and save as full HTML. If you re-open in Chrome, it'd render the same, icons and all. If you try opening the resulting page in a different browser, you'd still get all the history data, just not the styles and icons.

Update May 2016

Since Google constantly changes the way internal pages (history, bookmarks, settings etc.) are rendered, the original answer is no longer accurate. I.e. in Chrome 52 (May 2016) the History URLs appear inside an iframe with a paging mechanism.

For posterity's sake, the best method to get all the bookmarks data (url + date) as a CSV file is described in this article.

TL;DR:

  1. Make sure you have sqlite3 installed in your system. You can use compiled binaries for Windows systems.
  2. Locate the History file (on Mac: cd ~/Library/Application\ Support/Google/Chrome/Default/. On Windows: cd "%LocalAppData%\Google\Chrome\User Data\Default".
  3. Copy the file History to another location (you can't use the original while Chrome is open).
  4. From a command line: C:\> sqlite3 History sqlite> .headers on sqlite> .mode csv sqlite> .output my-history.csv sqlite> SELECT datetime(last_visit_time/1000000-11644473600,'unixepoch','localtime'), url FROM urls ORDER BY last_visit_time DESC

You should now have a file called my-history.csv containing all URLs and dates.

Script as a gist can be found here.

Hopefully this works for you in 2016. Can't promise it will in 2019 though :)

  • 2
    Actually, that doesn't really work, because the history is iframed and paged, so you only get a tiny little bit of your browsing history. – Quandary Sep 7 '13 at 18:15
  • 1
    It worked on Chrome 28 on my Mac. But even if it doesn't work for you, right click in the I frame and choose "save frame source" – Traveling Tech Guy Sep 8 '13 at 6:03
  • 3
    Even if it works, it will only grab the current results, not the whole history. – Synetech Dec 28 '13 at 21:15
  • 1
    @Noumenon - done. – Traveling Tech Guy Sep 25 '17 at 3:47
  • 1
    As on Jan 2018 - Chrome 63 - Windows 10, the sqlite method works. it gives following fields - url, title, visit count, last visit time. Two more fields - typed count and hidden do not make sense to me. Use select *, datetime(last_visit_time / 1000000 + (strftime('%s', '1601-01-01T05:30:00')), 'unixepoch') as visit_time from urls to convert last visit time to human readable form. Note that you need to substitute 05:30:00 to your timezone. – matrix Jan 20 at 22:48

In Mac:

cd "~/Library/Application Support/Google/Chrome/Default"
sqlite3 History "select datetime(last_visit_time/1000000-11644473600,'unixepoch'),url from  urls order by last_visit_time desc" > ~/history_export.txt

In Windows:

cd "%LocalAppData%\Google\Chrome\User Data\Default"
sqlite History "select datetime(last_visit_time/1000000-11644473600,'unixepoch'),url from  urls order by last_visit_time desc" > history_export.txt

This could take a really long time if you are on Windows and do not have SSD.

  • And where does the HTML part come in? – Synetech Dec 28 '13 at 21:16
  • That's a plain text. However it could be useful for Mac users because the previous method works only in Windows – Antonio Dec 28 '13 at 22:18
  • Yes, I know, but the question is about how the Chrome history can be exported to HTML, not plain-text. – Synetech Dec 28 '13 at 22:20
  • 6
    A couple of things have changed since this answer <superuser.com/a/694283/459638> was written (on the mac side of things at least, can't speak for Windows side). 1. sqlite is now (always was?) shipped with OSX so no need to install it. 2. The path for Chrome's app data has changed. Now the command you should use is: cd ~/Library/Application\ Support/Google/Chrome/Default/ – Callum Gare Jun 17 '15 at 4:45
  • I'm on Mac OS 10.10.5 Yosemite and I'm not seeing the sqlite3 file in the location specified. Does anyone know where it is now? – Scott S. Sep 8 '15 at 15:28

There is a tool called Chrome History View that exports to several different formats, including HTML. There is a writeup of the tool here.

enter image description here

  • How do you set the Chrome user-data-dir if you're not using the default? Also, is there an IE version? – Pacerier May 25 '16 at 18:46
  • @Pacerier there is an option to set a specific history file, in [options]--[advanced option] – holly Aug 18 '16 at 14:47
  • @Pacerier BrowserHistoryView, also from Nirsofr, can manage the history of several browsers at once, including IE, Firefox, Chrome and a few others. – GabrielB Sep 25 '17 at 5:13

I just created a Chrome extension that exports your Chrome history in csv and json called Export History.

You can open the json file in Chrome and view it like a webpage if you install the JSONView extension, and can open the csv file in Excel or Numbers.

  • 1
    I have 2 questions: 1) Is it paid extension or payment is only an option 2) Why it requires me to login into google account? – yatsa Jan 19 '15 at 9:09
  • 1) payment is an option for CSV exports; JSON exports are free. 2) the google login is for the Google payment system, which you only need if you upgrade. I should fix that to only require a login if you're upgrading. – cgenco Jan 20 '15 at 11:56
  • 1
    The reviews indicate that it is nag-ware and that the dates are off (you need to account for time-zone differences). – Synetech Dec 17 '15 at 18:03
  • @Synetech I'm still not sure a reliable way to account for time zones because of how Excel handles them, but figuring it out is top on my todo list! – cgenco Jan 21 '16 at 22:21
  • @cgenco, It still insists on sign-in. Why is signing-in required to tryout the app? – Pacerier May 8 '16 at 8:01

protected by Community Mar 11 '16 at 18:44

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.