You can embed a virtual tour in Moodle in three ways: paste an iframe into a Page, Label or other teacher-only content area, link it with a URL resource, or connect it through an LTI external tool. The iframe is the fastest and gives students the best experience. It is also the method most likely to fail on the first try, because Moodle controls iframes for security reasons.
This guide walks through each method, explains why an embed sometimes shows a blank box, and covers how to build a tour that loads quickly for students on campus networks. We build Simple Virtual Tour, so we also explain where our software fits. The Moodle steps work with any tour that has a public web address.
TL;DR
- Publish your tour first, then embed it. Moodle only needs the tour's web address, so the tour can be hosted in the cloud or on your own server.
- An iframe in a Page or Label gives the smoothest result. If it shows blank, your administrator likely needs to review the frame embedding setting.
- A URL resource is the fallback that always works: it opens the tour in a new tab or window.
- LTI is the option for institutions that need single sign-on and grade return, and it requires the platform and your Moodle admin to set it up together.
- Compress your panoramas. Navigation ease and loading speed are what students notice most.
Table of Contents
- Choose the right embed method
- Step 1: Publish the tour and get its address
- Step 2: Embed with an iframe
- Step 3: Link with a URL resource
- Step 4: Connect through LTI when you need more
- Build a tour students will actually finish
- Our perspective: keep the Moodle side boring
- Which Simple Virtual Tour option fits a course
- Troubleshooting checklist
- FAQ
- Sources
Choose the right embed method
Before you touch Moodle, decide what the tour needs to do for the course. A campus orientation tour that students look at once has different requirements from a lab tour that feeds into a graded activity.
| Method | Best for | Needs admin help? | Student experience |
|---|---|---|---|
| Iframe in a Page or Label | Tours shown inline in the course | Sometimes | Tour appears inside the course page |
| URL resource | Simple linking, any Moodle setup | No | Tour opens in its own tab or window |
| LTI external tool | Single sign-on, grades, institution-wide use | Yes | Launches inside Moodle as a tool |
| H5P Virtual Tour (360) | Quick tours authored inside Moodle | Plugin must be installed | Tour appears as an activity |
The last row is a different approach: it builds the tour inside Moodle rather than embedding an outside one. H5P's Virtual Tour (360) content type is free and lets you add questions, text and interactions to several 360 environments in the browser. It suits a single quick exercise. When you need a tour you can reuse across courses, brand, measure or publish outside Moodle, a dedicated tour platform makes more sense.
Step 1: Publish the tour and get its address
Every Moodle method starts the same way. You need a finished tour at a stable web address that opens without a login.
- Build the tour from your equirectangular 360° photos, adding hotspots, text and media.
- Preview it on a laptop and on a phone.
- Publish it and copy the public link.
- Open that link in a private browser window to confirm it loads without signing in.
In Simple Virtual Tour, you can do this on the cloud plans or on your own server with the self-hosted version. The location matters to Moodle only through the domain name. If your institution restricts which domains can be embedded, the self-hosted option lets you put the tour on a domain your IT team already approves. That is one reason we offer both deployment models.
If you are capturing the photos on a phone, our guide to the iPhone 360 capture and publishing workflow covers the process from shooting to a live tour.
Step 2: Embed with an iframe
An iframe is a piece of HTML that displays content from another URL inside a page. In Moodle it is a good fit for content from sites that deliver interactive material, which describes a virtual tour well.
Here is the standard process for a teacher:
- Turn editing on in your course.
- Add a Page or Label, or edit an existing one.
- In the text editor, switch to the HTML or source code view. In the newer editor this is the
<>button. - Paste an iframe such as this, replacing the address with your tour link:
<iframe src="https://your-tour-address" width="100%" height="600" allowfullscreen></iframe>
- Save, then view the page as a student would.
A few practical notes:
- Keep the
allowfullscreenattribute. Students exploring a 360° scene will want the full screen, especially on a laptop. - Use a percentage width so the frame adapts to the Moodle theme and to phones. Fix the height at roughly 500 to 700 pixels.
- Put a plain link under the iframe as a backup. If the frame is blocked on a student's browser or device, they still reach the tour.
Why the iframe may not appear
This is the most common support question. Moodle strips or blocks iframes in many places. As a Moodle community discussion explains, Moodle removes iframe tags automatically from areas such as forums, blogs and user profiles for every user, because allowing them also allows iframe-based attacks. Teachers can usually use them in activities and labels that students cannot edit.
If your embed still shows nothing, work through this list:
- Check where you pasted it. Labels and Pages edited by teachers are the safest places. Do not try forum posts.
- Check the editor. If you typed the iframe in the visual view instead of the source view, it may be saved as text.
- Ask your administrator about frame embedding. The Moodle documentation says that “Allow frame embedding” is found under Site Administration > Security > HTTP security and is recommended so tools can display in a frame instead of a new window. Your admin decides whether that fits your institution's policy.
- Check the tour's own domain. If the tour host forbids being framed by other sites, the embed will fail regardless of Moodle settings.
Talk to your Moodle administrator early. Security policy, not technique, is often the real barrier, and a short request with the exact tour domain is easier to approve than a vague one.
Step 3: Link with a URL resource
When an iframe is not allowed, a URL resource is the dependable alternative. It adds a clickable item to the course page that sends students to the tour.
- Turn editing on and choose Add an activity or resource.
- Select URL.
- Give it a clear name, such as “Chemistry lab: 360° tour”.
- Paste the tour link and, in the appearance settings, choose to open in a new window or embed, depending on what your site allows.
- Add a short description telling students what to look for.
You lose the inline experience, but you gain reliability. Students on any device can open the tour, and you avoid conflicts with security settings. It also keeps the course page light, because the panoramas do not load until a student clicks.
Step 4: Connect through LTI when you need more
LTI (Learning Tools Interoperability) is the standard way to plug outside tools into a learning platform. According to the Moodle documentation, LTI external tools are add-on apps you integrate into a course, and teachers link to them from the course page while students access them without extra sign-in steps.
Choose LTI when:
- The institution wants students to open the tour without separate accounts.
- You need activity results returned to the Moodle gradebook.
- A department wants one approved tool used across many courses.
LTI is an administrator-level setup. The tool must be registered in Moodle, so plan it as a small project with your IT team, not as a teacher task. For one course and one tour, an iframe or URL resource is almost always quicker. If you are unsure whether LTI is needed, start with the simpler methods and escalate only when a real requirement appears.
Build a tour students will actually finish
Getting the embed to work is half the job. The other half is making the tour pleasant inside a course page.
A 2023 study of a 360° virtual tour built with limited resources at a medical education institute is useful here. It shows that a tour made from equirectangular images and modest equipment can work well for education, and that practical usability matters more than elaborate effects. In our own work with educators we see the same pattern: simple, clear tours get used.
Keep the structure simple
- Limit scenes. Ten to fifteen well-chosen panoramas beat fifty similar ones. Every scene is another load for the student.
- Name hotspots plainly. “Fume hood safety” tells a student more than “Info 3”.
- Add one task per tour. Ask students to find three items and report back in a Moodle quiz or forum.
- Start in the most recognizable place. An entrance or an overview gives orientation.
Compress before you upload
Large panoramas are the main cause of slow tours. Export images at a size that looks sharp in a browser window rather than at the full resolution your camera produced. Test on a slower connection, such as a phone on mobile data, before you tell a class to open it. Our guide to virtual tour performance optimization goes into the details for teams.
If you are looking for ideas on what to photograph, see our virtual lab tour ideas, which also apply to workshops and studios.
Tell the story, not just the space
A tour works best when it has a purpose students can state in one sentence. These visual storytelling tips are a useful read if you want your scenes and captions to carry a clear message.
Our perspective: keep the Moodle side boring
We build Simple Virtual Tour for people who are not developers, and teachers are a big part of that group. Our advice is to keep the Moodle side as boring as possible and put your effort into the tour itself.
In practice, that means an iframe or a URL resource, a tour that loads fast, and a conversation with your administrator before the semester starts. We rarely see embeds fail because of the tour. They fail because of a security setting nobody checked or because the panoramas were too heavy for the network.

