For a personnal page I use the MultiViews options in Apache to determine which page he should see depending on his locale.
Here is what I do.
Options MultiViews
AddLanguage fr .fr
AddLanguage en .en
<IfModule mod_negotiation.c>
LanguagePriority fr en
</IfModule>
I am wondering if it is bad for SEO to do this since Googlebot will probably fall on ‘fr’ or ‘en’ but not both.
Would it be fixed if I add a link inside my page to the different language page.
There are several fall-back approaches when doing language negotiation or content negotiation in general. If no match is found, you could either send or redirect to the default choice or present a list of available choices. (See Common HTTP Implementation Problems – Guideline 9: Provide default and fall-back solutions)
I’m not sure if Google sends a list of preferred languages at all (and I rather doubt that). But in case of a missing language preference in the HTTP header and no other hint on the preferred language (i.e. in the URI), I would send a list of available choices. Then Google, other search engines, and even your human users can pick every language variant available.