I'm looking for advice on optimizing SEO for a Next.js website that's primarily 3D-based. The main feature is a fullscreen 3DVista tour in an iframe, alongside client-side 3D viewers. What strategies can I use to enhance its visibility in search engines?
4 Answers
Google cannot read the content within iframes or 3D viewers, so think of it as making a site that's mostly invisible to search engines. Make sure to add alt text to your static images and ensure your non-iframe pages are easily crawled. Likely, most traffic will come from direct or referral sources since bots struggle with JavaScript-rendered content.
One approach you could consider is to add all your essential textual content into a hidden container, using CSS to keep it out of sight for users but visible to search engine bots. This method, sometimes referred to as "cloaking" (like we did for Flash sites back in the day), could potentially help SEO. Just make sure there are no penalties involved! However, keep in mind that duplicating text might be necessary unless you're using an API to serve dynamic text.
Isn't that a bit outdated? I remember discussions years ago suggesting that Google's algorithms have evolved quite a bit and can now detect hidden content more effectively.
It’s super important to realize that with 3D content, much of it is inaccessible to search engines and screen readers. Consider adding structured text elements alongside your visuals—like descriptive headings and paragraphs explaining each scene. This approach not only helps with SEO but also improves accessibility, which is increasingly important legally in places like the EU and the US.
Depending on your 3D content's complexity, it might not be indexed by search bots at all. Focus on optimizing your title and meta descriptions since these are crucial for visibility. Providing in-depth descriptions—even if hidden from users—can also be beneficial; just think about how to convey your site's essence to search engines in a way that's clear yet user-friendly.

Thanks for the tips! I was curious if hiding content still works this way.