Since we are forced to spend most of our time using a web browser, it becomes natural to try improving the ergonomics of this tool in any way possible, to the point that even a single small improvement has a devastatingly positive effect in the long run for this Holy Grail we all long for: productivity.
What if we could improve most of the browser "hot paths" usage patterns? The multiplier in terms of productivity would be crazy positive.
Small sidenote: by "productivity" I don't refer to the amount of actions performed in a span of time, I am not a machine desperately typing all the time on the keyboard, I often pause and think then go back to the browser, then switch to another window and so on - there is a lot of small context switch and here is the impact on productivity (that drives me nuts).
§ Why more shortcuts
Minimizing the cost of the context switch, the simple act of moving the hand to a mouse or to the trackpad has a non-negligible cost, more or less the same when driving a car and checking the tachometer and then go back to looking at the road.
Among the various GUI tools with keyboard shortcuts, modern web browsers - with no exceptions - certainly do not shine as great examples. It might not be obvious, let's try to observe it from the standpoint of "document containers" - just think to any blog, Stack Overflow, any API documentation website or a GitHub repository: I'm not visiting a website, I'm reading documentation. Under this light, I think that:
- documents visualization is inconsistent (every damn website must be a different circus of colors, useless visual components and moving stuff)
- they're not accessible and have terrible navigation patterns (good luck visiting anything with a textual browser)
- they're wasteful of computing resources and a source of distraction
I mean, even YouPorn understands how to design a website focused on the content.
So, back to the topic, I think I can generalize and safely say that anyone using a lot a computer knows that a textual interaction is the only choice to be really proficient. Not a textual user interface, rather a textual interaction: I don't know if such definition even exists but basically the more I use the keyboard, the better.
So, how to add more of this textual interaction to a GUI tool such as a browser? Enter VIM vixen, possibly already an old friend of many.
By combining Firefox shortcuts with VIM Vixen, one can achieve a point where the mouse is barely needed. Some of my most used shortcuts are:
j,k
scroll line up/down (a timeless classic, replaces the arrow keys)d
close a tab (replacesctrl+w
)u
reopen a closed tab (replacesshift+ctrl+w
)gr
reload the page in reader mode (useful to read articles without distractions) (replacesctrl+alt+r
)/
search in page (replacesF6
)r
reload page (replacesF5
)gg / G
scroll to the bottom and top of the page (replaceHome / End
keys)
These keybindings are shorter and better positioned than the corresponding Firefox ones. This is what I mean by "slight changes with huge benefits": there is a big difference between pressing d
and ctrl+w
20 times a day.
Above all the feature I like most is a powerful shortcuts overlay to jump to hyperlinks. Keybindings change according to the area of the page: mid-page content usually has the keyboard home row.

When there are many links, VIM Vixen resorts to keybindings on a second sublevel: instead of a, s, d, f, ... , you'll start seeing aa, as, ad, af, and so on. Sometimes it's a bit messy but I find it still more efficient than moving my hand to the mouse/trackpad.

Another great feature (though I still have to get used to) is the command menu with t
: useful to access bookmarks, browsing history, open a new tab and type a search query, etc.

Clearly this all means that I must pay attention to what I press on the keyboard: it's easy to trigger the wrong command.
§ Closing thoughts
Keyboard shortcuts affect a lot of IT tools, browsers included. The modern switch to a graphical user interface brought a dumbification of the interation and we have lost the art of user interfaces designed for density of information, trading efficiency for a visual design language, metaphors and eye candy (which is some context make sense, of course). However tools such as VIM Vixen show that some people won't give up on bringing on a GUI the shortcuts they're familiar with.
VIM Vixen, available also for Chrome, is not the only choice: there are a bunch of other Firefox extension doing the job; I think they're mostly all the same, feature-wise. I would ensure to choose one with many download to avoid and cut-off clones and half-baked extensions.
A more radical approach worth mentioning are GUI browsers with a fully textual interaction such as nyxt and qutebrowser. The underlying engines are the same of the usual GUI browsers (WebKit, Blink, ...) but the frontend part is completely custom. I don't use them because they are released by third parties and (perhaps this is my speculation) this intermediate step doesn't allow updates to the engine to reach me fast enough. And being web browsers the security nightmare they are, I feel comfortable with receiving updates as fast as possible.
This said I encourage you to read this interesting article on what makes Nyxt different from using a browser extension.