Other SEO Details

This custom script captures additional SEO details. Under variable summary, select ObservePoint data and under SEO Data is the relevant information.

  • metaDescription: Collects the full value of the description Meta tag.
  • metaKeywords: Collects all the terms in the keywords Meta tag.
  • pageTitle: Shows the title of each URL.
  • imageAlt: Shows the caption that goes with each URL.
  • canonical URL: An HTML element for each URL that prevents duplicate content problems.
  • robots meta tag: Shows which pages have a robot text file. Robot text files instruct search engines on which pages they should crawl.
  • h1 - h6: Shows the presence of header tags on each page.

To capture these details in an audit or web journey, paste the snippet below into an Execute Action:

function opReqGetAsync(paramObject, acct, callback) { 
var baseURL = "https://opreq.observepoint.com/?acct=" + acct; 
var opReq = new XMLHttpRequest(); 
opReq.onreadystatechange = function() { 
if (opReq.readyState == 4 && opReq.status == 200){ 
callback(opReq.responseText); 
} 
} 
opReq.open("POST", baseURL, true); 
opReq.send(JSON.stringify(paramObject)); 
} 
var metaDescription = 'No meta description found', 
metaKeywords = 'No meta keywords found', 
pageTitle = 'No page title found', 
pageURL=window.location.href, 
imageAlt = '0 alt tags found', 
canonicalURL = 'No canonical URL found', 
robots = 'No robots.txt found', 
h1 = '0 h1 tags found', 
h2 = '0 h2 tags found', 
h3 = '0 h3 tags found', 
h4 = '0 h4 tags found', 
h5 = '0 h5 tags found', 
h6 = '0 h6 tags found';
/* meta description */
var metaDescLower = document.querySelector('meta[name="description"'),
metaDescCap = document.querySelector('meta[name="DESCRIPTION"');


if(metaDescLower != null && metaDescLower.getAttribute('content') !== '') {
var metaDesc = metaDescLower.getAttribute('content');
var chars = metaDesc.length;
metaDescription = metaDesc + ' [' + chars + ' characters]';
} else if(metaDescCap.length != null && metaDescCap.getAttribute('content') !== '') {
var metaDesc = metaDescCap.getAttribute('content');
var chars = metaDesc.length;
metaDescription = metaDesc + ' [' + chars + ' characters]';
}


/* meta keywords */
var metaKeyLower = document.querySelector('meta[name="keywords"'),
metaKeyCap = document.querySelector('meta[name="KEYWORDS"');


if(metaKeyLower != null && metaKeyLower.getAttribute('content') !== '') {
metaKeywords = metaKeyLower.getAttribute('content');
} else if(metaKeyCap != null && metaKeyCap.getAttribute('content') !== '') {
metaKeywords = metaKeyCap.getAttribute('content');
}


/* page title */
if(document.title) {
pageTitle = document.title;
}


/* all image alt attributes */
var allImages = document.querySelectorAll('img');
if(allImages.length > 0) {
imageAlt = [];
for(var x = 0; x < allImages.length; x++) { alt = allImages[x].getAttribute('alt'); if(alt) { imageAlt.push(alt); } } imageAlt = (imageAlt.length > 0) ? imageAlt.join(', ') : '0 alt tags found';
}


/* canonical URL */
if(document.querySelectorAll('[rel="canonical"]').length > 0){
canonicalURL = document.querySelectorAll('[rel="canonical"]')[0].getAttribute('href');
}


/* robots.txt */
if(document.querySelectorAll('[name*="robots"]').length > 0){
robots = 'true';
}


/* all H1s */
var allH1s = document.querySelectorAll('h1');
if(allH1s.length > 0) {
h1 = [];
for(var x = 0; x < allH1s.length; x++) { h1.push(allH1s[x].textContent); } h1 = h1.join(', '); } /* all H2s */ var allH2s = document.querySelectorAll('h2'); if(allH2s.length > 0) {
h2 = [];
for(var x = 0; x < allH2s.length; x++) { h2.push(allH2s[x].textContent); } h2 = h2.join(', '); } /* all H3s */ var allH3s = document.querySelectorAll('h3'); if(allH3s.length > 0) {
h3 = [];
for(var x = 0; x < allH3s.length; x++) { h3.push(allH3s[x].textContent); } h3 = h3.join(', '); } /* all H4s */ var allH4s = document.querySelectorAll('h4'); if(allH4s.length > 0) {
h4 = [];
for(var x = 0; x < allH4s.length; x++) { h4.push(allH4s[x].textContent); } h4 = h4.join(', '); } /* all H5s */ var allH5s = document.querySelectorAll('h5'); if(allH5s.length > 0) {
h5 = [];
for(var x = 0; x < allH5s.length; x++) { h5.push(allH5s[x].textContent); } h5 = h5.join(', '); } /* all H6s */ var allH6s = document.querySelectorAll('h6'); if(allH6s.length > 0) {
h6 = [];
for(var x = 0; x < allH6s.length; x++) { h6.push(allH6s[x].textContent); } h6 = h6.join(', '); } var seoDataObj = { "Meta_Description": metaDescription, "Page_Title": pageTitle, "Page_URL":pageURL, "Image_Alt": imageAlt, "Canonical_URL": canonicalURL, "Robots.txt": robots, "h1": h1, "h2": h2, "h3": h3, "h4": h4, "h5": h5, "h6": h6 }; opReqGetAsync(seoDataObj, "SEO Data");
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.