, i.e. AFTER this script executes, so the query returned null
// on every prerendered page and the classifier stamped
// "noindex, follow" into the DOM of real, unique pages. The prerenderer
// now stamps data-prerendered="1" on , which exists before any
// script runs. The canonical check is kept as a secondary guard.
var docEl = document.documentElement;
if (docEl && docEl.getAttribute('data-prerendered') === '1') return;
if (document.querySelector('link[rel="canonical"]')) return;
var origin = 'https://terraincognitaacademy.com';
var path = location.pathname || '/';
var malformedAbsoluteTarget = null;
try { path = decodeURIComponent(path); } catch (_) {}
path = path.replace(/^\/+https?:\/+((www\.)?terraincognitaacademy\.com)(?=\/|$)/i, function(){
malformedAbsoluteTarget = true;
return '';
});
if (!path) path = '/';
if (path.length > 1) path = path.replace(/\/+$/, '');
var canonical = origin + path;
// Routes that must NEVER be indexed (private/auth-gated/redirect aliases).
var NOINDEX_PREFIXES = [
'/spell-launcher','/instructor/apply','/course-finder','/dashboard','/admin',
'/checkout','/cart','/auth','/login','/signup','/messages','/profile/edit',
'/profile/settings','/settings','/student','/achievements','/my-invoices',
'/forum/new-topic','/forum/bookmarks','/instructor/earnings','/instructor/analytics',
'/instructor/courses','/instructor/content-library','/category-management',
'/gift-success','/claim-gift','/shop/success','/shop/download','/install','/search',
'/spirit-alignment-codex/result','/directory/manage','/directory/search'
];
// Legacy aliases that must canonicalize to current URLs (and stay noindex on the alias itself).
var REDIRECT_MAP = {
'/course-finder': '/spirit-alignment-codex',
'/your-path-assistant': '/spirit-alignment-codex',
'/spiritual-path-assistant': '/spirit-alignment-codex',
'/spirit-codex': '/spirit-alignment-codex',
'/codex': '/spirit-alignment-codex',
'/spirit-encyclopedia': '/encyclopedia',
'/ritual-design-system': '/rituals',
'/blog-posts': '/blog',
'/power-points': '/spiritual-world',
'/temple-teachings': '/forum',
'/affiliate': '/ambassador',
'/affiliates': '/ambassador',
'/affiliate/register': '/ambassador',
'/category/free': '/courses/category/free-spiritual-courses',
'/spiritual-development/usa': '/spiritual-development/united-states',
'/spiritual-development/uk': '/spiritual-development/united-kingdom',
'/spiritual-development/uae': '/spiritual-development/united-arab-emirates'
};
// Hub/listing routes that share filesystem space with item children
// (e.g. /courses cannot exist as a static file because dist/courses/
// is a directory). Inject SEO synchronously so Googlebot and SPA
// visitors get the correct title/description even when served from
// the root SPA fallback shell.
var HUB_SEO = {
'/courses': {
title: 'Occult Courses Online | Terra Incognita Academy',
description: 'Learn witchcraft, ceremonial magic, hermeticism and chaos magick with 300+ occult courses online. Expert instructors, lifetime access. Start today.'
},
'/shop': {
title: 'Grimoires & Occult PDF Books | Terra Incognita Academy',
description: 'Download grimoires, occult books and esoteric PDFs: Goetia, Solomonic magic, Book of Shadows, angelic and planetary rituals. Instant delivery, lifetime access.'
},
'/bundles': {
title: 'Occult Course Bundles | Terra Incognita Academy',
description: 'Save up to 50% on occult course bundles: witchcraft, ceremonial magic, hermeticism and evocation packages. Lifetime access, one payment.'
},
'/forum': {
title: 'Witchcraft & Occult Forum | Terra Incognita Academy',
description: 'Join our witchcraft forum and occult community. Discuss grimoires, rituals, evocation, meditation and esoteric practice with practitioners worldwide.'
},
'/blog': {
title: 'Blog — Spiritual Teachings | Terra Incognita Academy',
description: 'Read in-depth articles on spirit work, ritual practice, grimoire study and consciousness development from Terra Incognita Academy instructors.'
},
'/encyclopedia': {
title: 'Spirit Compatibility Guide | Terra Incognita Academy',
description: 'Explore the encyclopedia of spirits, domains, archetypes and intents. A comprehensive reference for serious practitioners at Terra Incognita Academy.'
},
'/rituals': {
title: 'Ritual Hub — Blueprints | Terra Incognita Academy',
description: 'Design personalized rituals with the Terra Incognita Academy Ritual Hub. Step-by-step blueprints for spirit work, devotion and transformation.'
},
'/glossary': {
title: 'Spiritual & Magical Glossary | Terra Incognita Academy',
description: 'Definitions of key spiritual, magical and esoteric terms used across courses, grimoires and rituals at Terra Incognita Academy.'
},
'/spiritual-world': {
title: 'Sacred Geography & Power Points | Terra Incognita',
description: 'Explore the spiritual world: power points, sacred sites and the geography of spirit. Curated by Terra Incognita Academy.'
},
'/instructors': {
title: 'Meet Our Teachers | Terra Incognita Academy',
description: 'Meet the experienced spiritual instructors of Terra Incognita Academy. Practitioners, scholars and guides leading our courses.'
},
'/pillars': {
title: 'Pillar Hubs — Goetia, Angels & Deities | Terra Incognita Academy',
description: 'Explore our pillar hubs: the 72 Goetic demons, the Shem HaMephorash angels, the Olympic spirits and the Norse, Celtic and Greek deities, with linked courses, grimoires and articles.'
},
'/about': {
title: 'About Us — Our Mission | Terra Incognita Academy',
description: 'Learn about Terra Incognita Academy: our mission to deliver rigorous, benevolent spiritual education for serious modern practitioners.'
}
};
// Indexable-from-the-shell allowlist.
//
// IMPORTANT: this list only ever applies to a URL that has NO prerendered
// HTML file (the script early-returns when a canonical is already present).
// A URL served by the generic shell has the homepage title and no unique
// content, so declaring it indexable produced thousands of identical
// "index,follow" pages — exactly the "Duplicate: Google chose a different
// canonical" and "Crawled - currently not indexed" reports.
//
// Therefore ONLY stable hub/static routes stay indexable here. Every
// item-level route (listings, cities, tags, topics, courses, products,
// profiles, certificates, …) must earn indexability by having a real
// prerendered page; without one it is noindex,follow.
var INDEX_PATTERNS = [
/^\/$/,
/^\/courses$/, /^\/shop$/, /^\/bundles$/, /^\/ebook-bundles$/, /^\/forum$/,
/^\/blog$/, /^\/encyclopedia$/, /^\/encyclopedia\/spirits$/,
/^\/spiritual-world$/, /^\/spirit-alignment-codex$/,
/^\/(theurgy|evocation|spirit-guides|spirit-communication)$/,
/^\/answers$/, /^\/glossary$/, /^\/compendium$/,
/^\/rituals$/, /^\/ritual-builder$/,
/^\/about$/, /^\/about\/faculty$/, /^\/contact$/, /^\/ambassador$/, /^\/instructors$/,
/^\/free-ebook$/, /^\/members$/, /^\/declaration$/, /^\/experienced-practitioners$/,
/^\/become-instructor$/, /^\/standing-faq$/, /^\/platform$/, /^\/sitemap$/, /^\/rss$/,
/^\/academy-transfer$/, /^\/accredited-spiritual-program$/, /^\/updates$/,
/^\/[a-z0-9-]+-school$/, /^\/certified-paths$/,
/^\/(infernal-healer|power-invoker|wealth-architect|infernal-strategist|master-of-knowledge|shadow-alchemist|master-of-influence|infernal-lover|infernal-protector|pathbreaker|infernal-seer|infernal-sovereign)$/,
/^\/privacy-policy$/, /^\/terms-of-service$/, /^\/cookie-policy$/,
/^\/refund-policy$/, /^\/disclaimer$/, /^\/copyright$/,
/^\/verify-certificate$/,
/^\/tags$/, /^\/pillars$/,
/^\/directory$/, /^\/directory\/pricing$/
];
var isNoindex = NOINDEX_PREFIXES.some(function(p){
return path === p || path.indexOf(p + '/') === 0;
});
var redirectTarget = REDIRECT_MAP[path];
// Pattern-based legacy redirects (must mirror the Cloudflare worker
// so direct browser hits behave identically to crawler hits).
if (!redirectTarget) {
var m;
if ((m = path.match(/^\/shop\/product\/(.+)$/))) redirectTarget = '/shop/' + m[1];
else if ((m = path.match(/^\/category\/(.+)$/))) redirectTarget = '/courses/category/' + m[1];
else if ((m = path.match(/^\/bundle\/(.+)$/))) redirectTarget = '/bundles/' + m[1];
else if ((m = path.match(/^\/profile\/(?!settings|edit)([^/]+)$/))) redirectTarget = '/u/' + m[1];
}
if (redirectTarget) {
canonical = origin + redirectTarget;
isNoindex = true; // alias itself is not indexable
// Actually navigate real visitors (bots see canonical+noindex above).
// Lovable hosting has no edge redirects, so we do it client-side.
try {
var ua = (navigator && navigator.userAgent) || '';
var isBot = /bot|crawler|spider|crawling|facebookexternalhit|slurp|bingpreview|linkedinbot|whatsapp|telegram/i.test(ua);
if (!isBot) {
window.location.replace(redirectTarget + (window.location.search || '') + (window.location.hash || ''));
}
} catch (e) {}
}
var isKnownGood = !isNoindex && INDEX_PATTERNS.some(function(re){ return re.test(path); });
var link = document.createElement('link');
link.setAttribute('rel', 'canonical');
link.setAttribute('href', canonical);
document.head.appendChild(link);
var ogUrl = document.createElement('meta');
ogUrl.setAttribute('property', 'og:url');
ogUrl.setAttribute('content', canonical);
document.head.appendChild(ogUrl);
var twUrl = document.createElement('meta');
twUrl.setAttribute('name', 'twitter:url');
twUrl.setAttribute('content', canonical);
document.head.appendChild(twUrl);
// Apply final robots state synchronously. Known public routes get index;
// private routes, redirect aliases, and unknown paths get noindex.
var existing = document.querySelectorAll('meta[name="robots"], meta[name="googlebot"]');
for (var i = 0; i < existing.length; i++) existing[i].parentNode.removeChild(existing[i]);
var robotsValue = isKnownGood
? 'index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1'
: 'noindex, follow';
var robots = document.createElement('meta');
robots.setAttribute('name', 'robots');
robots.setAttribute('content', robotsValue);
document.head.appendChild(robots);
var gbot = document.createElement('meta');
gbot.setAttribute('name', 'googlebot');
gbot.setAttribute('content', robotsValue);
document.head.appendChild(gbot);
var cleanupSeoDuplicates = function(){
var selectors = ['title', 'meta[name="title"]', 'meta[name="description"]'];
for (var s = 0; s < selectors.length; s++) {
var nodes = document.head.querySelectorAll(selectors[s]);
for (var n = 0; n < nodes.length - 1; n++) {
if (nodes[n] && nodes[n].parentNode) nodes[n].parentNode.removeChild(nodes[n]);
}
}
};
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', cleanupSeoDuplicates, { once: true });
} else {
cleanupSeoDuplicates();
}
setTimeout(cleanupSeoDuplicates, 0);
// Synchronous hub-route SEO injection. Hub routes (e.g. /courses,
// /shop) cannot have prerendered extensionless static files because
// their slug exists as a directory (dist/courses/foo.html). Inject
// unique title + description here so Googlebot's first-paint scan
// sees per-route SEO instead of the homepage shell defaults.
var hub = HUB_SEO[path];
if (hub) {
try {
var existingTitles = document.head.querySelectorAll('title');
for (var t = 0; t < existingTitles.length; t++) existingTitles[t].parentNode.removeChild(existingTitles[t]);
var titleEl = document.createElement('title');
titleEl.textContent = hub.title;
document.head.appendChild(titleEl);
var metaSelectors = ['meta[name="title"]','meta[name="description"]','meta[property="og:title"]','meta[property="og:description"]','meta[name="twitter:title"]','meta[name="twitter:description"]'];
for (var ms = 0; ms < metaSelectors.length; ms++) {
var existingMetas = document.head.querySelectorAll(metaSelectors[ms]);
for (var em = 0; em < existingMetas.length; em++) existingMetas[em].parentNode.removeChild(existingMetas[em]);
}
function appendMeta(attr, name, content){
var el = document.createElement('meta');
el.setAttribute(attr, name);
el.setAttribute('content', content);
document.head.appendChild(el);
}
appendMeta('name', 'title', hub.title);
appendMeta('name', 'description', hub.description);
appendMeta('property', 'og:title', hub.title);
appendMeta('property', 'og:description', hub.description);
appendMeta('name', 'twitter:title', hub.title);
appendMeta('name', 'twitter:description', hub.description);
} catch(_) {}
}
// For redirect aliases, perform a client-side hard redirect after canonical
// is in place so users actually land on the canonical URL.
if (malformedAbsoluteTarget) {
try { location.replace(canonical + location.search + location.hash); } catch(_) {}
}
if (redirectTarget && redirectTarget !== path) {
try { location.replace(origin + redirectTarget + location.search + location.hash); } catch(_) {}
}
} catch (e) { /* noop */ }
})();
La Astrologa is an astrologer in Barcelona, Spain, located at Carrer de Manso, 17, in the central Eixample district. For people interested in astrology as a reflective spiritual practice, this business provides a local point of reference in one of Barcelona’s best-known neighbourhoods. La Astrologa has a Google rating of 5 out of 5 based on 15 reviews, offering prospective visitors a useful snapshot of its online customer feedback.
What Visitors Can Expect
An astrologer typically helps people explore symbolic connections between celestial patterns and human experience. Visitors may approach this kind of business with questions about personal development, relationships, life transitions or recurring themes in their lives. The emphasis is generally on interpretation, reflection and constructive conversation rather than fixed predictions.
Anyone visiting La Astrologa can expect an experience centred on astrology and personal insight. As with any spiritual consultation, it can be helpful to arrive with an open mind and a clear idea of the topics you would like to explore. Astrology is best approached as a cooperative practice: the astrologer offers symbolic interpretations, while the visitor decides what feels relevant and how, if at all, to apply those ideas.
Astrological guidance should not replace qualified medical, mental health, financial or legal advice. Instead, it can serve as a respectful framework for self-reflection, helping visitors consider their circumstances from a different perspective without fear-based or absolute claims.
Astrology for Beginners
Astrology is a long-established tradition that studies the symbolic meanings associated with the positions and movements of the Sun, Moon, planets and other celestial points. A common starting point is the natal chart, sometimes called a birth chart, which maps the sky for a particular time and location. Astrologers interpret this chart through elements such as zodiac signs, houses and relationships between planets.
For newcomers, astrology does not require a particular religious belief. Many people engage with it as a spiritual language, a cultural tradition or a structured tool for reflection. Interpretations often focus on tendencies, strengths, challenges and possible cycles rather than unavoidable outcomes. A considerate astrologer respects personal agency and presents insights as possibilities to examine, not commands or guarantees.
Those searching for an “astrologer Spain” directory listing may find La Astrologa relevant because it combines a Barcelona location with clearly stated weekday availability.
Barcelona and the Eixample Setting
Barcelona is known for its rich cultural identity, distinctive architecture and diverse range of spiritual and wellbeing services. Within the city, Eixample is a central district recognised for its grid-pattern streets and connections to other parts of Barcelona. La Astrologa’s address on Carrer de Manso places it in this urban setting.
The location may suit Barcelona residents seeking a neighbourhood astrologer as well as visitors who want to include a reflective spiritual experience during their time in the city. Because the verified address includes the Eixample district and the 08015 postcode, it is advisable to use these full details when planning a route.
Practical Visiting Information
La Astrologa is located at Carrer de Manso, 17, Eixample, 08015 Barcelona, Spain. The contact telephone number is +34 623 92 85 14.
These hours provide weekday daytime and evening availability. Calling ahead can help visitors confirm practical arrangements before travelling. No verified pricing information is provided in this listing.
Who La Astrologa May Suit
La Astrologa may appeal to adults who are curious about astrology, familiar with birth-chart symbolism or seeking a thoughtful way to reflect on personal themes. It may also suit newcomers who want to understand what an astrologer does in a respectful, non-threatening setting.
The practice is most appropriate for those comfortable treating astrology as an interpretive and cooperative process. Visitors remain responsible for their own choices, and any insights can be considered alongside personal judgement and, where needed, advice from suitably qualified professionals.
Get certified in this practice
Terra Incognita Academy trains the same disciplines these businesses work with. Each certification path bundles its courses at 25% below their individual prices and ends in a verifiable specialist certificate.
The Moon Witch — €161.25. Lunar cycles, timing and intuition: working with the moment instead of against it. Certificate: Certified Moon Witch.
The Delphic Oracle — €45. Prophecy, clear sight and the disciplined voice of the sun. Certificate: Certified Delphic Oracle.
The Angelic Seer — €129. Mastery of angelic perception, revelation and the reading of hidden things. Certificate: Certified Angelic Seer.