Take the 2-minute tour ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

I have a website made up of only HTML pages. Instead of copy pasting the Google Analytics code on every .html file, is there a better way to include the Google code on every page?

share|improve this question
add comment

8 Answers

up vote 5 down vote accepted

I see everyone recommending a server side solution for this, which is fine, but if you're going to have to go through all of their files and append a server side include into your pages why not just put the Google Analytics code into a separate file and include it using a <script> tag? That way there is no server side processing required which is a performance gain.

<script type="text/javascript" src="/javascripts/ga.js"></script>

share|improve this answer
2  
+1 Yep this is definitely the right best answer!!! There is also a SO question on this: stackoverflow.com/questions/1131079/… –  Marco Demaio Jul 28 '11 at 13:39
    
I hadn't considered this, but I would have thought the blocking nature of Javascript would have made this less efficient than SSI? Would need to run tests top confirm of course. –  Toby Jul 28 '11 at 16:15
1  
Yep, you'll lose the async goodness if you have the script in an external file: stackoverflow.com/questions/3263818/… –  Ciaran Jul 28 '11 at 17:14
    
@Ciaran: From the link you posted: what if the _gaq variable is globally scoped ? Will the async analytics still be affected ? –  brainydexter Jul 28 '11 at 19:43
1  
I think the analytics should work, but it won't load asynchronously. External javascript files are blocking: code.google.com/speed/articles/include-scripts-properly.html –  Ciaran Jul 29 '11 at 1:23
show 2 more comments

I think the quickest is to make footer.php for example and add the code there. After that or before that footer have to appear as element in every page of your website.

share|improve this answer
    
I have simple html pages, no php :( –  brainydexter Jul 28 '11 at 6:08
    
@brainydexter: why don't you move you site on to an hosting with PHP, i.e. qualityhostonline.com it would cost you 3.95 bucks / month. I think they also take care to help you moving your site for free on to their servers. I never tried how they help moving the site, because I can move the sites on my own. –  Marco Demaio Jul 28 '11 at 11:31
add comment

Server Side Includes could be your way forward.

http://en.wikipedia.org/wiki/Server_Side_Includes

They are generally ignored because scripting languages like PHP do a better job, but these will get the job done for you.

share|improve this answer
    
+1 Great link, thanks for sharing, I'm used to look at Apache docs, but the Wikipedia page is done really well. –  Marco Demaio Jul 28 '11 at 12:37
add comment

FYI

using Toby suggestions this is the code to put in ALL your HTML pages just before the </head> closing tag (specific for Google Anaytics):

<!--#include virtual="footer.html" --> <!-- trailing space char is not a typo -->
</head>

Then you create a file called footer.html where you just write into it the code provided by Google Analytics, and nothing else i.e.:

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-...']);
_gaq.push(['_trackPageview']);
...
</script>

With PHP it works in the same way, simply add this PHP code in ALL your HTML pages just before the </head> closing tag:

<?php include("footer.html"); ?>    
</head>
share|improve this answer
    
@brainydexter: John Conde answer is the simple right thing to do, with no need of server side scripting nor ssl. I live my answer here just for general knowledge. –  Marco Demaio Jul 28 '11 at 13:40
add comment

It's been a really long time since I've used a WYSIWYG editor (probably 10 years) but I seem to recall Dreamweaver (and perhaps others) allowed you to add "template" items which would populate to every page listed in the current site. If you're using an editor such as this I'd look through their documentation or ask in their support forums first.

share|improve this answer
add comment

The down side to the suggestions so far is that they all require visiting each html page to add code. Sounds to me like the short answer is that you DO have to touch every page.

Ok, maybe I am being overly simplistic, but what about using a find & replace utility? Chances are that whatever software you use has find & replace functionality, and you can add something to every page quickly. For instance, if you want it to be the last thing before the tag, just find that tag and replace it with the code you wish to insert plus the tag.

Placing the GA code in a js file or a ssi file might be a big help down the road for any changes you need to make. That way you would only have to touch one file instead of revisiting all of them.

share|improve this answer
add comment

If it's a Linux server, put the google code in a local js file like the top answer said, then say something like:

    STR1='<head>'; STR2='<head><script type="text/javascript" src="/javascripts/ga.js"></script>';  replace "${STR1}" "${STR2}" -- *.html

I just tried on Ubuntu Server 12.04 and it worked. I'd try it on one file first to be sure before using the wildcard.

share|improve this answer
add comment

I just added the code above the <head> tag in my template HTML page that I made in Dreamweaver so it will be on all of my pages. This seems like the best way to me. I am not an expert so hopefully if this is wrong someone will call me on it.

share|improve this answer
1  
That should work fine. –  dan Jan 15 at 7:05
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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