The second thing we stress is control. Many institutions care where their data and media live. With Simple Virtual Tour you can choose cloud hosting or a self-hosted copy with the full source code, so the tour can sit on a domain and server your institution already trusts. Self-hosted use has no ongoing software fee, which matters to departments with small budgets. And because the backend is built for non-technical users, a teacher can maintain a tour without calling for help.
Finally, treat the tour as a teaching tool, not a decoration. Give it a task, a question or a reflection prompt in Moodle. A tour with a purpose gets opened. A tour without one gets ignored.
— Andrea
Which Simple Virtual Tour option fits a course
If you want a tour you can embed in Moodle and reuse elsewhere, you can start with the Free Forever plan and move up when you need more. The paid cloud plans are billed monthly:
| Plan | Price |
|---|---|
| XS (Starter) | 2.99 € per month |
| S (Creator) | 5.99 € per month |
| M (Professional) | 9.99 € per month |
| L (Business) | 19.99 € per month |
| XL (Enterprise) | 49.99 € per month |
For institutions that prefer to host everything themselves, the self-hosted CORE software is a one-off purchase at 79 $. Optional plugins include the SaaS plugin at 269 $ for managing multiple users, the Google Street View plugin at 59 $, and the A.I. Tools plugin at 39 $, all one-off. You can compare everything on the Simple Virtual Tour plans page, or go straight to buy now.
For a classroom plan that goes beyond the embed, see our educator virtual tour sharing workflow and the guide to setting up a remote learning virtual environment.

