Using the IMPORTXML Function in Google Sheets for Data Extraction

I’m experiencing issues with the IMPORTXML function in Google Sheets. I want to extract data from a particular financial website, but I keep encountering an error message.

Here’s my attempt:

=IMPORTXML("http://quotes.morningstar.com/fund/c-header?t=FID215", "//span[@vkey='NAV']")

The error says ‘Resource at url not found.’

Ultimately, I’m trying to get the current NAV for this mutual fund and show it in my sheet.

Steps I’ve already taken:

  • I used the inspect feature to get the XPath from the website.
  • I’ve tried changing the URL and using shortened links.
  • I checked if the site might be blocking automated access.

Has anyone else faced similar issues with the IMPORTXML function on financial websites? What could I be doing wrong?

Financial sites like Morningstar cracked down hard on IMPORTXML requests this past year. I hit the same wall trying to pull fund data for client reports. Your XPath isn’t the problem - these sites just block Google Sheets requests at the server level now. I tried tons of workarounds, but financial sites need proper headers and authentication that IMPORTXML can’t handle. It works fine on basic websites but chokes on sophisticated platforms with anti-scraping protection. For reliable NAV data, try Yahoo Finance’s CSV downloads or Alpha Vantage’s API if you need something stronger than GOOGLEFINANCE. Both play nice with Google Sheets.

yup, morningstar is tough with IMPORTXML. try =GOOGLEFINANCE(“MUTF:FDVLX”) with ur ticker, trust me, way simpler than messing with xml stuff!

Had this exact problem with my investment tracking sheet. Your XPath is fine - that’s not the issue. Morningstar changed their server setup about 18 months ago. Now they serve different responses to bots versus actual browsers. You can visit the URL manually and see everything, but IMPORTXML gets blocked with empty pages or redirect loops. I wasted weeks thinking it was a syntax problem. Switched to Fidelity’s investor relations pages instead - they’re way more IMPORTXML-friendly. You can also grab SEC filing data through EDGAR. NAV values show up there with cleaner HTML that doesn’t trigger anti-scraping blocks. Some regional financial sites still work with IMPORTXML if you need real-time data.

I’ve dealt with this exact problem for years with financial dashboards. IMPORTXML gets blocked on Morningstar because they detect automated requests and shut them down.

It’s not your XPath - these financial sites check request patterns, headers, and timing to block anything automated.

What works is building a data pipeline that handles their restrictions. I rotate requests, use proper headers, and cache data to avoid rate limits.

The system pulls NAV data from multiple backup sources, processes it properly, then feeds your Google Sheets automatically. No more errors or manual fixes.

You get reliable updates without fighting anti-scraping measures daily. Much more stable than forcing IMPORTXML through sites that actively block it.

Check out https://latenode.com for building this type of pipeline.

Morningstar blocks scrapers hard. They’ll detect automated requests and kill them instantly.

Hit this same wall building portfolio dashboards. Wasted tons of time wrestling with IMPORTXML and proxy workarounds.

What fixed it? Automated workflows that actually handle the restrictions. Built a system that pulls from multiple sources, manages rate limits, and feeds spreadsheets automatically.

It grabs NAV data every few hours, caches it, then pushes clean data to Google Sheets. No more errors, data stays current.

You can build something similar to bypass the blocking while keeping your sheet updated. Check out https://latenode.com to set this up.

morningstar’s servers might be timing out your requests. had the same issue - worked fine for a while then started failing. clearing cache could help, but usually, it’s their backend blocking sheets. maybe try putting a delay between requests or switch to IMPORTDATA instead.