Migrating a .seo file to SEO Note 2.1

The classic SEO Note keeps everything in one .seo file. SEO Note 2.1 keeps everything in one .seonote file. They are different formats, and 2.1 does not open the old one in place — it imports it. This page is what that means in practice: what arrives intact, what gets converted, what is lost, and how to check before your old build becomes your backup.

Both formats are one file, and neither is a folder of text files. .seo is an OLE compound document — the same container old Microsoft Office used; .seonote is a SQLite database. That is why migration is a one-shot copy rather than a point-in-place, and why you should not let the classic build and 2.1 edit the same data at the same time.

The procedure

  1. Copy the .seo file. The importer opens it read-only, but a copy makes everything reversible.
  2. Start SEO Note 2.1 and create or open the file that will hold your notes (.seonote; a new file lands in the app data folder unless you pick another path).
  3. Run the import and point it at the .seo copy. Import appends into the file that is open, so if you want a clean target, create an empty file first.
  4. Type the password if the file is protected. A wrong password is reported, not silently swallowed.
  5. Read the warnings the importer prints. They list what was converted, what was skipped and why.
  6. Save, close, reopen. Then check the parts you actually use — see the checklist below.

What arrives intact.

  • The tree itself: parents, children and their order, from every page in the old file. Multi-page files become real tabs/folders in the new one.
  • Note titles, and the created and modified dates when the old file carried them (otherwise the import time is used).
  • Per-node text and background colors, bold / italic / underline / strikethrough / grayed / highlight flags, the read-only mark, and checkbox state — which becomes a done task in the Kanban view.
  • Node icons, for the part of the old icon strip that has been catalogued. An uncatalogued number imports without an icon rather than with a wrong one.
  • Page tab colors and page icons.
  • Bookmark slots (Ctrl+0 to Ctrl+9) when the node they pointed at can be found by name and path; unmatched slots are skipped and named in the warnings.
  • Reminders, best-effort.
  • Note content: plain text stays plain, HTML stays HTML (with a tag-stripped plain-text copy added so search works over it).

What is converted rather than copied. Rich text (RTF) becomes Markdown through a converter, and that conversion drops tables and some embedded destinations. In practice a bold heading survives, a table does not. This is the single most common reason an old note looks thinner than it was.

What does not arrive.

  • Per-note view passwords. The note itself is imported, and the importer warns you that a note which used to demand a password is now readable — decide whether you want to seal it again in 2.1.
  • Embedded objects. 2.1 parses four streams of the old container (file information, contents, bookmarks, reminders); attachments are not among them, so pictures and files pasted into an old note do not carry over. If one matters, open it in the classic build, save the picture out and re-insert it in 2.1.
  • File-level metadata (author, description, comments). The importer reads them but does not apply them to the new file.
  • The "currently selected note" cursor state — a cosmetic piece of the old file.

Encrypted old files. A .seo file can carry a password, and the legacy protection is Blowfish in ECB mode over the whole content stream, keyed by the password bytes in the ANSI code page. The importer detects it, asks, and fails loudly on a wrong password. Because the key is code-page dependent, typing the right password with the wrong keyboard layout active is a real way to fail — retry in the layout you originally used.

Size and time. The importer refuses files over 100 MB and reports progress while reading. A tree of a few thousand notes takes a short while and much less than that limit; if your file is near it, import page by page from the classic build's export instead, or tell us on the support page and we will look.

Checklist before you trust it.

  1. Search for five phrases you know are inside the notes, including one in Cyrillic if your notes are Russian — search is the first thing that silently differs between formats.
  2. Open three notes you care about and compare side by side with the classic build.
  3. Count top-level nodes and check the deepest branch survived.
  4. Check the colored nodes and the bookmark slots you use daily.
  5. Close and reopen the file; confirm your edits from the previous step are still there.

Going back. Nothing about importing destroys the old file, and 2.1 keeps up to ten backups of the file it writes. So the rollback path is either "keep using the .seo file in the classic build" or "restore a .seonote backup". What you should not do is edit both copies for a month and then try to merge — there is no merge tool between the formats.

Other programs. The same importer family also reads Evernote .enex, Google Keep JSON export, TreePad and KeyNote .knt. The Windows-only rule applies to the legacy native formats (.seo, TreePad, KeyNote); Evernote and Keep files import wherever 2.1 runs.

Download SEO Note 2.1 · 2.1 vs 1.3.34: which build · Backing up your notes file · FAQ

Mini FAQ

Does SEO Note 2.1 open a .seo file directly? No. 2.1 works on a .seonote file and reads .seo through the importer, which copies the content into the file you currently have open. Your .seo file is opened read-only and is never written to, so it stays as a working backup.

My .seo file has a password. Will 2.1 read it? Yes, if you type that password: the importer asks for it and reports a wrong password instead of producing a half-read file. The legacy scheme is Blowfish in ECB mode over the content stream with the password bytes taken in the ANSI code page, so a password typed on a keyboard layout different from the one you set it on can legitimately fail — retry with the original layout.

What is the fastest way to check an important file? Import a copy into a throwaway .seonote file and search it for five phrases you know are in the notes, then open three notes you care about and look at colors and formatting. If the importer printed warnings, read them: they name exactly what was converted or skipped.

Can I keep editing the .seo file after migrating? You can, but two copies then diverge: 2.1 writes to .seonote, the classic build writes to .seo, and neither sees the other's changes. Pick one file as the working copy and treat the other as the frozen backup.

I am on Linux and have only a .seo file. What now? Import is implemented and tested on Windows, so on Linux the app refuses with a clear message. Borrow any Windows machine for one session: install 2.1 there, import, save, and carry the .seonote file to Linux. The same route works for TreePad and KeyNote files.