Troubleshooting checklist
When a tour does not behave inside Moodle, check these in order:
- Blank box: open the tour link directly. If it loads, the problem is Moodle's frame handling. Contact your administrator about frame embedding.
- Tour opens but is slow: compress the panoramas and reduce the number of scenes.
- Works on laptop, not on phone: test the Moodle mobile app and mobile browser separately. Embedded content can behave differently there, so keep a plain link as a backup.
- Students see a login prompt: the tour must be public, or the institution must use LTI.
- Embed disappears after saving: you probably pasted into a place where Moodle filters HTML. Move it to a Page or Label.
FAQ
Can I embed a virtual tour in Moodle without an administrator?
Often yes. Teachers can usually paste an iframe into a Page or Label using the source code view. If the frame stays blank, a site-level security setting is likely blocking it, and then you need your administrator. A URL resource works without any special permission.
What is the difference between an iframe and LTI?
An iframe simply displays a web address inside a page. LTI is a formal connection between Moodle and an outside tool, set up by an administrator, which can handle sign-in and return results to the gradebook. Use an iframe for display and LTI for tracked activities.
Should I use H5P or an external tour platform?
H5P is free and good for a quick tour authored inside Moodle. An external platform suits tours you want to reuse across courses, brand, publish publicly or host yourself. Many teachers use H5P for small exercises and a dedicated platform for larger projects.
Why is my embedded tour so slow?
Usually the panoramas are too large or there are too many scenes. Compress images, trim the scene count and test on a slower connection. Speed and ease of navigation are the factors that most shape how students judge a tour.
Sources
- Moodle Docs: Iframe
- Moodle Docs: LTI External tools
- Moodle Docs: LTI Moodle to Moodle
- Moodle community forum: Issue with iframes and embedding media
- H5P: Virtual Tour (360)
- Development and Evaluation of An Interactive 360 Virtual Tour Using Limited Resources: IMERI case study

