In nopCommerce (out of the box), the Google Analytics script (if enabled) is designed to be placed right before your </body> tag. But, there are some users / developers who prefer to place the Google Analytics script in the <head> section.
So what is the best location for your GA script? Well, practically the Google Analytics code will work regardless of where you put it on the page.
According to Google:
For more information, see this (source):
https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingOverview
This is how GA script location looks like by default in nopCommerce:

So, let us go over the process if you wish to change the placement of your Google Analytics script from </body> to <head>.
Step 1: First, make sure you are using the source code version of nopCommerce (For more info, see web vs source code)
Step 2: Now, go to this location in your code: \Plugins\Nop.Plugin.Widgets.GoogleAnalytics\GoogleAnalyticPlugin.cs

Step 3: Open this file "GoogleAnalyticPlugin.cs" and find this code:
public IList<
string
> GetWidgetZones()
{
return new List<
string
>
{
"body_end_html_tag_before"
};
}
Step 4: As, you can see in the default code, the widget zone that is defined for this plugin is "body_end_html_tag_before". Let's change the widget zone to "head_html_tag". Your updated code should look like this:
/// <
summary
>
/// Gets widget zones where this widget should be rendered
/// </
summary
>
/// <
returns
>Widget zones</
returns
>
public IList<
string
> GetWidgetZones()
{
return new List<
string
>
{
"head_html_tag"
};
}
Step 5: Now, make sure to rebuild "Nop.Plugin.Widgets.GoogleAnalytics" plugin and "Nop.Web" as well.
Step 6: That's it - Run your nopCommerce website and view the source code. You should see the Google Analytics script in the <head> section like this:

Hope it helps!